===== sudo - Befehle mit Administratorrechten ausführen =====
**Kurzfassung:** Mit ''sudo'' können normale Benutzer Befehle mit Administratorrechten (root) ausführen, ohne das Root-Passwort zu kennen. Es ermöglicht granulare Rechtevergabe und protokolliert alle privilegierten Aktionen. Zentral für sicheres Multiuser-Management auf Linux-Systemen.
==== Übersicht ====
''sudo'' (superuser do) ist das Standard-Tool für die Ausführung von Befehlen mit erhöhten Rechten. Es ersetzt in modernen Distributionen den direkten Root-Login und bietet bessere Sicherheit durch Audit-Trail und zeitlich begrenzte Privilegien.
==== Voraussetzungen ====
* Benutzer muss Mitglied der sudo-Gruppe sein
* Korrekte Konfiguration in ''/etc/sudoers''
* Kenntnis des eigenen Benutzerpassworts (nicht Root-Passwort)
==== Anleitung ====
=== Schritt 1: Grundlegende Verwendung ===
# Einzelnen Befehl als root ausführen
sudo befehl
# Beispiele
sudo apt update
sudo systemctl restart nginx
sudo nano /etc/hosts
# Letzten Befehl mit sudo wiederholen
sudo !!
=== Schritt 2: Root-Shell und Benutzer ===
# Interactive Root-Shell (empfohlen)
sudo -i
# Root-Shell mit aktuellem Verzeichnis
sudo -s
# Traditionelle Methode (nicht empfohlen)
sudo su
# Als anderer Benutzer ausführen
sudo -u benutzername befehl
sudo -u www-data ls -la /var/www
=== Schritt 3: Berechtigungen prüfen ===
# Erlaubte Befehle für aktuellen Benutzer anzeigen
sudo -l
# Detaillierte Übersicht
sudo -ll
# Für anderen Benutzer
sudo -U username -l
=== Schritt 4: Konfiguration bearbeiten ===
# Sudoers-Datei sicher bearbeiten (empfohlen)
sudo visudo
# Editor für visudo ändern
sudo update-alternatives --config editor
# Spezifische Datei in sudoers.d bearbeiten
sudo visudo -f /etc/sudoers.d/custom
=== Schritt 5: Zeitsteuerung ===
# Cached credentials invalidieren (Passwort wird erneut abgefragt)
sudo -k
# Credentials auffrischen ohne Befehl
sudo -v
# Background-Prozess mit sudo starten
sudo bash -c 'befehl &'
==== Konfiguration /etc/sudoers ====
=== Benutzer und Gruppen berechtigen ===
# Benutzer alice darf alles
alice ALL=(ALL:ALL) ALL
# Gruppe sudo darf alles
%sudo ALL=(ALL:ALL) ALL
# Ohne Passwortabfrage
bob ALL=(ALL) NOPASSWD: ALL
# Nur bestimmte Befehle
charlie ALL=(ALL) /usr/bin/systemctl, /usr/bin/apt
# Spezifische Befehle ohne Passwort
dave ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
=== Sicherheitsoptionen ===
# Timeout für cached credentials (Standard: 15 Minuten)
Defaults timestamp_timeout=5
# Umgebungsvariablen bewahren
Defaults env_keep += "http_proxy https_proxy"
# Passwort-Feedback (Sternchen)
Defaults pwfeedback
# Lecture bei erstem sudo
Defaults lecture=always
==== Konfigurationsdateien ====
/etc/sudoers # Hauptkonfiguration
/etc/sudoers.d/ # Drop-in Konfigurationen
/var/log/auth.log # Sudo-Logs (Debian/Ubuntu)
/var/log/secure # Sudo-Logs (RHEL/CentOS)
==== Benutzer zur sudo-Gruppe hinzufügen ====
# Benutzer zur sudo-Gruppe hinzufügen
sudo usermod -aG sudo username
# RHEL/CentOS: wheel-Gruppe
sudo usermod -aG wheel username
# Prüfen
groups username
# Effektiv nach Re-Login
==== Hinweise ====
* **Sicherheit:** Niemals ''/etc/sudoers'' direkt editieren - immer ''visudo'' verwenden
* **Cache:** sudo cached Credentials für 15 Minuten (Standard)
* **Logs:** Alle sudo-Aktionen werden geloggt in ''/var/log/auth.log''
* **NOPASSWD:** Mit Vorsicht verwenden - Sicherheitsrisiko
* **Gruppe:** Auf Debian/Ubuntu ''sudo''-Gruppe, auf RHEL/CentOS ''wheel''-Gruppe
* **Root-Login:** Best Practice ist Root-Login zu deaktivieren, nur sudo nutzen
==== Siehe auch ====
* [[sammlung:benutzerverwaltung|Benutzerverwaltung]]
* [[sammlung:passwd|passwd - Passwörter ändern]]
* [[sammlung:usermod|usermod - Benutzer modifizieren]]
* [[sammlung:sicherheit|Sicherheitskonzepte]]
* [[sammlung:sshd_config|SSH Konfiguration]]
==== Quellen ====
* [[https://man7.org/linux/man-pages/man8/sudo.8.html|sudo Man Page]]
* [[https://www.sudo.ws/docs/man/sudoers.man/|sudoers Man Page]]
* [[https://wiki.ubuntuusers.de/sudo/|Ubuntu Wiki - sudo]]
----
{{tag>cli permissions security}}
----