sudo — Befehle mit Root-Rechten ausführen
Praxis-Guide zu sudo: Befehle als root oder anderer Nutzer ausführen, Shells öffnen, Timestamp steuern und sudoers sicher per visudo konfigurieren.
sudo („superuser do") führt einzelne Befehle mit erhöhten Rechten aus – meist als root – ohne dass du dich dauerhaft als root anmeldest. Wer was darf, regelt die Datei /etc/sudoers, und jeder Aufruf landet im Log: Das macht sudo nachvollziehbar und damit deutlich sicherer als ein offenes root-Login per su. Dieser Guide zeigt dir die wichtigsten Aufrufe vom Alltagsbefehl bis zur Rechtevergabe. Eine Warnung vorweg: Regeln wie NOPASSWD: ALL machen ein Konto faktisch zu passwortlosem root – vergib Rechte sparsam und bearbeite sudoers ausschließlich mit visudo.
Grundlegende Verwendung
sudo <command> — Führt einen Befehl als root aus. Fragt nach dem Passwort des aktuellen Nutzers.
sudo apt updatesudo -u <user> <command> — Führt einen Befehl als bestimmter Nutzer statt als root aus.
sudo -u www-data php artisan migratesudo -g <group> <command> — Führt einen Befehl mit einer bestimmten primären Gruppe aus.
sudo -g docker docker pssudo !! — Führt den vorherigen Befehl erneut mit sudo aus (Bash-History-Expansion).
sudo !!Shell & Umgebung
sudo -i — Startet eine Login-Shell als root. Lädt root's Umgebung (.profile, .bashrc usw.).
sudo -isudo -s — Startet eine Shell als root mit der Shell des aktuellen Nutzers. Lädt root's Umgebung nicht.
sudo -ssudo su - — Wechselt mit voller Login-Shell zu root. Äquivalent zu „sudo -i".
sudo su -sudo -E <command> — Behält die Umgebungsvariablen des aktuellen Nutzers beim Ausführen des Befehls bei.
sudo -E env | grep PATHsudo env VAR=value <command> — Übergibt bestimmte Umgebungsvariablen an den als root ausgeführten Befehl.
sudo env RAILS_ENV=production rails sSitzungsverwaltung
sudo -v — Validiert (erneuert) den sudo-Timestamp, ohne einen Befehl auszuführen. Verlängert die Sitzung.
sudo -vsudo -k — Macht den sudo-Timestamp sofort ungültig. Das nächste sudo verlangt wieder ein Passwort.
sudo -ksudo -K — Entfernt den sudo-Timestamp vollständig (stärker als -k).
sudo -KRechte auflisten & prüfen
sudo -l — Listet die Befehle auf, die der aktuelle Nutzer per sudo ausführen darf.
sudo -lsudo -l -U <user> — Listet die sudo-Rechte eines bestimmten Nutzers auf (erfordert root).
sudo -l -U deploysudo -n <command> — Nicht-interaktiver Modus. Führt den Befehl ohne Passwortabfrage aus. Schlägt fehl, wenn ein Passwort nötig ist.
sudo -n systemctl reload nginxsudoers-Konfiguration
visudo — Bearbeitet /etc/sudoers sicher mit Syntaxprüfung. Immer visudo nutzen, niemals direkt editieren.
sudo visudovisudo -f /etc/sudoers.d/<file> — Bearbeitet eine bestimmte Drop-in-sudoers-Datei. Bevorzugter Weg, um eigene Regeln hinzuzufügen.
sudo visudo -f /etc/sudoers.d/deploy<user> ALL=(ALL:ALL) ALL — Gewährt einem Nutzer vollen sudo-Zugriff. Per visudo in sudoers einfügen.
jpk ALL=(ALL:ALL) ALL<user> ALL=(ALL) NOPASSWD: ALL — Gewährt vollen sudo-Zugriff ohne Passwortabfrage. Mit Vorsicht einsetzen.
deploy ALL=(ALL) NOPASSWD: ALL<user> ALL=(ALL) NOPASSWD: /bin/systemctl reload nginx — Erlaubt einen einzelnen Befehl ohne Passwort. Prinzip der minimalen Rechte.
deploy ALL=(ALL) NOPASSWD: /bin/systemctl reload nginx%<group> ALL=(ALL:ALL) ALL — Gewährt allen Mitgliedern einer Gruppe vollen sudo-Zugriff. Das %-Präfix kennzeichnet eine Gruppe.
%sudo ALL=(ALL:ALL) ALLOptionen & Schalter
sudo -H <command> — Setzt HOME auf das Home-Verzeichnis des Zielnutzers (standardmäßig root).
sudo -H pip install packagesudo -p '<prompt>' <command> — Verwendet eine eigene Passwort-Eingabeaufforderung.
sudo -p 'Enter your password: ' apt upgradesudo -- <command> — Beendet die Verarbeitung von sudo-Optionen. Nützlich, wenn der Befehl mit einem Bindestrich beginnt.
sudo -- -mycommandsudo -b <command> — Führt den Befehl im Hintergrund aus.
sudo -b rsync -av /src/ /dst/ Fazit
sudo ist das Standardwerkzeug, um gezielt einzelne Aktionen mit Root-Rechten auszuführen, statt dauerhaft als root zu arbeiten – für den Alltag reichen meist sudo <befehl>, eine bei Bedarf geöffnete Root-Shell (sudo -i/-s) und der Blick auf die eigenen Rechte mit sudo -l. Drei Dinge solltest du verinnerlichen: Bearbeite sudoers immer mit visudo (oder visudo -f für Drop-ins unter /etc/sudoers.d/) – ein Syntaxfehler in /etc/sudoers kann sudo unbrauchbar machen und dich aus deinem eigenen System aussperren. Vergib Rechte nach dem Prinzip der minimalen Rechte: ein konkreter Befehlspfad statt ALL, denn NOPASSWD: ALL verwandelt ein Konto in passwortloses root und untergräbt den Schutz komplett. Und nutze den Vorteil gegenüber su: Jeder sudo-Aufruf ist auditierbar und landet im Log.
Weiterführende Links
- ubuntuusers-Wiki: sudo – ausführliche deutschsprachige Einführung in sudo und die sudoers-Konfiguration
- Debian-Wiki: sudo – Hinweise zur Einrichtung und Nutzung von sudo unter Debian