AA_123rf-41379566_MaximMaksutov-123RF.jpg

© MaximMaksutov-123RF

Superuser-Rechte für normale Anwender

Starkes Duo

Mit Su und Sudo erhalten Sie in der Shell Root-Rechte – das Netz wimmelt von entsprechenden Beispielen. In der Praxis zeigt sich jedoch schnell, dass der Einsatz der Kommandos von der verwendeten Distribution abhängt.

Sie installieren ein System unter Linux neu. Der Installer fragt die gewünschten Systemeigenschaften ab und konfiguriert das System. Dazu legt er unter anderem ein Benutzerkonto an und fragt die zu installierende Software sowie einige grundlegende Systemeinstellungen ab. Viele Distributionen erfordern zudem das Anlegen eines Kontos für den administrativen User root.

Nach der Installation startet das System neu, ein nachgelagerter Prozess führt durch weitere Einstellungen. Anschließend steht der Rechner zur Alltagsarbeit bereit. Ab jetzt gelingen Konfigurationsänderungen sowie das Hinzufügen oder Löschen von Anwendungen nur noch mit Root-Rechten.

Prinzipiell gibt es zwei Wege, diese Rechte zu erhalten. Wir haben uns das am Beispiel der Distributionen Debian 9.2, Fedora 26 und Ubuntu LTS 16.04 einmal genauer angesehen. Die Tabelle "Konten nach der Installation" fasst die Unterschiede in Bezug auf das Anlegen von Benutzerkonten zusammen.

Konten nach der Installation

Distribution Benutzer Root Admin-Gruppe Besonderheiten
Debian 9.2 ja ja sudo sudo in Standardinstallation nicht vorhanden
Fedora 26 ja ja wheel Benutzer in Admin-Gruppe optional
Ubuntu LTS 16.04 ja nein sudo Benutzer in Admin-Gruppe

Zu den Grundlagen für die hohe Sicherheit des Betriebssystems Linux zählt, dass die tägliche Arbeit mit eingeschränkten Rechten erfolgt, den sogenannten User- oder Benutzerrechten. Dagegen gelingen systemrelevante Änderungen, wie beispielsweise das Verwalten von Softwarepaketen, die Konfiguration von Diensten oder grundlegende Systemeinstellungen, nur mit Root-Rechten (siehe Kasten "Linux-Benutzer").

Linux-Benutzer

Linux unterscheidet streng zwischen dem administrativen Benutzer root und normalen Benutzerkonten. Typischerweise legt die Installationsroutine ein Konto für root an. Dieser Benutzer unterliegt keinerlei Einschränkungen, die dem Konto zugeordneten Rechte erlauben den uneingeschränkten Zugriff auf das System. Deswegen bezeichnet man root häufig auch als Superuser. Normale Benutzer arbeiten hingegen mit eingeschränkten Rechten: Sie dürfen ausschließlich auf ihre eigenen Dateien zugreifen und keinerlei administrative Aufgaben erledigen.

Die Installer der betrachteten Distributionen erfragen die Daten für das Anlegen des Benutzerkontos, nicht jedoch zwangsläufig auch solche für das Konto root. So legt beispielsweise Ubuntu ein Root-Konto ohne Passwort an, das sich deswegen erst einmal nicht nutzen lässt. Damit er auch administrative Aufgaben erledigen kann, fügt Ubuntu den angelegten Benutzer stattdessen der Gruppe der Administratoren hinzu, die sudo heißt. Über das gleichlautende Kommando sudo kann der Benutzer dann Root-Rechte erlangen und administrative Aufgaben ausführen. Fedora erlaubt ebenfalls eine solche Gruppenzuordnung, richtet sie aber bei der Installation nur auf ausdrücklichen Wunsch ein.

Der einfachste Weg, sich Root-Rechte zu verschaffen, führt über die Anmeldung als root. Schafft es in diesem Zustand aber ein Schadprogramm, sich einzuklinken, erhält es damit den entsprechenden Rechtekontext und damit vollen Zugriff auf das gesamte System. Daher sollte man nur in Extremfällen als root arbeiten, etwa bei einer Systemwiederherstellung. Ubuntu geht hier sogar so weit, eine versehentliche Anmeldung als Root a priori zu unterbinden, indem das Konto in der Vorgabe kein Passwort erhält.

Ein normaler Benutzer nutzt die Kommandos su und sudo, um Befehle mit administrativen Rechten auszuführen. Nach Erledigung des jeweiligen Befehls kehrt der User automatisch wieder in den eingeschränkten Rechtekontext zurück, sodass potenzielle Malware keine Gelegenheit mehr hat, wichtige Systemeinstellungen zu manipulieren.

Die in der Vergangenheit häufiger verwendeten grafischen Ableger der Kommandos, wie etwa gksu und gksudo, verlieren zunehmend an Bedeutung, weswegen wir sie im Folgenden ausklammern.

