VMware ESXi and vSphere Cluster Management

Root-Benutzer unter Linux: Rechte, Risiken und sichere Administration

Was ist der Linux-Root-Benutzer? Erfahren Sie, welche Rechte root besitzt und wie sudo und su sicher eingesetzt werden.

Der Benutzer root ist das privilegierte lokale Benutzerkonto unter Linux. Er wird auch als Superuser bezeichnet und kann zahlreiche systemweite Aufgaben durchführen, die einem normalen Benutzer verwehrt bleiben.

Diese weitreichenden Rechte sind für Administration und Fehlerbehebung notwendig, erhöhen aber auch das Risiko schwerwiegender Fehler. Die sichere Grundregel lautet daher: Arbeiten Sie im Alltag mit einem normalen Benutzerkonto und erhöhen Sie Rechte nur für die konkrete Aufgabe.

Was ist der Root-Benutzer?

Linux identifiziert Benutzer nicht nur über ihren Namen, sondern auch über eine numerische Benutzerkennung. Das Root-Konto besitzt immer die UID 0. Für die Rechteprüfung ist diese UID entscheidend; ein anderes Konto mit UID 0 hätte technisch ebenfalls Root-Privilegien.

  • root: Name des privilegierten Kontos.
  • Superuser: allgemeine Bezeichnung für ein Konto mit besonders weitreichenden Rechten.
  • Administrator: eine funktionale Bezeichnung für Personen oder Konten, die ein System verwalten. Unter Linux ist damit häufig root oder ein Benutzer mit passenden sudo-Rechten gemeint.

Ein normaler Benutzer besitzt üblicherweise nur Rechte für die eigenen Dateien und für ausgewählte unprivilegierte Prozesse. Root kann dagegen systemweit Dateien, Prozesse, Dienste, Netzwerkeinstellungen und Benutzerkonten verwalten.

Welche Befugnisse hat root?

Root kann die normalen Dateiberechtigungen für Besitzer, Gruppe und andere Benutzer in vielen Fällen umgehen. Dazu gehören das Lesen, Ändern und Löschen nahezu aller Dateien. Das bedeutet nicht, dass jede Aktion unter allen Umständen möglich ist.

  • Software installieren, aktualisieren und entfernen.
  • Benutzer und Gruppen anlegen, ändern oder löschen.
  • Passwörter und Dateibesitz verwalten.
  • Dateirechte und Eigentümer von Dateien und Verzeichnissen ändern.
  • Systemdienste starten, stoppen und konfigurieren.
  • Netzwerkschnittstellen und Routing konfigurieren.
  • Speicher, Mounts und systemweite Konfigurationsdateien verwalten.
  • Systemprozesse untersuchen und in vielen Fällen beenden.

Root ist dennoch keine magische Umgehung jeder Sicherheitsgrenze. Hardware kann den Zugriff begrenzen, der Kernel kann bestimmte Aktionen schützen, und obligatorische Zugriffskontrollen wie SELinux oder AppArmor können zusätzliche Regeln durchsetzen. Auch entfernte Systeme bleiben durch deren eigene Authentifizierung und Berechtigungen geschützt.

Warum root nicht für die tägliche Arbeit geeignet ist

Eine Root-Shell entfernt wichtige Schutzbarrieren. Ein Tippfehler beim Löschen, Kopieren oder Ändern einer Konfigurationsdatei kann dann das gesamte System betreffen.

  • Eine falsche Pfadangabe kann systemweite Dateien verändern oder löschen.
  • Ein fehlerhafter Befehl kann wichtige Prozesse beenden oder Dateibesitz verändern.
  • Unbekannte Programme können mit Root-Rechten Daten auslesen, verändern oder Schadsoftware dauerhaft installieren.
  • Beim Surfen oder Öffnen unbekannter Dateien wirken Sicherheitsfehler besonders schwerwiegend, wenn der Prozess als root läuft.
  • Eine gemeinsame Root-Anmeldung erschwert die Zuordnung einzelner Änderungen zu einer Person.

