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
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
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
- Prüfen Sie den aktuellen Benutzer mit
whoami. - Prüfen Sie UID und Gruppen mit
id. - Untersuchen Sie Besitzer und Modus einer Datei mit
ls -l. - Prüfen Sie, ob der Pfad, die Gruppe oder das Mounten des Dateisystems die Ursache ist.
- Verwenden Sie sudo nur, wenn die Aufgabe tatsächlich administrative Rechte benötigt.
- 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.