Warum muss ich / etc / sudoers mit visudo bearbeiten?

51

Mir ist aufgefallen, dass die sudoers-Datei und die cron-Konfigurationsdateien im Vergleich zu anderen Konfigurationsdateien unter Linux auf besondere Weise funktionieren. Sie müssen mit einem speziellen Wrapper und nicht mit einem Texteditor bearbeitet werden. Warum ist das?

Brian Lyttle
quelle

Antworten:

71

Sie verwenden visudo hauptsächlich, um zu verhindern, dass Ihr System kaputt geht. Visudo überprüft Ihre Änderungen, um sicherzustellen, dass Sie nichts falsch gemacht haben. Wenn Sie etwas durcheinander gebracht haben, können Sie Ihre Fähigkeit, es zu reparieren oder etwas zu tun, das Privilegien erfordert, völlig ruinieren, ohne einen Neustart in einem Rettungsmodus durchzuführen.

Die Manpage beschreibt dies .

visudo bearbeitet die sudoers-Datei auf sichere Weise, analog zu vipw (8). visudo sperrt die sudoers-Datei gegen mehrere gleichzeitige Bearbeitungen, bietet grundlegende Sicherheitsüberprüfungen und prüft auf Analysefehler. Wenn die sudoers-Datei gerade bearbeitet wird, erhalten Sie eine Nachricht, um es später erneut zu versuchen.

Zoredache
quelle
3
Interessant! +1, für die Veranschaulichung einer einfachen Erklärung für etwas, das ich vor langer Zeit hätte kennen müssen :)
Greg Meehan
7
Das Verhalten von visudo ist generisch als Befehl namens sudoedit verfügbar. Dies führt den gleichen Sperr- / Kopier- / Bearbeitungs- / Kopier- / Entsperrzyklus aus (obwohl dies offensichtlich nicht mit dem Analyseschritt zusammenhängt). Dies hat den Vorteil, dass Sie Benutzern sudo den Zugriff auf die Bearbeitung von Dateien mit Root-Rechten gewähren können, ohne einen Editor als Root zu starten, wodurch sie möglicherweise eine Shell aus dem Editor heraus starten können. Wenn ich meinen Editor während der Ausführung von sudoedit verlasse, ist meine euid immer noch meine eigene.
James F
18

Zoredache Antwort ist perfekt.

Eine weitere Sache, die es wert sein kann, erwähnt zu werden. Sie können Ihren bevorzugten Editor verwenden, indem Sie Folgendes festlegen EDITORoder VISUAL:

export EDITOR=whatevertexteditoryouwant
export VISUAL=whatevertexteditoryouwant

Oder:

EDITOR=whatevertexteditoryouwant visudo
cstamas
quelle
Wenn Sie das tun, wird der Syntaxprüfungsschritt trotzdem ausgeführt, oder entspricht dies dem Aufrufen von sudoedit, wie es @James F vorgeschlagen hat?
o0 '.
Ja ist die Antwort auf Ihre Frage. Sie können fast jeden Editor verwenden, den Sie von CLI aufrufen können.
cstamas
3
Es war keine Ja oder Nein Frage: V
o0 '.
5
Es wird nicht die Syntaxprüfung.
Cstamas