Sudo Grundlagen
- Was macht sudo
Führt einen Befehl mit den Rechten eines anderen Benutzers aus (Standard: root), basierend auf Berechtigungen in /etc/sudoers.
sudo systemctl restart httpd
- Als anderer Benutzer ausführen
sudo -u benutzername befehl
- Root-Shell öffnen
sudo -i
(lädt die Root-Umgebung, im Gegensatz zu sudo -s, das die aktuelle Shell-Umgebung behält)
- sudoers-Datei sicher bearbeiten
visudo
Niemals direkt mit einem Editor öffnen — visudo prüft die Syntax vor dem Speichern und verhindert, dass man sich aussperrt.
- Benutzer zur sudo-Gruppe hinzufügen (Admin-Rechte vergeben)
Damit ein Benutzer sudo nutzen darf, muss er Mitglied der entsprechenden Gruppe sein. Diese Gruppe ist standardmäßig bereits in /etc/sudoers mit vollen Rechten eingetragen.
usermod -aG wheel benutzername
wheel bei Rocky/RHEL-Systemen, sudo bei Debian/Ubuntu. Der Schalter -a (append) ist entscheidend — ohne ihn werden alle bisherigen Gruppen des Benutzers überschrieben.
- Warum das funktioniert
In /etc/sudoers steht üblicherweise eine Zeile wie:
%wheel ALL=(ALL) ALL
Das % kennzeichnet eine Gruppe. Diese Zeile erlaubt allen Mitgliedern der Gruppe wheel, mit sudo jeden Befehl (ALL) als jeden Benutzer ((ALL)) auf jedem Host auszuführen. Wer der Gruppe beitritt, wird dadurch effektiv zum Admin — ganz ohne eigenen Eintrag in der sudoers-Datei.
- Gruppenmitgliedschaft prüfen
groups benutzername
oder
id benutzername
- Admin-Rechte wieder entziehen
gpasswd -d benutzername wheel
- Eigene Rechte prüfen
sudo -l
- Passwortfreies sudo für bestimmte Befehle
In /etc/sudoers.d/ eine eigene Datei anlegen:
benutzername ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd
Best Practice: nie global NOPASSWD setzen, sondern auf einzelne Befehle beschränken.
- Letzte sudo-Aktionen nachvollziehen
journalctl _COMM=sudo
oder distributionsabhängig:
grep sudo /var/log/auth.log