Der Befehl sudo führt Programme mit den Rechten eines anderen Benutzers aus – standardmäßig als Root. Statt dich als Root anzumelden, gewährst du mit sudo gezielt administrative Rechte für einzelne Befehle. Das ist sicherer, weil kein Root-Passwort weitergegeben werden muss.

Syntax

sudo [OPTIONEN] BEFEHL
  • OPTIONEN – Steuern das Verhalten von sudo.
  • BEFEHL – Der Befehl, der mit erhöhten Rechten ausgeführt wird.

sudo installieren

Auf den meisten Distributionen ist sudo bereits installiert. Prüfe das mit:

sudo --version

Falls die Meldung sudo: command not found erscheint, installiere das Paket über deinen Paketmanager.

Ubuntu und Debian:

apt install sudo

CentOS und Fedora:

yum install sudo

Benutzer zur sudo-Gruppe hinzufügen

Mitglieder der sudo-Gruppe können jeden Befehl als Root ausführen. Der Gruppenname unterscheidet sich je nach Distribution.

Debian, Ubuntu und Derivate – Gruppe sudo:

usermod -aG sudo benutzername

CentOS, Fedora und RedHat – Gruppe wheel:

usermod -aG wheel benutzername

Bei Ubuntu ist das Root-Konto standardmäßig deaktiviert. Der bei der Installation angelegte Benutzer gehört automatisch zur sudo-Gruppe.

sudo verwenden

Stelle sudo vor den Befehl, den du mit Root-Rechten ausführen willst:

sudo ls /root

Beim ersten Aufruf in einer Sitzung fragt sudo nach deinem Benutzerpasswort – nicht nach dem Root-Passwort. Nach erfolgreicher Eingabe wird der Befehl ausgeführt:

[sudo] Passwort für kommandozeile:
.bashrc  .cache  .config  .local  .profile

Passwort-Timeout anpassen

Nach fünf Minuten Inaktivität fordert sudo das Passwort erneut an. Diesen Timeout änderst du in der sudoers-Datei.

Öffne die Datei mit visudo – dieser Befehl prüft die Syntax vor dem Speichern:

sudo visudo

Füge diese Zeile hinzu, um den Timeout auf 10 Minuten zu setzen:

Defaults timestamp_timeout=10

Für einen bestimmten Benutzer:

Defaults:benutzername timestamp_timeout=10

Befehle als anderer Benutzer ausführen

Mit der Option -u führst du einen Befehl als beliebiger Benutzer aus – nicht nur als Root:

sudo -u richard whoami

Die Ausgabe zeigt den Benutzer, unter dem der Befehl läuft:

richard

Einzelne Befehle für Benutzer freigeben

Statt einen Benutzer zur sudo-Gruppe hinzuzufügen, kannst du gezielt einzelne Befehle erlauben. Öffne die sudoers-Datei:

sudo visudo

Füge eine Zeile mit dem Benutzernamen und dem erlaubten Befehl hinzu:

kommandozeile ALL=/bin/mkdir

Der Benutzer kommandozeile darf jetzt nur mkdir mit sudo ausführen.

Um einem Benutzer alle Befehle ohne Passwortabfrage zu erlauben:

kommandozeile ALL=(ALL) NOPASSWD: ALL

Hinweis: Verwende NOPASSWD nur, wenn du die Sicherheitsauswirkungen verstehst.

Ausgaben in geschützte Dateien umleiten

Die Umleitung mit > funktioniert nicht direkt mit sudo:

sudo echo "test" > /root/datei.txt
bash: /root/datei.txt: Keine Berechtigung

Die Umleitung wird von der Shell ausgeführt – noch bevor sudo greift. Es gibt zwei Lösungen:

Lösung 1: Eine neue Shell mit Root-Rechten starten:

sudo sh -c 'echo "test" > /root/datei.txt'

Lösung 2: Mit tee schreiben:

echo "test" | sudo tee /root/datei.txt

Bei tee wird die Ausgabe auch auf dem Terminal angezeigt. Mit tee -a hängst du Text an eine bestehende Datei an.

Zusammenfassung

AufgabeBefehl
Befehl als Root ausführensudo befehl
Befehl als anderer Benutzersudo -u benutzer befehl
Benutzer zur sudo-Gruppe hinzufügenusermod -aG sudo benutzer
sudoers-Datei bearbeitensudo visudo
Passwort-Timeout ändernDefaults timestamp_timeout=10

Mit sudo führst du administrative Aufgaben sicher aus, ohne dauerhaft als Root angemeldet zu sein. Die sudoers-Datei gibt dir feine Kontrolle darüber, welche Benutzer welche Befehle ausführen dürfen.

Verwandte Artikel