Forcer sudo à demander un mot de passe

26

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é à nouveau, je suis toujours dans un certain délai, ce qui signifie que je n'ai plus besoin d'être invité à saisir mon mot de passe.

Parce que j'essaie de nouveaux programmes privés pour m'assurer qu'ils fonctionnent, cela me ralentit vraiment pendant que j'attends que le délai expire.

Existe-t-il une commande que je peux exécuter pour réinitialiser le délai?

Soit dit en passant, je ne veux pas modifier le délai d'attente ni affecter les autres utilisateurs!

Riches
la source
Si vous ne pouvez toujours pas forcer sudo à demander le mot de passe, vous devrez peut-être également commenter les règles utilisateur mentionnant "NOPASSWD" si elles sont présentes dans le /etc/sudoers.d/répertoire. J'ai la ligne #includedir /etc/sudoers.ddans /etc/sudoerset bien que la ligne est désactivée par un commentaire mais il semble que l' #avant includedirest pas lu comme un commentaire!
baptx

Réponses:

40

sudo -kVa tuer l'horodatage du délai d'expiration. Vous pouvez même mettre la commande après, commesudo -k test_my_privileges.sh

De man sudo:

-K L'option -K (kill sûr) est similaire à -k, sauf qu'elle supprime complètement l'horodatage de l'utilisateur et ne peut pas être utilisée conjointement avec une commande ou une autre option. Cette option ne nécessite pas de mot de passe.

-k Lorsqu'elle est utilisée seule, l'option -k (kill) de sudo invalide l'horodatage de l'utilisateur en définissant l'heure sur celle-ci à l'époque. Lors de la prochaine exécution de sudo, 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 les autorisations sudo d'un fichier .logout.

Vous pouvez également le modifier définitivement. De man sudoers:

timestamp_timeout

Nombre de minutes qui peuvent s'écouler avant que sudo demande à nouveau un mot de passe. Le délai d'attente peut inclure un composant fractionnaire si la granularité infime est insuffisante, par exemple 2,5. La valeur par défaut est 5. Définissez cette valeur sur 0 pour toujours demander un mot de passe. S'il est 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.

Shawn J. Goff
la source
2
Prenez soin de sudo -k commandne pas supprimer les informations d'identification. Il ignore simplement les informations d'identification actuelles et ne les stocke pas.
user1346466
Pour ajouter à cela. Si vous souhaitez modifier le délai d'expiration de l'horodatage, vous devez modifier le sudoersfichier avec sudo visudo. Ensuite, vous ajoutez la ligne Defaults timestamp_timeout = 0à la fin de la liste des autres Defaultsdans le fichier. Reprenez la ligne pour revenir à la temporisation "normale".
Floris
Ma question de suivi: unix.stackexchange.com/q/416039/26152
UlfR
5

La réponse de Shawn est excellente, mais il existe une option de configuration supplémentaire qui pourrait être utile dans cette situation.

De man sudoers:

tty_tickets

S'il est défini, les utilisateurs doivent s'authentifier sur une base par tty. Avec cet indicateur activé, sudo utilisera un fichier nommé pour le tty auquel l'utilisateur est connecté dans le répertoire d'horodatage de l'utilisateur. S'il est 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 dans sudoers, l'horodatage a une granularité par tty mais peut toujours survivre à la session de l'utilisateur. Sur les systèmes Linux où le système de fichiers devpts est utilisé, les systèmes Solaris avec le système de fichiers des périphériques, ainsi que d'autres systèmes qui utilisent un système de fichiers devfs qui augmentent de manière monotone le nombre d'inodes des périphériques à mesure qu'ils sont créés (tels que Mac OS X), sudo est capable pour déterminer quand un fichier d'horodatage basé sur tty est périmé et l'ignorera. Les administrateurs ne doivent pas s'appuyer sur cette fonctionnalité car elle 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 puis vous connectez, sudo vous demandera à nouveau votre mot de passe. (J'ai aussi sudo -Kdans mon script de déconnexion des shells.)

Arrowmaster
la source