mit Root-Rechten arbeiten
Achtung!
Dieser Artikel wird aktuell in Baustelle/mit Root-Rechten arbeiten überarbeitet. Daher kann es sein, dass diese Seite hier veraltete oder nicht (mehr) zutreffende Informationen enthält. Vergleiche beide Versionen und wende dich im Zweifelsfall mit deinem konkreten Anliegen an das Support-Forum. Änderungen am Artikel bitte nur in Baustelle/mit Root-Rechten arbeiten!
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
"Mit Root-Rechten arbeiten" bedeutet, dass man mit vollen administrativen Rechten auf dem System arbeitet. Wer mit Rootrechten arbeitet kann z.B. alle Dateien öffnen und lesen, Datei- und Verzeichnisrechte ändern, Systemdateien editieren, usw. Eine allgemeine Erklärung zu "root" ist im Wikiartikel root zu finden.
Ein typischer Anwendungsfall zum Arbeiten mit Root-Rechten ist z.B. das systemweite Installieren von Paketen aus den Paketquellen. Ein weiterer typischer Anwendungsfall ist das Editieren von Systemdateien, z.B. zur Änderung der Konfiguration einer Systemkomponente oder eines Systemdienstes.
Standardmäßig arbeitet kein Benutzer unter Ubuntu und dessen Derivaten mit Rootrechten. Um überhaupt mit Rootrechten arbeiten zu können, muss man als Benutzer Mitglied der Gruppe sudo
sein. Das ist standardmäßig der erste angelegte Nutzer des Systems. Wie man weitere Nutzer zum Mitglied der Gruppe sudo
macht - und damit mit Rootrechten ausstattet - ist im Artikel Administrator beschrieben.
Des Weiteren muss man, um mit Rootrechten zu arbeiten, den Programmaufruf etwas anders durchführen. Dazu gibt es fünf verschiedene, mögliche Wege. Zwei Wege, nämlich der Einsatz von sudo und pkexec funktionieren universell unter allen unterstützen Ubuntuversionen.
Achtung!
Erweiterte Rechte mittels der hier beschriebenen Verfahren sollten nur verwendet werden, wenn eine Aufgabe dies wirklich erfordert, die Programmausführung also zum Beispiel mit Rootrechten erfolgen muss. Änderungen an Systemdateien sollte man mit Bedacht vornehmen und vorher eine Sicherungskopie anlegen. Eine falsche Verwendung von Rootrechten kann das System im schlechtesten Fall unbrauchbar machen.
sudo, pkexec und sudoedit¶
Der Einsatz von sudo
und pkexec
ermöglicht es, Programme und Befehle mit Rootrechten auszuführen. Dazu wird einer der beiden Befehle einfach dem aufzurufenden Programm bzw. Befehl vorangestellt. sudoedit
dient zum Editieren von Dateien mit Rootrechten.
sudo¶
sudo
ist der "klassische" Linux-Weg, um mit Rootrechten zu arbeiten. Der Befehl sudo
wird einfach vorangestellt. Beim Ausführen von Programmen sollte sicherheitshalber sudo
immer mit der Option -H
aufgerufen werden. Damit wird die Umgebungsvariable HOME
(nicht aber PWD
und nicht das Arbeitsverzeichnis selbst) bei der Ausführung auf /root gesetzt und es wird erschwert, dass eventuell Konfigurationsdateien im Homeverzeichnis des Benutzers überschrieben werden. Zur Ausführung von Befehlen ist dies nicht nötig. Mit sudo
können sowohl Programme im Terminal als auch Programme mit grafischer Oberfläche ausgeführt werden.
Achtung!
Nach dem Aufruf eines Programms mit grafischer Oberfläche mit sudo
oder auch sudo -H
kann der Desktop unbenutzbar werden, weil von sudo
Dateirechte im Home-Verzeichnis des Benutzers verändert werden.
Der Verwendung von sudo mit Programmen mit grafischer Oberfläche wird dringend widerraten!
Beispiele[1]:
sudo nano # öffnet den Editor nano im Terminal mit Rootrechten sudo cp /var/log/foo.log /var/log/foo.old # kopiert eine Datei im Verzeichnis /var/log sudo apt update # aktualisiert die Liste der Pakte in den Paketquellen
Weitere Informationen zu sudo
, inklusive einer weiterführenden Informationen, warum die Option -H
sinnvoll ist, den sonstigen Möglichkeiten und der Konfiguration des Befehl sind im Wikiartikel sudo zu finden.
sudoedit¶
Werden Rootrechte zum Editieren einer Datei benötigt kann der Befehl sudoedit
genutzt werden. Beispiel:
sudoedit /etc/irgendwo/irgendwas.conf
Als Editor wird standardmäßig Nano verwendet. Im Artikel sudo (Abschnitt „Editieren-von-Dateien-unter-Sudo-Rechten-sudoedit“) wird erklärt, wie man einen anderen Editor konfiguriert; dabei kann man auch einen GUI-Editor gefahrlos einsetzen.
Eine Alternative zu sudoedit ist die Verwendung des admin://-Protokolls.
pkexec¶
pkexec
ist die "modernere" Variante zum Ausführen von Programmen und Befehlen mit Root-Rechten. pkexec ist Teil von PolicyKit, welches eine feinere Verteilung der Rechte erlaubt. Der Befehl pkexec
wird einfach vorangestellt:
pkexec nano # öffnet den Editor nano im Terminal mit Root-Rechten pkexec cp /var/log/foo.log /var/log/foo.old # kopiert eine Datei im Verzeichnis /var/log pkexec apt update # aktualisiert die Liste der Pakte in den Paketquellen
Um mittels pkexec
Programme mit grafischer Oberfläche auszuführen, muss man entweder eine Aktionsdatei für PolicyKit erstellen oder den folgenden Aufruf verwenden:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY PROGRAMMNAME
wobei PROGRAMMNAME
durch den entsprechenden Namens des Programms / Befehls ersetzt werden muss.
Weiterführende Informationen zu pkexec, zu PolicyKit, zum Erstellen sowie Anzeigen von Aktionsdateien sind im Wikiartikel PolicyKit zu finden.
Dateien mit dem GVFS admin:// Protokoll öffnen¶
Ubuntu bzw. Derivate, die das Gnome Virtual File System 🇬🇧 (kurz: GVFS) verwenden, können seit 17.04 admin:// zum Öffnen bzw. Editieren von Dateien nutzen. So würde der Aufruf
gedit admin:///etc/irgendwo/irgendwas.conf
die Datei /etc/irgendwo/irgendwas.conf mit Rootrechten im Editor Gedit öffnen.
GVFS ist standardmäßig bei Ubuntu installiert, kann aber unter allen Ubuntuderivaten nachträglich installiert werden. Weitere Informationen sind im Wikiartikel zu gio zu finden.
Hinweise für Kubuntu¶
Neuere Versionen von Kubuntu ab 18.04 sind restriktiver als Ubuntu und andere Derivate. So ist das Ausführen des Dateimanagers Dolphin oder der Editoren Kate und KWrite weder mit sudo
noch mit pkexec
möglich. Man erhält eine Fehlermeldung wie "Executing Kate as root is not possible.".
Allerdings kann man Dateien, für die zum Editieren Rootrechte benötigt werden, regulär wie "normale" Dateien in Kate öffnen und wird dann beim Speichern nach dem Passwort eines Benutzer mit Rootrechten gefragt.
Hinweis für Lubuntu¶
Unter Lubuntu kann man auch lxqt-sudo
(oder abgekürzt lxsudo
) verwenden, um administrative Rechte für grafische Anwendungen zu erlangen.
in einer Root-Shell arbeiten¶
Wer für umfangreichere Arbeiten am System im Terminal viele Befehle mit Rootrechten ausführen muss, kann direkt eine Rootshell aufrufen. Dann braucht man nicht jedem Befehl pkexec
bzw. sudo
voranstellen.
Eine Rootshell kann man wie folgt öffnen:
pkexec bash -l #oder sudo -i
Nach Beendigung der Arbeiten sollte man die Rootshell unbedingt mit
exit
verlassen, um in eine normale, unprivilegierte Shell zurück zu kehren.
Root-Rechte für grafische Programme mit Wayland¶
Bei Verwendung von Wayland als Anzeige-Server können grafische Programme grundsätzlich nicht mit Rootrechten ausgeführt werden, weil dies von Wayland aus Sicherheitsgründen unterbunden wird. Dies betrifft jedoch nur Programme, die nativ unter Wayland laufen; für andere wird in einer Wayland-Session der X-Server XWayland gestartet, bei dem alle Probleme wie unter anderen X-Servern auftreten können. Es wird daher empfohlen, auch unter Wayland wie unter X11 keine GUI-Programme mit sudo zu starten.
Bei den aktuellen LTS-Versionen von Ubuntu kommt Wayland standardmäßig ab Ubuntu 22.04 LTS zum Einsatz. Die LTS-Versionen davor nutzen standardmäßig den X-Server.
kein Benutzer mit Rootrechten vorhanden¶
Sollte - aus welchen Gründen auch immer - kein Benutzer mehr im System vorhanden sein, der die nötigen Rechte hat, um mit Rootrechten zu arbeiten, kann man auch diese Situation korrigieren. Das Vorgehen ist im Wikiartikel Administrator im Abschnitt "Notfall" beschrieben.