Das Kommando <C>su<C>

Manche meinen, der Name des Kommandos su leite sich von "substitute user identity" ab (ersetze Benutzeridentität); andere halten es für eine Abkürzung des Begriffs "switch user". Letzteres fällt nicht nur kurz und prägnant aus, sondern beschreibt den Einsatz auch perfekt; die grundlegende Syntax lautet

$ su [Optionen] [Benutzer]

Sie können also mit Su in den Rechtekontext jedes beliebigen Benutzers umschalten, müssen sich dazu aber mit dessen Passwort authentifizieren. Die Angabe der Parameter Optionen und Benutzer sind optional. Als Standardwert für Ersteres dient der Start einer interaktiven Shell; geben Sie kein Benutzerkonto an, nimmt Su an, dass Sie root werden möchten.

Alle Distributionen bringen das Kommando Su mit, bei Ubuntu lässt es sich aufgrund des nicht initialisierten Root-Passworts allerdings zunächst nicht für administrative Zugriffe verwenden.

Dem mit Root-Rechten auszuführenden Befehl stellen Sie ein -c voran. Erfordert dieser weitere Parameter oder möchten Sie mehrere Befehle übergeben, schließen Sie diese in Hochkommas ein (Listing 1). Sogar die Übergabe von Skripten ist möglich, aber aus Sicherheitsgründen nicht zu empfehlen. Die Tabelle "Anwendungsbeispiele von Su" zeigt einige typische Einsatzfälle.

Listing 1

$ su -c 'echo whoami - $(whoami); echo HOME - $HOME'
Passwort:
whoami - root
HOME - /root

Anwendungsbeispiele von Su

Kommando Funktion
su -c 'ls /var/log' Verzeichnis /var/log mit Root-Rechten lesen
su -c 'echo $HOME' Name des Home-Verzeichnisses ausgeben (/root)
su -c 'echo $USER' Name des Benutzers ausgeben (root)
su -c 'gpasswd -a otto sudo' Benutzer otto der Gruppe sudo hinzufügen(1)
su -c 'gpasswd -d otto sudo' Benutzer otto aus der Gruppe sudo entfernen(1)
su -c 'apt install sudo' Paket sudo installieren (fehlt bei Debian)
(1) Änderung der Gruppenzuordnung greift erst bei Neuanmelden des Benutzers

Das System notiert jede Verwendung von Su mit Benutzernamen und Zeitstempel. Bei Debian finden Sie die entsprechenden Einträge beispielsweise in der Textdatei /var/log/auth.log (Abbildung 1).

Abbildung 1: Das System protokolliert jeden Aufruf von Su.

Bei Debian und Fedora bietet Su in der Vorgabe den einzigen Weg, um administrative Aufgaben als Benutzer zu erledigen. Zugehörige Hilfeseiten erhalten Sie mit der Eingabe von man su. Eine ausführlichere Dokumentation [1] gibt es nur in Englisch.

Der große Nachteil von Su: Zum Erledigen administrativer Aufgaben muss der Benutzer das Root-Passwort kennen. Auf Desktop-Systemen, wo es sich bei Root und Benutzer oft um dieselbe Person handelt, lässt sich das noch vertreten, in größeren Installationen sicherlich nicht.

Das Kommando <C>sudo<C>

An dieser Stelle setzt das Kommando sudo ("superuser do") an. Die Vergabe der Root-Berechtigung erfolgt dabei auf Basis der Gruppenzugehörigkeit: Ist der aufrufende Benutzer Mitglied der administrativen Gruppe und kennt zudem sein eigenes Passwort, darf er Kommandos mit administrativen Rechten ausführen.

Alle Distributionen legen bei der Installation eine solche Admin-Gruppe an. Entsprechende Einträge in der Sudo-Konfigurationsdatei /etc/sudoers ermöglichen den uneingeschränkten Systemzugriff für die Mitglieder dieser Gruppe. Ubuntu und dessen Derivate ordnen den Benutzer bereits bei der Installation der Admin-Gruppe zu, bei vielen anderen Distributionen müssen Sie das manuell erledigen. Die Tabelle "Anwendungsbeispiele von Su" zeigt dies am Beispiel des Benutzers otto.

Beim Aufruf stellen Sie das Kommando sudo dem auszuführenden Befehl voran und hängen eventuelle Parameter direkt an. In der Tabelle "Anwendungsbeispiele von Sudo" finden Sie einige typische Beispiele.

Anwendungsbeispiele von Sudo

Kommando Funktion
sudo ls /root Home-Verzeichnis des Benutzers Root anzeigen
sudo gpasswd -a otto sudo Benutzer otto der Gruppe sudo hinzufügen
sudo gpasswd -d otto sudo' Benutzer otto aus der Gruppe sudo entfernen
sudo passwd root Root-Passwort setzen
sudo apt install mc Programmpaket mc installieren

