Obligar a sudo a solicitar una contraseña

26

Si hago lo siguiente:

sudo su -
//enter password
exit
exit
//login again straight away
sudo su -

La segunda invocación de sudo no solicita una contraseña porque, aunque he vuelto a cerrar sesión, todavía estoy dentro de algún límite de tiempo, lo que significa que no necesito que me vuelvan a solicitar mi contraseña.

Debido a que estoy probando algunos nuevos privs para asegurarme de que funcionen, esto realmente me está frenando mientras espero el tiempo de espera.

¿Hay algún comando que pueda ejecutar para restablecer el tiempo de espera?

¡No quiero cambiar el tiempo de espera ni afectar a otros usuarios, por cierto!

Rico
fuente
Si aún no puede forzar a sudo a que solicite la contraseña, es posible que también deba comentar las reglas de usuario que mencionan "NOPASSWD" si están presentes en el /etc/sudoers.d/directorio. Tengo la línea #includedir /etc/sudoers.den /etc/sudoersy aunque que la línea está desactivado por un comentario, pero parece que la #antes includedirno se lee como un comentario!
Baptx

Respuestas:

40

sudo -kEliminará la marca de tiempo de espera. Incluso puedes poner el comando después, comosudo -k test_my_privileges.sh

De man sudo:

-K La opción -K (sure kill) es como -k, excepto que elimina la marca de tiempo del usuario por completo y no se puede usar junto con un comando u otra opción. Esta opción no requiere una contraseña.

-k Cuando se usa solo, la opción -k (kill) para sudo invalida la marca de tiempo del usuario al configurar la hora en la Época. La próxima vez que se ejecute sudo se requerirá una contraseña. Esta opción no requiere una contraseña y se agregó para permitir que un usuario revoque los permisos de sudo de un archivo .logout.

También puedes cambiarlo permanentemente. De man sudoers:

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.

Shawn J. Goff
fuente
2
Tenga cuidado sudo -k commandserá no quitar las credenciales. Simplemente ignora las credenciales actuales y no las almacena.
user1346466
Solo para agregar a esto. Si desea cambiar el tiempo de espera de la marca de tiempo, debe editar el sudoersarchivo con sudo visudo. Luego agrega la línea Defaults timestamp_timeout = 0al final de la lista de otros Defaultsen el archivo. Retire la línea nuevamente para volver al tiempo de espera "normal".
Floris
Mi pregunta de seguimiento: unix.stackexchange.com/q/416039/26152
UlfR
5

La respuesta de Shawn es excelente, pero hay una opción de configuración adicional que podría ser útil en esta situación.

De man sudoers:

tty_tickets

Si se establece, los usuarios deben autenticarse por base de datos. Con esta marca habilitada, sudo usará un archivo con el nombre tty en el que el usuario inició sesión en el directorio de marca de tiempo del usuario. Si está deshabilitado, se utiliza la marca de tiempo del directorio.

Esta bandera está activada por defecto.

De man sudo:

Cuando la opción tty_tickets está habilitada en sudoers, la marca de tiempo tiene granularidad por tty pero aún puede sobrevivir a la sesión del usuario. En los sistemas Linux donde se usa el sistema de archivos devpts, los sistemas Solaris con el sistema de archivos de dispositivos, así como otros sistemas que utilizan un sistema de archivos devfs que aumenta monotónicamente el número de inodos de dispositivos a medida que se crean (como Mac OS X), sudo es capaz para determinar cuándo un archivo de marca de tiempo basado en tty está obsoleto y lo ignorará. Los administradores no deben confiar en esta característica, ya que no está disponible universalmente.

Creo que es relativamente nuevo. Si su sistema lo admite, si cierra sesión y luego inicia sesión, sudo solicitará su contraseña nuevamente. (También tengo sudo -Ken mi script de cierre de sesión de shells).

Arrowmaster
fuente