¿Cuánto dura la contraseña para ejecutar un comando con sudo en caché?

23

Si ejecuto un comando que requiere privilegios de root sudo, se me pedirá que ingrese la contraseña del usuario actual. Después de eso por un tiempo, si ejecuto el mismo tipo de comandos con sudo, no se me volverá a pedir la contraseña. Entonces, supongo que la contraseña se almacena en caché en algún lugar hasta que caduque. ¿Cuánto dura este tiempo de vencimiento? ¿Es posible configurarlo?

Meysam
fuente
1
Solo para su información, puede solicitar extender la caducidad usando sudo -v. Esto es ideal para colocar en la parte superior de los scripts que ejecutan comandos sudo para que se le solicite la contraseña al principio.
valbaca
Tenga en cuenta que sudo en realidad no almacena en caché la contraseña. Sudo en realidad no necesita una contraseña para hacer su trabajo, solo solicita verificar que el usuario haya permitido ejecutar el comando dado. Básicamente, almacena en caché las credenciales de los usuarios durante un período (como una "marca de tiempo" especial, consulte la respuesta principal), durante el cual no requiere que el usuario vuelva a verificar su identidad. La contraseña en sí no se almacena en caché (almacenada), a diferencia de un navegador web o claves de cifrado.
Anthony

Respuestas:

20

man 5 sudoersnos informa que hay una opción timestamp_timeout:

timestamp_timeout

Número de minutos que pueden transcurrir antes de que sudo solicite nuevamente una contraseña. El tiempo de espera puede incluir un componente fraccional si la granularidad minuto es insuficiente, por ejemplo 2.5. El valor predeterminado es 5. Establezca esto en 0 para solicitar siempre una contraseña. Si se establece en un valor inferior a 0, la marca de tiempo del usuario nunca caducará. Esto se puede utilizar para permitir a los usuarios crear o eliminar sus propias marcas de tiempo a través de "sudo -v" y "sudo -k" respectivamente.

Entonces, sí, se puede configurar a través de /etc/sudoers, y por defecto caduca después de 5 minutos.

Ulrich Schwarz
fuente
44
y ya sabes, usa visudopara editar la sudoconfiguración, NUNCA edites /etc/sudoersdirectamente.
Carlos Campderrós
2
@ CarlosCampderrós: ​​Cierto eso. Y (cuando sea posible) siempre mantenga abierto otro caparazón raíz para estar seguro. :)
Ulrich Schwarz
7

Eso depende de su configuración. El valor predeterminado en la mayoría de las distribuciones (y en la fuente) es de 5 minutos, pero puede cambiarlo con la timestamp_timeoutopción en /etc/sudoers. De man sudoers:

Número de minutos que pueden transcurrir antes de que sudo solicite nuevamente una contraseña. El tiempo de espera puede incluir un componente fraccional si la granularidad minuto es insuficiente, por ejemplo 2.5. El valor predeterminado es 5. Establezca esto en 0 para solicitar siempre una contraseña. Si se establece en un valor inferior a 0, la marca de tiempo del usuario nunca caducará. Esto se puede utilizar para permitir a los usuarios crear o eliminar sus propias marcas de tiempo a través de "sudo -v" y "sudo -k" respectivamente.

Por ejemplo, para establecer el tiempo de espera para el usuario chrisen 20 minutos, agregue lo siguiente a /etc/sudoers, o en un archivo en /etc/sudoers.d(nota: tanto el orden de las reglas en estos archivos como el orden de estos archivos son importantes, asegúrese de que no sea anulado involuntariamente por una regla que se ejecuta más tarde):

Defaults:chris timestamp_timeout=20
Chris Down
fuente