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/dateischeitert; richtig istecho x | sudo tee /etc/datei. - Alle sudo-Aufrufe landen im Protokoll (
journalctl _COMM=sudooder/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