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 Root-Rechten arbeitet kann z.B. alle Dateien öffnen und lesen, Datei- und Verzeichnisrechte ändern, Systemdateien editieren, usw.
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 Root-Rechten. Um überhaupt mit Root-Rechten 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 Root-Rechten ausstattet - ist im Artikel Administrator beschrieben.
Des Weiteren muss man, um mit Root-Rechten 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 Ubuntu-Versionen.
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 Root-Rechten erfolgen muss. Änderungen an Systemdateien sollte man mit Bedacht vornehmen und vorher eine Sicherungskopie anlegen. Eine falsche Verwendung von Root-Rechten 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 Root-Rechten auszuführen. Dazu wird einer der beiden Befehle einfach dem aufzurufenden Programm bzw. Befehl vorangestellt. sudoedit
dient zum Editieren von Dateien mit Root-Rechten.
sudo¶
sudo
ist der "klassische" Linux-Weg, um mit Root-Rechten 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 das Home-Verzeichnis bei der Ausführung auf Root gesetzt und es wird verhindert, dass eventuell Konfigurationsdateien im Home-Verzeichnis des Benutzer ü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. Beispiele[1]:
sudo -H nano # öffnet den Editor nano im Terminal mit Root-Rechten sudo -H gparted # öffnet das Partitionierungsprogramm gparted mit Root-Rechten 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.
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 sogenannte Aktion-Datei 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 Aktion-Dateien sind im Wikiartikel PolicyKit zu finden.
sudoedit¶
Werden Root-Rechte zum Editieren einer Datei benötigt kann der Befehl sudoedit
genutzt werden. Beispiel:
sudoedit /etc/irgendwo/irgendwas.conf
Als Editor wird standardmässig Nano verwendet, so fern nichts anderes konfiguriert wurde. (siehe sudo (Abschnitt „Editieren-von-Dateien-unter-Sudo-Rechten-sudoedit“))
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 Root-Rechte benötigt werden, regulär wie "normale" Dateien in Kate öffnen und wird dann beim Speichern nach dem Passwort eines Benutzer mit Root-Rechten gefragt.
gksudo und kdesudo - grafische Programme starten¶
Bei Ubuntu und allen Derivaten kann bis einschließlich 17.10 zum Starten von Programmen mit grafischer Oberfläche alternativ der Befehl gksudo
bzw. bei Kubuntu der Befehl kdesudo
verwendet werden. Beispiel:
gksudo gparted # öffnet das Partitionierungsprogramm gparted mit Root-Rechten kdesudo gparted
gksudo
bzw. kdesudo
müssen nachträglich installiert werden, weitere Informationen sind in im Wikiartikel gksudo und kdesudo zu finden.
Seit Ubuntu 18.04 ist das Paket gksu
und kdesu
nicht mehr in den Paketquellen von Ubuntu, da die Pakete und die darin enthaltenen Programme nicht mehr gepflegt wurden.
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 Root-Rechten im Editor Gedit öffnen.
GVFS ist standardmäßig bei Ubuntu installiert, kann aber unter allen Ubuntu-Derivaten nachträglich installiert werden. Weitere Informationen sind im Wikiartikel zu gio zu finden.
in einer Root-Shell arbeiten¶
Wer für umfangreichere Arbeiten am System im Terminal viele Befehle mit Root-Rechten ausführen muss, kann direkt eine Root-Shell aufrufen. Dann braucht man nicht jedem Befehl pkexec
bzw. sudo
voranstellen.
Eine Root-Shell kann man wie folgt öffnen:
pkexec bash -l #oder sudo -i
Nach Beendigung der Arbeiten sollte man die Root-Shell unbedingt mit
exit
verlassen, um in eine normale, unprivilegierte Shell zurück zu kehren.
Root-Rechte für grafische Programme mit Wayland¶
Bei Ubuntu-Versionen mit Wayland als Anzeige-Server können grafische Programme grundsätzlich nicht mit Root-Rechten ausgeführt werden. Dies wird aus Sicherheitsgründen von Wayland unterbunden.
Die aktuellen LTS-Versionen von Ubuntu setzen standardmäßig alle nicht Wayland ein, sondern den X-Server. Für diesen gilt diese Restriktion nicht.
kein Benutzer mit Root-Rechten vorhanden¶
Sollte - aus welchen Gründen auch immer - kein Benutzer mehr im System vorhanden sein, der die nötigen Rechte hat, um mit Root-Rechten zu arbeiten, kann man auch diese Situation korrigieren. Das Vorgehen ist im Wikiartikel Administrator im Abschnitt "Notfall" beschrieben.