In meiner Zeit als Admin habe ich oft gesehen, dass viele meiner Kollegen um die Rechte eines Benutzers zu ändern die Datei /etc/sudoers direkt mit einem Editor ihrer Wahl bearbeitet haben.
Der größte Nachteil daran ist der, dass ein einziger Tippfehler reicht um sich anschließend nicht mehr auf dem System einloggen zu können.
visudo verwenden
visudo wird im Paket sudo bereitgestellt und bringt folgenden Vorteile:
- die
sudoersDatei wird gesperrt und kann somimt nicht parallel von jemand anderem bearbeitet werden - es werden automatisch verschiedene Checks durchgeführt die sicherstellen sollen, dass die
sudoersDatei syntaktisch korrekt ist - wird die
sudoersgerade von jemanden bearbeitet bekommt man eine entsprechende Mitteilung und muss es zu einem späteren Zeitpunkt erneut versuchen - es lässt sich zur Bearbeitung der
sudoersDatei jeder gewünschte (installierte) Editor verwenden
Beim starten kopiert visudo die sudoers Datei zu sudoers.tmp um falsch gemachte Änderungen wieder rückgängig machen zu können.
visudo aufrufen
Um die sudoers Datei zu bearbeiten reicht es den Befehl visudo als root auszuführen.
Hierbei wird die /etc/sudoers mit dem in der Env-Variable EDITOR gespeicherten Editor geöffnet und kann entsprechend bearbeitet werden.
Nach der Bearbeitung wird die sudoers Datei regulär gespeichert und geschloßen, die automtischen Syntax-Checks starten automatisch im Anschluß daran.
einen anderen Editor verwenden
Der Standard-Editor ist bei visudo, wie der Name vermuten lässt vi.
Durch temporäres oder persistentes setzen der EDITOR Umgebungsvariable lässt sich der gewüschte Editor setzen.
um beispielsweise nano zu verwenden:
temporäre Änderung
$ EDITOR=nano visudo
permanente Änderung
EDITOR=nano in die ~/.bashrc oder für globale Änderung in die /etc/profiles eintragen.
Verhalten im Fehlerfall
Wenn man die /etc/sudoers per visudo bearbeitet hat, einen Syntax-Fehler erzeugt und dann speichert wird man durch visudo entsprechend darauf hingewiesen und hat dann mehrere Optionen.
$ visudo
>>> /etc/sudoers: Syntax-Fehler near line 101 <<<
Was jetzt? h
Optionen sind:
sudoers-Datei (e)rneut bearbeiten
Beenden, ohne die Änderungen an der sudoers-Datei zu speichern (mit x)
Beenden und Änderungen an der sudoers-Datei speichern (mit Q, VORSICHT!)
Die Optionen hierbei sind folgende:
h– anzeigen der möglichen Optionene– diesudoersDatei erneut bearbeitenx– die gemachten Änderungen nicht speichernQ– trotz Warnung speichern (VORSICHT! nicht zu empfehlen)
die /etc/sudoers überprüfen
Um die aktuelle /etc/sudoers mit visudo zu prüfen kann man folgende Optionen verwenden:
visudo -c -f /etc/sudoers
-c– Aktiviert dencheck-onlyModus, hierbei wird diesudoersDatei auf die richtige Syntax, Besitzer und Berechtigungen geprüft-f– gibt den Pfad zursudoersan, will man/etc/sudoersprüfen kann man diese Option auch weglassen
Beispiel:
$ visudo -c
/etc/sudoers: Analyse OK
/etc/sudoers.d/rasputin: Falsche Zugriffsrechte, sollte Modus 0440 sein