Wie merkt sich sudo, dass Sie das root-Passwort bereits eingegeben haben?

27

Wenn Sie sudo unter Linux verwenden, werden Sie aufgefordert, das root-Passwort einzugeben, jedoch nur beim ersten Start. Wenn Sie einen anderen sudo-Befehl ausführen, merkt er sich, dass Sie das Kennwort bereits eingegeben haben, und fragt nicht danach:

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)

Wie macht sudo das? Wo werden diese Informationen gespeichert? Meine Idee ist, dass es sich die Terminal-ID merkt (wie pts / 1), aber wo ist diese gespeichert? Der erste Sudo-Prozess ist beendet, wenn der Befehl ausgeführt wurde, oder?

Ich weiß, dass sudo ein Setuid-Programm ist, daher hat es die ganze Zeit Root-Rechte, aber ich kann mir immer noch keinen guten Ort zum Speichern von Informationen vorstellen, für die ein Benutzer bereits ein Passwort eingegeben hat. Gibt es einen Daemon-Prozess?

Kuba
quelle
1
Es ist eine ziemlich gute Übersicht, wie sudo funktioniert hier: aplawrence.com/Basics/sudo.html Es wird ausführlich auf das Verhalten des sudo mit Erinnerung von Passwörtern (zB die Standard - Timeout ist 5 Minuten), obwohl es nicht die Besonderheiten abdeckt , wie sudo erinnert sich an das Passwort . Trotzdem interessant.
12
Nur eine winzige Korrektur, sudo fragt Sie nach Ihrem Passwort, nicht nach dem Passwort von root

Antworten:

16

Wo werden diese Informationen gespeichert?

Es ist wahrscheinlich unter /var/db/sudooder /var/run/sudound Sie werden wahrscheinlich Verzeichnisse von Benutzernamen mit Dateien darunter finden, die nach der Tty-Nummer sortiert sind.

Die tatsächlich gewährten Berechtigungen, einschließlich der Dauer der Sitzungen, bevor Sie Ihr Kennwort erneut eingeben müssen, hängen davon ab, wie sudoers eingerichtet ist. Es gibt Einstellungen, um viele verschiedene Dinge zu gewähren / einzuschränken, aber diese werden nicht in diesen Dateien gespeichert, die nur Zeitstempel speichern. Wie lange eine Sitzung dauert oder wann sudo erneut nach Ihrem Kennwort fragen muss, wird durch ein Delta der aktuellen Zeit und den Sitzungszeitstempel in diesem Verzeichnis bestimmt und wie lange sudo so eingerichtet ist, dass eine Sitzung dauert.

Jon Lin
quelle
2
In Ubuntu-Dokumenten heißt es wie lange : "Wenn Sie sudo verwenden, wird Ihr Kennwort standardmäßig 15 Minuten lang gespeichert."
11

Probieren Sie man sudoden Abschnitt DATEIEN aus:

/ var / lib / sudo Verzeichnis mit Zeitstempeln

Und im SECURITY NOTES

sudo überprüft den Besitz seines Zeitstempelverzeichnisses (standardmäßig / var / lib / sudo) [...]

(Manpages von Debian 6.0.4)

Andreas Florath
quelle