Das Sicherheitsprinzip least privilege, auf Deutsch „geringstmögliche Rechte“, verlangt, dass ein Konto nur die Berechtigungen erhält, die für eine Aufgabe erforderlich sind. Ein normales Benutzerkonto ist deshalb die bessere Umgebung für Textbearbeitung, Entwicklung, Webbrowser und alltägliche Shell-Arbeiten.

Gezielte Rechteerhöhung mit sudo

sudo steht für „superuser do“. Das Werkzeug führt einen einzelnen Befehl mit den Rechten eines anderen Benutzers aus, meist mit denen von root. Welche Benutzer dies dürfen und welche Befehle erlaubt sind, wird durch sudoers-Regeln und häufig durch eine Administratorgruppe gesteuert.

sudo befehl

Üblicherweise authentifiziert sich der angemeldete Benutzer mit seinem eigenen Passwort. Je nach Konfiguration kann sudo die erfolgreiche Authentifizierung für eine gewisse Zeit zwischenspeichern oder besondere Regeln ohne Passwort erlauben.

Beispiele für sudo

sudo apt update
sudo apt install paketname
sudo ip link set enp0s3 down

Das letzte Beispiel benötigt den tatsächlichen Namen der Netzwerkschnittstelle. Dieser kann etwa enp0s3, ens33 oder wlan0 lauten. Mit ip link lassen sich vorhandene Schnittstellen anzeigen.

Prüfen Sie vor der Ausführung den vollständigen Befehl. Erhöhen Sie nur den notwendigen Einzelbefehl und verlassen Sie eine privilegierte Shell sofort nach Abschluss der zusammenhängenden Administrationsaufgabe.

sudo -i und sudo -s

sudo -i
sudo -s
exit

sudo -i öffnet eine Root-Login-Shell. Dabei wird eine Login-Umgebung eingerichtet, einschließlich einer passenden Umgebung und eines passenden Arbeitsverzeichnisses für root.

sudo -s startet ebenfalls eine Shell mit sudo-Rechten, übernimmt aber stärker die bestehende Umgebung des Benutzers und lädt nicht zwingend die vollständige Root-Login-Umgebung. Die genaue Wirkung hängt von Shell- und sudo-Konfiguration ab.

Beide Varianten erzeugen eine länger bestehende Root-Sitzung und sind daher riskanter als sudo einzelner-befehl. Beenden Sie sie mit exit.

Wechsel des Kontos mit su

su bedeutet „switch user“. Das Werkzeug wechselt in ein anderes Benutzerkonto. Ohne Angabe eines Zielkontos ist das Ziel typischerweise root.

su -

Der Bindestrich fordert eine Login-Umgebung an. Dadurch werden unter anderem das Arbeitsverzeichnis und Umgebungsvariablen des Zielkontos eingerichtet. Bei Erfolg erhalten Sie eine Root-Login-Shell.

Bei su wird normalerweise das Passwort des Zielkontos verlangt, also bei su - das Root-Passwort. Das unterscheidet sich von der üblichen sudo-Nutzung, bei der das Passwort des aktuell angemeldeten Benutzers verwendet wird.

Eine su-Sitzung kann mit folgendem Befehl beendet werden:

exit

Normaler Benutzer, sudo und su im Vergleich

Methode: Normaler Benutzer
Typischer Einsatz: tägliche Arbeit ohne administrative Änderungen
Authentifizierung: Anmeldung am eigenen Konto
Umfang der Rechte: eigene Dateien und nichtprivilegierte Aufgaben
Sicherheitsaspekt: beste Ausgangslage für least privilege und individuelle Nachvollziehbarkeit

Methode: sudo einzelner-befehl
Typischer Einsatz: genau eine administrative Aktion
Authentifizierung: meist Passwort des aktuellen Benutzers
Umfang der Rechte: nur der gestartete Befehl nach sudoers-Regeln
Sicherheitsaspekt: begrenzter Umfang und bessere Protokollierbarkeit als eine dauerhafte Root-Shell

Methode: sudo -i
Typischer Einsatz: mehrere zusammenhängende Administrationsbefehle
Authentifizierung: meist Passwort des aktuellen Benutzers
Umfang der Rechte: Root-Login-Shell für die Dauer der Sitzung
Sicherheitsaspekt: praktisch, aber wegen der längeren Root-Sitzung mit höherem Fehlerrisiko

