Cuando usa sudo en Linux, solicita la contraseña de root, pero solo la primera vez que la ejecuta. Si ejecuta otro comando sudo, recuerde que ya ingresó la contraseña anteriormente y no la solicita:
thomas@ubuntu:~$ sudo id
[sudo] password for thomas: ******
uid=0(root) gid=0(root) groups=0(root)
thomas@ubuntu:~$ sudo id
uid=0(root) gid=0(root) groups=0(root)
¿Cómo lo hace sudo? ¿Dónde se almacena esta información? Mi idea es que recuerda la identificación del terminal (como pts / 1), pero ¿dónde está almacenado? El primer proceso de sudo finaliza cuando se hace con el comando, ¿verdad?
Sé que sudo es un programa setuid, por lo que tiene privilegios de root todo el tiempo, pero todavía no puedo pensar en un buen lugar para almacenar una información que un usuario ya haya ingresado una contraseña. ¿Hay algún proceso de demonio involucrado?
Respuestas:
Probablemente esté debajo de
/var/db/sudo
o/var/run/sudo
y probablemente encontrará directorios de nombres de usuario con archivos debajo de ellos ordenados por número tty.Los privilegios reales otorgados, incluido el tiempo que duran las sesiones antes de que tenga que ingresar su contraseña nuevamente depende de cómo esté configurado sudoers. Hay configuraciones para otorgar / restringir muchas cosas diferentes, pero esas no se almacenan en estos archivos que solo almacenan marcas de tiempo. El tiempo que dura una sesión, o cuándo sudo necesita solicitar su contraseña nuevamente, está determinado por un delta de la hora actual y la marca de tiempo de la sesión en este directorio, y cuánto tiempo está configurado sudo para permitir que una sesión dure.
fuente
Intenta
man sudo
echar un vistazo a la sección ARCHIVOS:Y en el
SECURITY NOTES
(páginas de manual de Debian 6.0.4)
fuente