In der Standardeinstellung verlangt Sudo beim ersten Aufruf die Eingabe Ihres Benutzerpassworts. Mit dem erfolgreichen Aufruf startet ein Timer. Bis er abläuft, erfolgt bei weiteren Sudo-Aufrufen keine weitere Passwortabfrage; jeder erneute Aufruf von Sudo setzt den Timer zurück. Der Timer bleibt mit dem Terminal verknüpft, in dem Sie Sudo gestartet haben.

Wie Su unterstützt auch Sudo die Eingabe mehrerer Befehle und – mit einigen Einschränkungen – auch das Ausführen direkt eingegebener Shell-Skripte. So darf das erste Kommando beispielsweise keine Variablenzuweisung sein. Auch bei Sudo sollten Sie jedoch pro Aufruf nur ein Kommando übergeben und aus Sicherheitsgründen auf die direkte Angabe von Skripten verzichten.

Aus offensichtlichen Gründen bleibt es Mitgliedern der Admin-Gruppe vorbehalten, dieser neue Benutzer hinzuzufügen. Versucht ein Benutzer ohne entsprechende Rechte, Sudo zu verwenden, erfolgt eine entsprechende Fehlermeldung. Gleichzeitig erhält Root eine E-Mail mit einer Warnung (Listing 2), die das System unter /var/mail/root/ ablegt. Außerdem protokolliert das System jeden Aufruf von Sudo, bei Debian und Ubuntu etwa in /var/log/auth.log (Abbildung 2).

Listing 2

$ sudo ls
[sudo] Passwort für otto:
otto ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet.
Abbildung 2: Vim hebt Fehlversuche bei der Anmeldung farblich hervor.

Bei Mitgliedern der Admin-Gruppe fragt auch die grafische Oberfläche gegebenenfalls nach dem Passwort des Benutzers, anderenfalls nach dem Root-Passwort. Wie Abbildung 3 zeigt, verweist das System klar darauf, wessen Passwort Sie im konkreten Fall eingeben müssen.

Abbildung 3: Gnome fragt nach dem Passwort von Otto.

Neben dem Erlangen von Root-Rechten bietet Sudo übrigens noch viele weitere Funktionen, die ein Aufruf von man sudo verrät.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Zu Befehl
    Die tägliche Arbeit unter Linux wird aus Sicherheitsgründen nicht mit Root-Rechten, sondern unter einem normalen Account durchgeführt. Wer nicht für jede administrative Aufgabe mit su in den Superuser-Modus wechseln will, findet mit sudo Hilfe.
  • Zu Befehl: su, sudo
    Sicher ist sicher – selbst wer Root-Rechte auf dem System hat, sollte nur temporär als Administrator arbeiten, um nicht aus Versehen Schaden anzurichten. Mit su und sudo wechseln Sie auf der Kommandozeile schnell die Identität.
  • Tipps und Tricks zu Ubuntu, Linux Mint und Knoppix
    Ubuntu, Linux Mint und Knoppix basieren auf der Distribution Debian – wir verraten Tricks und Kniffe, welche den Umgang mit diesen Systemen erleichtern.
  • Root-Rechte mit Op vergeben
    Wer unter Linux häufig Befehle als Root absetzt, entdeckt schnell das Kommando Sudo, das viele Administrationsaufgaben erleichtert. Noch komfortabler ist das Tool Op.
  • Häppchenweise
    Das neue Sicherheitsmodell Policykit ermöglicht unter Ubuntu Hardy Heron eine bessere Feinabstimmung sicherheitsrelevanter Aufgaben, als das bislang mit Sudo möglich war.
Kommentare

Infos zur Publikation

LU 05/2018: GEODATEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

added to access control list
Ingrid Kroll, 27.03.2018 07:59, 10 Antworten
Hallo allerseits, bin einfache Nutzerin und absolut Linux-unwissend............ Beim ganz norm...
Passwortsicherheit
Joe Cole, 15.03.2018 15:15, 2 Antworten
Ich bin derzeit selbständig und meine Existenz hängt am meinem Unternehmen. Wahrscheinlich verfol...
Brother drucker einrichten.
Achim Zerrer, 13.03.2018 11:26, 1 Antworten
Da mein Rechner abgestürzt war, musste ich das Betriebssystem neu einrichten. Jetzt hänge ich wi...
Internet abschalten
Karl-Heinz Hauser, 20.02.2018 20:10, 2 Antworten
In der Symbolleiste kann man das Kabelnetzwerk ein und ausschalten. Wie sicher ist die Abschaltu...
JQuery-Script läuft nicht mit Linux-Browsern
Stefan Jahn, 16.02.2018 12:49, 2 Antworten
Hallo zusammen, ...folgender goldener Code (ein jQuery-Script als Ergebnis verschiedener Exper...