Versión corta: quiero una forma de ejecutar somefunction("username")
y hacer que devuelva la identificación de usuario asociada con username
. Por ejemplo, somefunction("root")
devolvería 0
.¿Cómo puedo obtener la identificación de usuario asociada con un inicio de sesión en Linux?
Estoy escribiendo un programa de servidor que podría utilizar puertos de bajo número, por lo que debe comenzar como root. Obviamente, no quiero que se ejecute como root, por lo que el plan es permitir que los usuarios especifiquen con qué usuario se ejecutará el programa. El problema es que setuid()
requiere una identificación de usuario y no sé cómo buscar una identificación de usuario desde un nombre de usuario. Miré en unistd.h
y parece que solo tiene funciones para encontrar información sobre el usuario actual.
Sé que podría simplemente abrir /etc/passwd
, pero prefiero no cuando haya una función para esto.
La respuesta que dio un pez; he aquí cómo pescar: 'man -k -s 3 password' y' man man' en caso de que no sepas lo que significa el primer comando. – msw