web-dev-qa-db-fra.com

Forcer sudo à inviter un mot de passe

Si je fais ce qui suit:

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

La deuxième invocation de sudo ne demande pas de mot de passe, car même si je me suis déconnecté, je suis toujours dans un certain temps, ce qui signifie que je n'ai plus besoin d'être invité à nouveau pour mon mot de passe.

Parce que j'essaie de nouveaux privilèges pour nous assurer qu'ils travaillent, cela me ralentit vraiment pendant que j'attends que le délai d'attente se produise.

Y a-t-il une commande que je peux courir pour réinitialiser le délai d'attente?

Je ne veux pas changer le délai d'attente ou affecter d'autres utilisateurs, à la manière!

26
Rich

Sudo -k Tuera l'horodatage du délai d'attente. Vous pouvez même mettre la commande ensuite, comme Sudo -k test_my_privileges.sh

De man Sudo:

- k L'option -k (Sure Kill) est comme -k, sauf qu'il supprime entièrement l'horodatage de l'utilisateur et ne peut pas être utilisé conjointement avec une commande ou une autre option. Cette option ne nécessite pas de mot de passe.

- k Lorsqu'il est utilisé par lui-même, l'option -k (kill) à Sudo invalide l'horodatage de l'utilisateur en définissant l'heure à l'époque. La prochaine fois que Sudo est exécuté, un mot de passe sera requis. Cette option ne nécessite pas de mot de passe et a été ajoutée pour permettre à un utilisateur de révoquer des autorisations sudo à partir d'un fichier .logout.

Vous pouvez également le changer en permanence. De man sudoers:

Timestamp_timeout

Nombre de minutes pouvant s'écouler avant que Sudo demandera à nouveau un passwrd. Le délai d'attente peut inclure une composante fractionnelle si la granularité minute est insuffisante, par exemple 2.5. La valeur par défaut est 5. Définissez ceci sur 0 pour toujours inviter un mot de passe. Si défini sur une valeur inférieure à 0, l'horodatage de l'utilisateur n'expirera jamais. Cela peut être utilisé pour permettre aux utilisateurs de créer ou de supprimer leurs propres horodatages via sudo -v et sudo -k respectivement.

42
Shawn J. Goff

La réponse de Shawn est géniale mais une option de configuration supplémentaire peut être utile dans cette situation.

De man sudoers:

tty_tickets

Si défini, les utilisateurs doivent s'authentifier sur une base de TTY. Avec ce drapeau activé, SUDO utilisera un fichier nommé pour le TTY L'utilisateur est connecté dans le répertoire horaire de l'utilisateur. Si désactivé, l'horodatage du répertoire est utilisé à la place.

Ce drapeau est activé par défaut.

De man Sudo:

Lorsque l'option TTY_TICKETS est activée à Sudoers, l'horodatage a une granularité de TTY, mais peut toujours survivre à la session de l'utilisateur. Sur les systèmes Linux où le système de fichiers DevPTS est utilisé, Solaris Systems avec le système de fichiers de périphériques, ainsi que d'autres systèmes utilisant un système de fichiers DVFS qui augmentent monotone le nombre de périphériques de l'inode tels qu'ils sont créés (tels que Mac OS X), Sudo est capable. Pour déterminer lorsqu'un fichier de timbre temporel à base de TTY est rassis et l'ignorera. Les administrateurs ne doivent pas s'appuyer sur cette fonctionnalité car il n'est pas universellement disponible.

Je pense que c'est relativement nouveau. Si votre système le prend en charge, si vous vous déconnectez ensuite, SUDO demandera à nouveau votre mot de passe. (J'ai Sudo -K Dans mon script de déconnexion de mon shells aussi.)

5
Arrowmaster