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
sudoers
Datei wird gesperrt und kann somimt nicht parallel von jemand anderem bearbeitet werden - es werden automatisch verschiedene Checks durchgeführt die sicherstellen sollen, dass die
sudoers
Datei syntaktisch korrekt ist - wird die
sudoers
gerade 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
sudoers
Datei 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
– diesudoers
Datei 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-only
Modus, hierbei wird diesudoers
Datei auf die richtige Syntax, Besitzer und Berechtigungen geprüft-f
– gibt den Pfad zursudoers
an, will man/etc/sudoers
prüfen kann man diese Option auch weglassen
Beispiel:
$ visudo -c
/etc/sudoers: Analyse OK
/etc/sudoers.d/rasputin: Falsche Zugriffsrechte, sollte Modus 0440 sein