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é?
Réponses:
C'est probablement sous
/var/db/sudo
ou/var/run/sudo
et 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.
la source
Essayez de
man sudo
jeter un œil à la section FICHIERS:Et au
SECURITY NOTES
(pages de manuel de Debian 6.0.4)
la source