Methode: su -
Typischer Einsatz: Wechsel in eine Root-Login-Umgebung, wenn das Zielkonto nutzbar ist
Authentifizierung: Passwort des Zielkontos
Umfang der Rechte: vollständige Sitzung des Zielkontos nach dessen Regeln
Sicherheitsaspekt: Root-Passwort muss verwaltet werden; längere Sitzungen sollten vermieden und beendet werden

Root-Passwort und Distributionen

Die Voreinstellungen unterscheiden sich zwischen Linux-Distributionen. Einige Systeme richten ein nutzbares Root-Passwort ein. Dort kann su - grundsätzlich funktionieren, sofern weitere Richtlinien dies erlauben.

Andere Distributionen sperren das Root-Konto standardmäßig oder vergeben kein verwendbares Root-Passwort. Ubuntu ist ein typisches Beispiel für ein System, das administrative Aufgaben standardmäßig über sudo delegiert.

Nehmen Sie daher nicht an, dass eine direkte Root-Anmeldung auf jedem System möglich oder sinnvoll ist. Prüfen Sie die Dokumentation und die Vorgaben der jeweiligen Distribution. Ein fehlgeschlagenes su - bedeutet nicht automatisch, dass die Administration unmöglich ist.

Typische Aufgaben und erforderliche Rechte

Aufgabe: Software installieren
Beispielwerkzeug: apt oder ein distributionsspezifischer Paketmanager
Erhöhte Rechte üblich?: Ja
Hinweis: Paketdatenbank und Systemverzeichnisse werden verändert.

Aufgabe: Systemdienst verwalten
Beispielwerkzeug: systemctl
Erhöhte Rechte üblich?: Ja
Hinweis: Start, Stopp und Konfiguration können das gesamte System beeinflussen.

Aufgabe: Benutzer anlegen
Beispielwerkzeug: Benutzerverwaltungswerkzeuge
Erhöhte Rechte üblich?: Ja
Hinweis: Konten, Gruppen und Zugangsdaten sind systemweite Ressourcen.

Aufgabe: Dateibesitz ändern
Beispielwerkzeug: chown
Erhöhte Rechte üblich?: Häufig ja
Hinweis: sudo chown -R benutzer:gruppe /pfad/zum/verzeichnis mit -R nur für die gesamte Struktur verwenden.

Aufgabe: Netzwerkschnittstelle konfigurieren
Beispielwerkzeug: ip
Erhöhte Rechte üblich?: Ja
Hinweis: Schnittstellenname und eventuell eine übergeordnete Netzwerkverwaltung beachten.

Aufgabe: Eigene Dateien bearbeiten
Beispielwerkzeug: Editor, cp, mv
Erhöhte Rechte üblich?: Nein
Hinweis: Wenn sudo erforderlich erscheint, zuerst Besitzer, Gruppe und Dateimodus prüfen.

Rechtefehler richtig einordnen

Die Meldung Permission denied bedeutet meist, dass eine Zugriffsprüfung den Vorgang abgelehnt hat. Operation not permitted weist häufig auf eine nicht erlaubte Operation hin, kann aber ebenfalls durch Sicherheitsrichtlinien, Dateiattribute oder Mount-Optionen entstehen.

Systematische Prüfung

  1. Prüfen Sie den aktuellen Benutzer mit whoami.
  2. Prüfen Sie UID und Gruppen mit id.
  3. Untersuchen Sie Besitzer und Modus einer Datei mit ls -l.
  4. Prüfen Sie, ob der Pfad, die Gruppe oder das Mounten des Dateisystems die Ursache ist.
  5. Verwenden Sie sudo nur, wenn die Aufgabe tatsächlich administrative Rechte benötigt.
  6. Wenn der Fehler bleibt, untersuchen Sie zusätzliche Sicherheitsrichtlinien und Systemprotokolle.
whoami
id
ls -l /pfad/zur/datei
ip link

Ein Befehl kann auch mit Root-Rechten scheitern. Beispiele sind ein schreibgeschütztes Dateisystem, eine Mount-Option, ein unveränderliches Dateiattribut, eine SELinux- oder AppArmor-Regel oder ein nicht vorhandenes Gerät. Eine pauschale Rechteerhöhung löst die eigentliche Ursache dann nicht.

