Wie oft wird das Passwort nach sudo-Befehlen gefragt? Wo kann ich es einrichten?

24

Ich führe ziemlich viele sudoBefehle aus.

Ich habe festgestellt, dass, wenn ich innerhalb weniger Minuten eine und dann eine weitere ausführe, beim zweiten Mal die folgende Meldung nicht angezeigt wird:

[sudo] Passwort für meinen_Benutzernamen:

aber ich bekomme es, wenn mehr Zeit zwischen der Ausführung der beiden Befehle ist.

In welchem ​​Zeitraum wird die Nachricht nicht angezeigt? Wie können wir es überprüfen / aktualisieren?

fedorqui
quelle
1
sudo visudo, dann% sudo Linie sollte% sein sudo ALL = (ALL: ALL) NOPASSWD: ALL, es wird Ihnen kein Passwort fragen , wenn Sie sudo any-Material geben
Qasim
3
Dies (NOPASSWD: ALL) ist ein sehr gefährlicher Vorschlag. Dadurch wird Ihre Installation ungesichert.
Sri

Antworten:

31

Das Standardzeitlimit sudobeträgt 15 Minuten. Das bedeutet, dass Sie sudosich Ihr Kennwort standardmäßig 15 Minuten lang merken.

Sie können dieses Standardzeitlimit ändern, indem Sie der Datei eine Zeichenfolge hinzufügen /etc/sudoers. Sie ändern die Datei jedoch nicht direkt, sondern verwenden stattdessen den Befehl sudo visudo.

Geben Sie also sudo visudoein Terminal ein. Dies öffnet die (eigentlich temporäre) Datei, die wir mit Ihrem bevorzugten Editor bearbeiten können.

Hinweis: Wenn Sie visudoden Editor zum ersten Mal verwenden, werden Sie gefragt, welchen Editor Sie verwenden möchten. Wählen Sie daher Ihren Editor aus. Es gibt keinen "besseren" Editor, aber ich bevorzuge nano. Wenn Sie bereits verwendet haben visudound einen Editor wählte vor, aber Sie wollen einen anderen Editor für vorerst verwenden, können Sie sudo EDITOR=vi visudozu verwenden vi, oder es ändern nanozu verwenden nano. Wenn Sie Ihren bevorzugten Editor dauerhaft ändern möchten, tun Sie Folgendes sudo update-alternatives --config editor.

Suchen Sie nach dieser Zeile:

Defaults    env_reset

Und fügen Sie (mit einem Komma) am Ende hinzu, wobei X die Zeit in Minuten ist, die Sie einstellen möchten.timestamp_timeout=X

So sollte Ihre Zeile als Beispiel aussehen:

Defaults    env_reset,timestamp_timeout=5

Wenn Sie 0 angeben, werden Sie immer nach dem Passwort gefragt. Wenn Sie einen negativen Wert angeben, läuft das Timeout nie ab.

Sobald Sie fertig sind, speichern und beenden.

Quelle: RootSudoTimeout

Alaa Ali
quelle
Vielen Dank, @Alaa, es ist eine gute und hilfreiche Antwort. Nur als Randnotiz, das Ctrl + xTeil ist nicht immer passend, wie der Editor zum Beispiel sein kann vi(in meinem Fall).
Fedorqui
Übrigens habe ich einen großen Fehler gemacht, als ich eine neue Zeile mit Default timestamp-0anstelle der mit hinzugefügt habe env_reset. Es hat meine sudoers-Datei beschädigt. Musste askubuntu.com/a/73872/143251 verwenden , um es zu lösen!
Fedorqui
@fedorqui: Genau deshalb sollten Sie visudo verwenden (wie Alaa empfiehlt), anstatt die Datei direkt zu bearbeiten. Ersteres überprüft die Datei in der Syntax nach Ihnen und verhindert, dass Sie sich von sudo fernhalten.
Plutor
Ja, ja, das habe ich @Plutor gemacht. Aber viist der Editor, für den ich definiert habe visudo. Das Problem ist, dass ich die Datei gespeichert habe, obwohl beim Schließen eine Warnmeldung angezeigt wurde. Offensichtlich meine Schuld.
Fedorqui
1
@fedorqui, ja, ich wollte diesen Teil irgendwie entfernen, weil jeder einen anderen Editor verwenden könnte. Ich habe meine Antwort so bearbeitet, dass sie nicht redaktionell ist.
Alaa Ali
3

Siehe diesen Beitrag hier: http://ubuntuforums.org/showthread.php?p=116697#post116697

/etc/sudoersDatei bearbeiten , sudo visudoBefehl zur Sicherheit verwenden. Ergänzen Sie timestamp_timeout=0die Zeile, indem Sie Defaultsjedes Mal nachfragen, oder geben Sie ein positives X für die Verzögerung von X Minuten an.

Tuminoid
quelle
1
Ich muss mich im Forum registrieren, um es zu sehen. Könnten Sie in der Zwischenzeit bitte angeben, welche Datei ich mit timestamp_timeout=0line bearbeiten soll ?
Fedorqui
OK, feste Antwort.
Tuminoid
Es hat den Trick gemacht! Ich werde die andere Antwort akzeptieren, da sie eine umfassendere Erklärung enthält und die env_resetReferenz enthält, die wichtig ist. Jedenfalls war Ihre Antwort auch sehr hilfreich, also danke!
Fedorqui
0

Nicht sicher, ob dies abläuft oder nicht, aber Sie könnten es versuchen

sudo su

Sie werden nach dem Passwort gefragt und danach werden alle Befehle als sudo ausgeführt.

Mihai
quelle
1
Ja, @ Rat2000, aber ich möchte meinen Benutzer weiterhin verwenden und nicht root. Ich finde es sicherer. Trotzdem danke für den Rat.
Fedorqui
3
Mit sudo su wirst du root. Ihre Eingabeaufforderung sollte dann root @ yourpc sein. Beachten Sie, dass root eine eigene .bashrc-Datei hat, sodass Ihre Aliase nicht funktionieren. Denken Sie auch daran, dass die Wurzel dem System schweren Schaden zufügen kann. Seien Sie also vorsichtig!
speter