sammlung:sudo

Dies ist eine alte Version des Dokuments!


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

Quellen

sammlung/sudo.1767698487.txt.gz · Zuletzt geändert: von Branislav Zeljak