===== 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}} ----