¿Cómo recuerda sudo que ya ingresó la contraseña de root?

27

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?

kuba
fuente
1
Aquí hay una descripción general bastante buena de cómo funciona sudo: aplawrence.com/Basics/sudo.html Detalla el comportamiento de sudo al recordar contraseñas (por ejemplo, el tiempo de espera predeterminado es de 5 minutos), aunque no cubre los detalles específicos de cómo sudo recuerda la contraseña . Sin embargo, sigue siendo interesante.
12
Solo una pequeña corrección, sudo le pide su contraseña, no la contraseña de root

Respuestas:

16

¿Dónde se almacena esta información?

Probablemente esté debajo de /var/db/sudoo /var/run/sudoy 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.

Jon Lin
fuente
2
En cuanto a cuánto tiempo, desde ubuntu docs : "Al usar sudo, su contraseña se almacena de forma predeterminada durante 15 minutos".
11

Intenta man sudoechar un vistazo a la sección ARCHIVOS:

/ var / lib / sudo Directorio que contiene marcas de tiempo

Y en el SECURITY NOTES

sudo verificará la propiedad de su directorio de marca de tiempo (/ var / lib / sudo por defecto) [...]

(páginas de manual de Debian 6.0.4)

Andreas Florath
fuente