Sudo Grundlagen

Aus Xinux Wiki
Version vom 14. Juli 2026, 09:08 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „;Was macht sudo Führt einen Befehl mit den Rechten eines anderen Benutzers aus (Standard: root), basierend auf Berechtigungen in <code>/etc/sudoers</code>. <…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
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