EMZETT.
Login

sudo und root: Rechte gezielt ausleihen

Kurz: Mit sudo führt ein normaler Benutzer einzelne Befehle mit den Rechten eines anderen Benutzers (meist root) aus, nachdem er sich mit dem eigenen Passwort ausgewiesen hat.

Genauer: Der Benutzer root darf unter Linux alles und kann damit auch alles kaputt machen. Deshalb arbeitet man im Alltag mit einem normalen Konto und holt sich Administrator-Rechte nur für einzelne Befehle: sudo („superuser do“). So ist nachvollziehbar, wer was getan hat, und ein Tippfehler wirkt sich nur dort aus, wo man bewusst erhöht.

Im Detail

Grundlegende Nutzung

sudo apt update              # einen Befehl als root ausführen
sudo -u postgres psql        # als anderer Benutzer
sudo -i                      # interaktive root-Shell (sparsam einsetzen)
sudo -l                      # zeigen, was man darf
sudo !!                      # letzten Befehl wiederholen, diesmal mit sudo

Das Passwort wird für einige Minuten gemerkt. Eine häufige Gewohnheit: Fehlermeldung „Permission denied“ lesen, nicht blind sudo davorsetzen, sondern prüfen, ob der Befehl wirklich diese Rechte braucht.

Die Konfiguration: sudoers

Wer sudo nutzen darf, steht in /etc/sudoers und in Dateien unter /etc/sudoers.d/. Bearbeiten nur mit visudo, das die Syntax prüft, sonst kann man sich aussperren. Beispiele:

%sudo   ALL=(ALL:ALL) ALL                 # Gruppe sudo darf alles
anna    ALL=(root) /usr/bin/systemctl restart nginx   # nur dieser Befehl

Unter Debian/Ubuntu gehört der erste Benutzer zur Gruppe sudo, unter Fedora/RHEL zur Gruppe wheel.

Vorsichtsregeln

  • So wenig wie möglich als root arbeiten (Prinzip der geringsten Rechte).
  • Keine grafischen Programme oder Skripte aus unsicheren Quellen mit sudo starten.
  • Bei Umleitungen wirkt sudo nur auf den Befehl, nicht auf die Umleitung: sudo echo x > /etc/datei scheitert; richtig ist echo x | sudo tee /etc/datei.
  • Alle sudo-Aufrufe landen im Protokoll (journalctl _COMM=sudo oder /var/log/auth.log).

Alternativen

su wechselt den Benutzer komplett und verlangt das Passwort des Ziels. doas (OpenBSD, auch unter Linux) ist ein schlankerer Ersatz. Für feinere Rechte gibt es Linux-Capabilities, Polkit für grafische Oberflächen und Rollenmodelle wie SELinux. Das Root-Konto selbst wird bei vielen Systemen für die Anmeldung gesperrt.

Siehe auch: Benutzer, Gruppen und Dateirechte, Prinzip der geringsten Rechte, SELinux und AppArmor