Wie erhöhe ich das Erinnerungszeitlimit für Sudo-Passwörter?

61

Ich weiß bereits, dass ich die Datei / etc / sudoers optimieren muss, möchte aber vollständige Informationen und auch eine Lösung sehen, für die ich keinen viEditor verwenden muss.

Update: Versuchen Sie niemals, die Datei mit etwas anderem als zu bearbeiten visudo.

Sorin
quelle
1
Sie können den EDITOR env var auch mit visudo :: sudo env EDITOR = nano visudo
Good Person

Antworten:

86

Führen Sie sudo visudodie folgende Zeile aus und fügen Sie sie hinzu:

Defaults    timestamp_timeout=-1

Sehen man 5 sudoers. -1Bewirkt, dass das Kennwort niemals eine Zeitüberschreitung aufweist. Sie können die Nummer in Minuten nach Belieben ändern.

Die Manpage für sudosagt, dass sudo -v"das Sudo-Timeout um weitere 5 Minuten verlängert".

Wenn Sie 'sudo visudo' ausführen, anstatt die Datei direkt zu bearbeiten, überprüft das System die sudoers-Datei, bevor die Änderungen übernommen werden. Wenn Sie beispielsweise irgendwo ein streunendes Zeichen hinterlassen, wird beim Speichern und Beenden die Meldung "Es liegt ein Fehler in der sudoers-Datei vor. Was möchten Sie tun?" Angezeigt. ... damit Sie die Möglichkeit haben, erneut zu arbeiten und zu bearbeiten. Das ist mir eigentlich erst vor 10 Minuten passiert.

lhf
quelle
20
Ja, aber visudovor dem Speichern werden einige grundlegende Sicherheitsüberprüfungen für die sudoers-Datei durchgeführt. Wenn Sie die Datei vidirekt durcheinander bringen, können Sie die Verwendung von sudo sperren, was es sehr schwierig macht, die Änderung rückgängig zu machen.
Nohillside
4
Die Privilegien sind auf anderen Systemen ähnlich, haben also nichts mit Apple zu tun. visudodreht sich um den Standardeditor des Systems (ich würde den Standard des Root-Benutzers schätzen, wenn der Root den Standard überschrieben hat), hat also nichts mit vi zu tun, außer dem Namen. Auf meinem System (übrigens nicht Apfel) bekomme ich Nano. Probieren Sie einen export EDITOR='/bin/nano'beliebigen Editor aus und verwenden Sie visudo.
Chris
4
Ähm ... Sie können root nicht verwenden, um es zu korrigieren, weil Sie nicht zu root gelangen können, weil Sie gerade Ihre sudo-Datei gestopft haben ... Das ist der springende Punkt.
Daviewales
1
In einer professionellen Rolle haben Sie möglicherweise Zugriff auf sudo, aber nicht das root-Passwort. Ihr Server befindet sich möglicherweise in einem Datencenter im ganzen Land, wodurch der Zugriff auf den Einzelbenutzermodus erschwert wird. Wenn Sie jedoch als professionell eingestuft würden, hätten Sie wahrscheinlich keine solchen Warnungen erhalten. Der Punkt ist, dass Sie von Profis lernen sollten. Suchen Sie nicht nach Wegen, um gute Gewohnheiten zu vermeiden. Dann müssen wir Ihre hektischen Schreie auf Stack Exchange und IRC hören.
Bruno Bronosky
1
(Vielleicht ist es für alle offensichtlich, aber das Hinzufügen): timestamp_timeout wird in Minuten angegeben und kann eine Teilkomponente enthalten.
Benutzer
3

Seien Sie sehr vorsichtig, wenn Sie /etc/sudoersdirekt Änderungen vornehmen!

Zum Beispiel habe ich den obigen Vorschlag direkt ausprobiert:

sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

was meine /etc/sudoersDatei durcheinander gebracht hat (auf einer CentOS Virtualbox VM). Gewesen sein sollte:

sudo sh -c 'echo -e "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

Glücklicherweise hatte ich Zugriff auf das als root angemeldete Root-Konto, visudodas das Problem benutzte und reparierte! Ich bin damit einverstanden, dass die obigen Kommentare visudostattdessen verwendet werden.

user304227
quelle
1

Alle Informationen für Sudoer erhalten Sie über das Terminal mit dem Befehl

man sudoers

Sie können sogar einfachen Text verwenden, um Dateien zu bearbeiten. Die Privilegien erschweren dies jedoch. Sudoers ist-r--r----- (Octal 0440)

Dies zeigt an, dass Apple wirklich nicht möchte, dass Sie mit der Datei herumspielen. Dies ist wirklich die Kernsicherheit des Betriebssystems.

Optionen für die Bearbeitung sind vi, emacs oder mein persönlicher Favorit BBEdit.

Andrei Freeman
quelle
5
Es gibt einen Grund, warum diese Berechtigungen festgelegt sind. Sie sollen Sie dazu zwingen, visudodie Datei zu verwenden, anstatt sie selbst zu bearbeiten. Dies hat auch nichts mit OS X zu tun. Es ist Standard * nix. Wenn Sie einen nicht standardmäßigen Editor verwenden möchten, legen Sie einfach die $EDITORUmgebungsvariable vor dem Aufruf fest visudo. zb EDITOR=nano sudo visudo.
Daviewales
1

Deaktivieren Sie das Sudo-Timeout mit folgendem Befehl:

sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

So aktivieren Sie das Sudo-Timeout mit dieser Methode erneut:

sudo sed -i "/Defaults timestamp_timeout=-1/d" /etc/sudoers
patpat
quelle
8
Aus der sudoers-Manpage: Die sudoers-Datei sollte immer mit dem visudo-Befehl bearbeitet werden, der die Datei sperrt und die Grammatik überprüft. Es ist unbedingt erforderlich, dass sudoer keine Syntaxfehler aufweisen, da sudo nicht mit einer syntaktisch falschen sudoers-Datei ausgeführt wird.
Matteo
@ Matteo Nun, Sie können auf Ihrem eigenen Grundstück alles tun, was Sie wollen, vorausgesetzt, Sie kennen die Konsequenzen. In einigen Situationen ist dies in Ordnung. Beispielsweise verwende ich es auf neuen Mac-Builds, auf denen im Rahmen eines Automatisierungsskripts keine wertvollen Daten gespeichert sind. Ich habe vorgeschlagen, diese Antwort zu bearbeiten, um eine Warnung anzuzeigen. Idealerweise sudosollte dies einzeilig geändert werden können, ohne dass eine Datei bearbeitet werden muss!
Samthebest
1
Achtung, das ist ein gefährlicher Rat. Verwenden Sie stattdessen visudo.
Will Sheppard