/etc/sudoers sicher bearbeiten mit visudo

Datum

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 Optionen
  • e – die sudoers Datei erneut bearbeiten
  • x – die gemachten Änderungen nicht speichern
  • Q – 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 den check-only Modus, hierbei wird die sudoers Datei auf die richtige Syntax, Besitzer und Berechtigungen geprüft
  • -f – gibt den Pfad zur sudoers 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

Autor
Kategorien Linux, Troubleshooting

PRTG Map