Häufige Probleme mit sudo und su

sudo: command not found

Das Programm ist möglicherweise nicht installiert oder nicht im Suchpfad enthalten. Weichen Sie nicht blind auf su aus. Prüfen Sie die Dokumentation der Distribution und wenden Sie sich an ein bereits berechtigtes Administrationskonto. Dieses kann sudo nach den geltenden Richtlinien installieren oder konfigurieren.

Der Benutzer darf sudo nicht verwenden

Häufig fehlt die Mitgliedschaft in der vorgesehenen Administratorgruppe oder eine passende sudoers-Regel. Mit folgendem Befehl lassen sich die erlaubten Regeln prüfen, soweit eine Abfrage zulässig ist:

sudo -l

Kann der Benutzer sudo überhaupt nicht ausführen, muss ein berechtigter Administrator die Gruppen- oder sudoers-Konfiguration ändern.

Bearbeiten Sie die zentrale Konfiguration nicht direkt mit einem gewöhnlichen Editor. Verwenden Sie:

sudo visudo

visudo prüft die Syntax und hilft, eine unbrauchbare sudoers-Konfiguration durch einen Tippfehler zu vermeiden.

su schlägt trotz des eigenen Passworts fehl

su erwartet normalerweise das Passwort des Zielkontos, nicht das Passwort des aktuellen Benutzers. Außerdem kann das Root-Konto gesperrt sein oder kein nutzbares Passwort besitzen. Prüfen Sie, ob die Distribution stattdessen sudo vorsieht. Änderungen am Root-Passwort oder Kontostatus dürfen nur nach geltender Systemrichtlinie durch ein berechtigtes Administrationskonto erfolgen.

Der Netzwerkbefehl mit eth0 funktioniert nicht

Moderne Systeme verwenden häufig andere Namen als eth0. Zeigen Sie die Schnittstellen mit ip link an und verwenden Sie den tatsächlichen Namen. Außerdem kann ein Netzwerkmanager die manuelle Änderung später überschreiben. Berücksichtigen Sie dann die zuständige Netzwerkkonfiguration.

Sichere Root-Verwaltung

  • Führen Sie administrative Tätigkeiten nur bei konkretem Bedarf durch.
  • Erstellen Sie vor riskanten Änderungen eine überprüfte Sicherung.
  • Dokumentieren Sie Änderungen und wählen Sie möglichst reversible Schritte.
  • Lesen Sie Befehle vollständig, bevor Sie sie mit sudo oder als root ausführen.
  • Führen Sie keine unverständlichen Internetbefehle mit erweiterten Rechten aus.
  • Nutzen Sie, sofern vorhanden, Vorschau- oder Dry-Run-Optionen, bevor eine Änderung tatsächlich geschrieben wird.
  • Vermeiden Sie eine dauerhaft geöffnete Root-Shell und beenden Sie sie zeitnah mit exit.
  • Bewerten Sie direkte Root-Anmeldungen, insbesondere über SSH, ausschließlich nach den Sicherheitsvorgaben des Systems.
  • Verwenden Sie individuelle Benutzerkonten, damit administrative Aktionen besser zugeordnet und geprüft werden können.

Zusammenfassung

Root ist das Linux-Konto mit UID 0 und umfassenden lokalen Verwaltungsrechten. Diese Rechte ermöglichen unter anderem Softwareverwaltung, Benutzerverwaltung, Dienststeuerung sowie Änderungen an Netzwerk und Speicher. Gerade deshalb sollte root nicht für alltägliche Aufgaben verwendet werden.

Für einzelne administrative Befehle ist sudo meist der sicherere Weg: Regeln werden zentral gesteuert, Aktionen bleiben stärker begrenzt und können besser protokolliert werden. su - eignet sich nur, wenn das Zielkonto einschließlich Root-Passwort nutzbar ist und eine Root-Login-Umgebung ausdrücklich erforderlich ist. Bei jedem Rechtefehler gilt: Ursache prüfen, statt automatisch die höchste Berechtigung zu wählen.