Wie lang ist das Kennwort für die Ausführung eines Befehls mit zwischengespeichertem sudo?

23

Wenn ich einen Befehl ausführe, für den root-Rechte erforderlich sind sudo, werde ich aufgefordert, das Kennwort des aktuellen Benutzers einzugeben. Wenn ich danach eine Weile die gleichen Befehle mit ausführe sudo, werde ich nicht mehr nach dem Passwort gefragt. Ich vermute also, dass das Passwort irgendwo zwischengespeichert wird, bis es abläuft. Wie lang ist diese Ablaufzeit? Ist es möglich, es zu konfigurieren?

Meysam
quelle
1
Nur zu Ihrer Information, Sie können mit zur Verlängerung des Ablaufs auffordern sudo -v. Dies ist ideal, um Skripts, die sudo-Befehle ausführen, am Anfang nach dem Kennwort zu fragen.
Valbaca
Hinweis: sudo speichert das Kennwort nicht im Cache. Sudo benötigt überhaupt kein Passwort, sondern fragt nur, ob der Benutzer den angegebenen Befehl ausführen darf. Grundsätzlich werden die Anmeldeinformationen des Benutzers für einen Zeitraum zwischengespeichert (als spezieller "Zeitstempel", siehe Antwort oben), in dem der Benutzer sich nicht erneut verifizieren muss. Das Kennwort selbst wird im Gegensatz zu einem Webbrowser oder Verschlüsselungsschlüsseln nicht zwischengespeichert.
Anthony

Antworten:

20

man 5 sudoersteilt uns mit, dass es eine Option gibt timestamp_timeout:

timestamp_timeout

Die Anzahl der Minuten, die vergehen können, bevor sudo erneut nach einem Passwort fragt. Das Timeout kann eine Teilkomponente enthalten, wenn die winzige Körnigkeit nicht ausreicht, beispielsweise 2,5. Der Standardwert ist 5. Setzen Sie diesen Wert auf 0, um immer zur Eingabe eines Kennworts aufzufordern. Bei einem Wert unter 0 läuft der Zeitstempel des Benutzers niemals ab. Dies kann verwendet werden, um Benutzern das Erstellen oder Löschen eigener Zeitstempel über "sudo -v" bzw. "sudo -k" zu ermöglichen.

Also ja, es kann über konfiguriert werden /etc/sudoersund läuft standardmäßig nach 5 Minuten ab.

Ulrich Schwarz
quelle
4
und Sie wissen, verwenden Sie visudozum Bearbeiten der sudoKonfiguration, bearbeiten Sie NIEMALS /etc/sudoersdirekt.
Carlos Campderrós
2
@ CarlosCampderrós: ​​Richtig. Und (wo immer möglich) lassen Sie sicherheitshalber eine andere Wurzelschale offen. :)
Ulrich Schwarz
7

Das hängt von Ihrer Konfiguration ab. Die Standardeinstellung für die meisten Distributionen (und in der Quelle) beträgt 5 Minuten. Sie können sie jedoch mit der timestamp_timeoutOption in ändern /etc/sudoers. Von man sudoers:

Die Anzahl der Minuten, die vergehen können, bevor sudo erneut nach einem Passwort fragt. Das Timeout kann eine Teilkomponente enthalten, wenn die winzige Körnigkeit nicht ausreicht, beispielsweise 2,5. Der Standardwert ist 5. Setzen Sie diesen Wert auf 0, um immer zur Eingabe eines Kennworts aufzufordern. Bei einem Wert unter 0 läuft der Zeitstempel des Benutzers niemals ab. Dies kann verwendet werden, um Benutzern das Erstellen oder Löschen eigener Zeitstempel über "sudo -v" bzw. "sudo -k" zu ermöglichen.

Wenn Sie beispielsweise das Zeitlimit für den Benutzer chrisauf 20 Minuten festlegen möchten , fügen Sie Folgendes zu /etc/sudoersoder in eine Datei in /etc/sudoers.d(Hinweis: Die Reihenfolge der Regeln in diesen Dateien und die Reihenfolge dieser Dateien sind von Bedeutung eine Regel, die später ausgeführt wird):

Defaults:chris timestamp_timeout=20
Chris Down
quelle