Comment sudo se souvient-il que vous avez déjà entré le mot de passe root?


27

Lors de l'utilisation de sudo sous Linux, il demande le mot de passe root, mais uniquement la première fois que vous l'exécutez. Si vous exécutez une autre commande sudo, il se souvient que vous avez déjà entré le mot de passe précédemment et ne le demande pas:

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)

Comment fait sudo? Où sont stockées ces informations? Mon idée est qu'il se souvient de l'ID du terminal (comme pts / 1), mais où est-il stocké? Le premier processus sudo est terminé quand il a terminé avec la commande, non?

Je sais que sudo est un programme setuid, il a donc toujours les privilèges root, mais je ne trouve toujours pas de bon endroit pour stocker une information qu'un utilisateur a déjà entré un mot de passe. Y a-t-il un processus démon impliqué?


1
Il y a un assez bon aperçu du fonctionnement de sudo ici: aplawrence.com/Basics/sudo.html Il détaille le comportement de sudo avec la mémorisation des mots de passe (par exemple, le délai d'expiration par défaut est de 5 minutes), bien qu'il ne couvre pas les détails de la façon dont sudo se souvient du mot de passe . Toujours intéressant, cependant.

12
Juste une petite correction, sudo vous demande votre mot de passe, pas le mot de passe root

Réponses:


16

Où sont stockées ces informations?

C'est probablement sous /var/db/sudoou /var/run/sudoet vous trouverez probablement des répertoires de noms d'utilisateurs avec des fichiers en dessous classés par numéro tty.

Les privilèges réels accordés, y compris la durée des sessions avant de devoir saisir à nouveau votre mot de passe, dépendent de la configuration de sudoers. Il y a des paramètres pour accorder / restreindre beaucoup de choses différentes, mais celles-ci ne sont pas stockées dans ces fichiers qui ne stockent que des horodatages. La durée d'une session, ou le moment où sudo doit à nouveau demander votre mot de passe, est déterminée par un delta d'heure actuelle et l'horodatage de la session dans ce répertoire, et combien de temps sudo est configuré pour permettre à une session de durer.


2
Quant à la durée, à partir des documents ubuntu : "Lorsque vous utilisez sudo, votre mot de passe est stocké par défaut pendant 15 minutes."

11

Essayez de man sudojeter un œil à la section FICHIERS:

/ var / lib / sudo Répertoire contenant des horodatages

Et au SECURITY NOTES

sudo vérifiera la propriété de son répertoire d'horodatage (/ var / lib / sudo par défaut) [...]

(pages de manuel de Debian 6.0.4)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.