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:

  1. Ein Terminal öffnen

Inhaltsverzeichnis
  1. sudo, pkexec und sudoedit
    1. sudo
    2. pkexec
    3. sudoedit
  2. Hinweise für Kubuntu
  3. gksudo und kdesudo - grafische Programme s...
  4. Dateien mit dem GVFS admin:// Protokoll öf...
  5. in einer Root-Shell arbeiten
  6. Root-Rechte für grafische Programme mit Wa...
  7. kein Benutzer mit Root-Rechten vorhanden

"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 GVFS 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.