Programme mit Root-Rechten ausführen

© Carlos Caetano, 123RF

An der Wurzel

Sudo verleiht Ihnen Super(-User)-Kräfte, denn Sie dürfen damit Programme unter einer fremden Benutzer-ID ausführen. Wir zeigen Ihnen, welche Möglichkeiten und Gefahren damit einhergehen und wie Sie Sudo an Ihre Bedürfnisse anpassen.

README

Auf einem Linux-System ist Root derjenige, der alles darf. Das hat neben Vorzügen aber auch Nachteile. Mit Sudo führen normale Nutzer Programme unter der Benutzer-Id von Root aus. So kann das Root-Passwort geheim bleiben, und es lässt sich später nachvollziehen, wer was in der Rolle des Superusers getan hat.

In einem typischen Linux-System haben gewöhnliche Nutzer meist nicht das Recht, administrative Aufgaben auszuführen. Nur der Benutzer root, also der Administrator, darf neue Anwendungen installieren, Systemdienste konfigurieren und starten oder Nutzer verwalten. Um Root zu werden, loggen Sie sich als root ein oder wechseln mit dem Kommando su - ("switch user") die Identität. Geben Sie dabei keinen Benutzernamen an, wechselt Su standardmäßig zu root. Das Minus-Zeichen hinter su führt die Shell-Initialisierungsdateien für root aus und setzt so dessen Systemumgebung.

Sind Sie der einzige Administrator, stellt der Super-User-Switch kein Problem dar. Nachteilig könnte es sich höchstens auswirken, wenn Sie vergessen, sich mit exit wieder abzumelden, und dann zu viele Aufgaben mit Root-Rechten erledigen. Gibt es jedoch mehrere Nutzer, die über administrative Macht verfügen sollen, wird es schon schwieriger: Entweder müssen Sie all diese Nutzer der Gruppe root hinzufügen, großzügig das SUID-Bit setzen oder das streng geheime Root-Passwort an alle verteilen. Weder das eine noch das andere erscheint unter Sicherheitsaspekten sehr akzeptabel.

SUID-Bit: Set User ID. Ausführbare Programme, bei denen das SUID-Bit gesetzt ist, werden mit den Rechten des Benutzers ausgeführt, dem die Datei gehört, statt mit den Rechten des aufrufenden Benutzers.

Zum Glück gibt es jedoch Sudo. Damit erlauben Sie bestimmten Nutzern, alle oder nur wenige Administrationsaufgaben auszuführen. Beispielsweise dürfen Sie als Administrator alles, der Webmaster darf Apache oder Nginx starten und der Sicherheitsbeauftragte die Firewall Iptables in Stellung bringen. Nach dem Abarbeiten des mit Sudo übergebenen Kommandos erhält sofort wieder der ursprüngliche Benutzer die Kontrolle. Kommt Sudo also wie gedacht zum Einsatz, sollte an keinem Arbeitsplatz eine unbeaufsichtigte Root-Shell herumdümpeln.

Mit Sudo genügt es, wenn nur eine oder zwei Personen das Root-Passwort kennen. Daher müssen Sie es auch nicht ändern, wenn einem Admin einmal die Rechte entzogen werden. Administrative Aufgaben und die dabei eventuell gemachten Fehler lassen sich dank der Protokollierung in /var/auth.log leichter einer Person zuordnen, als es bei mehreren Admins der Fall wäre, die sich als Root an einem System anmelden (Abbildung 1).

Abbildung 1: Vier Admins, und niemand will es gewesen sein. Oder: Vier Sudoer und eine Log-Datei als Zeuge.

In vielen User-Distributionen ist Sudo bereits installiert und für den Hauptnutzer konfiguriert, so auch in der von der Raspberry-Pi-Foundation empfohlenen Raspbian-Variante. In der Raspbian-Minimal-Distribution Darkbasic fehlt es dagegen: Dort müssen Sie sich als root anmelden und Sudo via apt-get install sudo aus den Paketquellen installieren.

Die Nutzung von Sudo gestaltet sich in der Praxis denkbar einfach: Sie stellen einem Befehl, den Sie als root ausführen möchten, schlicht ein sudo voran. Sie können das ganz schnell prüfen, indem Sie Ihrem RasPi ein sudo whoami zukommen lassen: Whoami gibt den Namen zurück, der zur momentanen Benutzer-Id gehört. Ein alleiniges whoami liefert den gewöhnlichen Nutzer, eines mit Sudo gibt root aus (Abbildung 2).

Abbildung 2: Sudo verleiht Root-Rechte. Es lassen sich damit aber auch Befehle unter jeder anderen auf dem System vorhandenen Identität ausführen.

Sudo konfigurieren

Sie konfigurieren Sudo über die Datei /etc/sudoers. Um jetzt neue sogenannte Sudoer hinzuzufügen, könnten Sie die Datei direkt editieren. Eleganter klappt das aber mittels des Helferleins visudo. Es öffnet die Datei /etc/sudoers im Standard-Editor des Systems (Nano oder Vi), sperrt Sie, während Sie daran arbeiten, und nimmt zusätzlich eine Syntaxkontrolle vor. Letztere stellt sicher, dass niemand aufgrund einer fehlerhaften /etc/sudoers vom Sudoing ausgeschlossen wird (Abbildung 3).

Abbildung 3: Ignoriert der Admin Visudos Warnungen, ist Schluss mit Sudoing: Hier hilft nur noch, die /etc/sudoers von einem anderen System aus zu bearbeiten.

Die /etc/sudoers gliedert sich in mehrere Sektionen, in denen Sie Aliasse für Hosts, Nutzer, und Kommandos sowie die eigentlichen Privilegien zum Ausführen von Kommandos spezifizieren. Die Aliasse können Sie nutzen, um mehrere Nutzer, Befehle oder Hosts zu gruppieren.

Die Privilegienvergabe erfolgt folgendermaßen: An erster Stelle steht der Name des Benutzers, dem Sie administrative Aufgaben zutrauen und erlauben. An zweiter Stelle steht der Host. Das bedeutet hier nicht, dass ein Nutzer des mit dem Hostnamen assoziierten Rechners Root-Rechte erhält, sondern dass die Zeile nur für den Rechner mit erwähntem Hostnamen gilt. Die /etc/sudoers kann man nämlich, einmal erstellt, auf alle Rechner eines Netzwerks verteilen, was für Root vieles einfacher macht. Jeder Rechner wertet die Datei aus und berücksichtigt nur die ihn betreffenden Zeilen. Anstelle des Hostnamens dürfen Sie auch IP-Adressen oder Netzwerkbereiche angeben, etwa 192.168.1.13 oder 192.168.10.0/24. Nach dem Hostnamen folgen ein Gleichheitszeichen sowie der erlaubte Befehl respektive die erlaubten Befehle, denn Sie dürfen hier mehrere aufzählen.

In jeder /etc/sudoers findet sich die Zeile root ALL=(ALL:ALL) ALL. Das ALL gilt wortwörtlich, denn es meint wirklich alles. Übersetzt besagt die Zeile, dass Root auf allen Rechnern (das erste ALL) unter allen Benutzer- und Gruppen-IDs (ALL:ALL entspricht hier user:group) alles darf (das letzte ALL). Steht hingegen nach dem Gleichheitszeichen nur ein einzelnes (ALL), darf dieser Anwender nicht die Gruppenidentität ändern.

Möchten Sie jetzt die leidigen Updates auf dem Host raspberrypi an den Nutzer donald delegieren, könnten Sie das mit der Zeile donald raspberrypi=/usr/bin/apt-get tun.

Aliasse und Variablen

Jetzt noch ein paar Worte zu den bereits erwähnten Aliassen: Mit ihnen gestalten Sie die /etc/sudoers übersichtlicher. Angenommen, Sie möchten auch den Benutzern Tick, Trick und Track Updates zumuten, von denen jeder einen eigenen RasPi besitzt. Anstatt für jeden eine einzelne Zeile zu tippen, erstellen Sie je einen passenden User- und Host-Alias:

User_Alias DUCKS = donald, tick, trick, track
Host_Alias RPIS = raspberrypi, rpitick, rpitrick, rpitrack

Dass jeder der Ducks das System jedes in RPIS aufgeführten Hosts aktualisieren kann, veranlassen Sie mithilfe der Zeile DUCKS RPIS=/etc/apt-get.

Sollen es irgendwann einmal mehr Kommandos sein, erstellen Sie einfach ein Kommando-Alias, das etwa wie folgt aussehen könnte:

Cmnd_Alias DUCKCOMMANDS = /usr/bin/apt-get, Befehl2, Befehl3 ...

Möchte ein Nutzer wissen, welche Kommandos er mit Root-Rechten ausführen darf, befragt er das System mit sudo -l danach (Abbildung 4).

Abbildung 4: Wer darf was sudoen? Der Befehl sudo -l gibt Auskunft.

Sie können privilegierte Rechte nicht nur einzelnen Benutzern geben, sondern auch kompletten im System definierten Benutzergruppen. Ein Beispiel dafür liefert die Zeile %sudo ALL=(ALL:ALL) ALL, die nichts anderes besagt, als dass alle zur Gruppe sudo gehörenden Benutzer Root-Rechte erhalten sollen. Dazu muss die Gruppe sudo bereits existieren – gibt es sie nicht, legen Sie sie mit groupadd sudo an.

Mit einem grep sudo /etc/group entlocken Sie dem System die zur Gruppe sudo gehörigen Mitglieder. Fehlt ein Nutzer, der Root-Privilegien genießen soll, fügen Sie ihn mit folgendem Befehl hinzu:

$ sudo usermod -a -G sudo Username

Etwas schwieriger wird es, den Benutzer wieder aus der Gruppe zu entfernen. Entweder editieren Sie die Datei /etc/group, oder Sie nutzen folgenden Befehl:

$ sudo usermod -G Username, Gruppe1, ... Username

Er löscht den Benutzer aus allen Gruppen, die Sie nicht aufzählen. Um dem Benutzer nicht versehentlich zu viele Rechte zu entziehen, lassen Sie sich sicherheitshalber vorher mit groups Username oder id -nG Username alle Gruppen anzeigen, denen er angehört.

Visudo nutzt die Variablen SUDO_EDITOR, VISUAL und EDITOR, um den Editor für die /etc/sudoers zu bestimmen. Ist keine dieser Variablen gesetzt, prüft Visudo in /etc/visudoers die Zeile Defaults editor=/usr/bin/nano:/usr/bin/vim und startet den ersten im System gefundenen Editor. Gibt es auch diese Zeile nicht, kommt der in /etc/alternatives/editor verlinkte Editor zum Zug. Um hier etwas zu ändern, bearbeiten Sie die Defaults editor oder setzen in der ~/.bashrc oder ~/.profile eine entsprechende Variable. Ebenso ist es möglich – und wahrscheinlich viel einfacher – den Standard-Editor mit sudo update-alternatives --config editor umzubiegen (Abbildung 5).

Abbildung 5: Falls Sie Nano nicht mögen, wechseln Sie einfach den Default-Editor.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

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

Raspberry Pi Geek kaufen

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

Deutschland

Ähnliche Artikel

  • Arch Linux unkompliziert auf dem RasPi 2 einrichten

    RaspArch vereinfacht das Installieren von Arch Linux auf einem Raspberry Pi der zweiten Generation erheblich: Statt das System Schritt für Schritt einzurichten, spielen Sie RaspArch komplett auf. Ein paar Hürden müssen Sie trotzdem überwinden.

  • Owncloud-Fork Nextcloud auf dem RasPi im Praxistest

    Führende Owncloud-Entwickler, darunter der Gründer Frank Karlitschek, überwarfen sich mit dem Kurs des Projekts und haben mit Nextcloud einen Fork gestartet. Der soll ein besseres Gleichgewicht zwischen Unternehmen, Kunden und Nutzern herstellen.

  • Der Raspberry Pi als VPN-Gateway mit Access Point

    Mit ein wenig Know-how verwandeln Sie im Handumdrehen einen Raspberry Pi in ein abgesichertes System mit integriertem VPN-Gateway für die Geräte in Ihrem heimischen Netz.

  • Raspberry Pi als Datei- und Drucker-Server

    Dank seines geringen Stromverbrauchs eignet sich der RasPi optimal für den Einsatz als rund um die Uhr laufender Home-Server. Dabei lässt er sich innerhalb kürzester Zeit sehr flexibel an die eigenen Wünsche anpassen.

  • Raspberry Pi als Webserver

    Raspbian bringt alles mit, was Sie für die Konfiguration und den Betrieb eines vollwertigen Webservers samt PHP, Datenbank und CMS im heimischen LAN brauchen. So erstellen und testen Sie eigene Webseiten, ohne der Gefahr von Attacken ausgesetzt zu sein.

Aktuelle Ausgabe

02/2018
Digital Signage

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial des Raspberry Pi. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Ferngebootet

    Das Booten über das Netzwerk beherrscht auch der RasPi 3 – und bietet damit sehr viel mehr Flexibilität, als Sie mit SD-Cards erzielen können.

  • Bleibende Werte

    Ein EEPROM dient dazu, Daten auch nach Abschalten der Energiezufuhr zu speichern, etwa als Kanalspeicher in Autoradios. Wir zeigen, wie Sie einen solchen Speicher beschreiben und wieder auslesen.

  • Auf Wolke 1

    Mit einem schnellen Netzwerkanschluss und einer SATA-Schnittstelle dient sich der Odroid HC1 als NAS-Alternative an – allerdings nicht für jedermann.

  • Wohnungsfunker

    Der kompakte Router GL.iNet dockt problemlos am Raspberry Pi an und erweitert diesen um einen Access Point samt Server-Funktion.

  • Satter Sound

    Mit zwei ICs am I2S-Bus und ein paar zusätzlichen Bauteilen erweitern Sie den Raspberry Pi um eine Soundkarte, die keine Kontaktmöglichkeit mit gängigem HiFi-Equipment scheut – von Klinke und RCA bis IEC60958, Koax-S/PDIF oder optischem TOSLINK.

  • Wer klopfet an?

    Wechselsprechanlagen mit Bild- und Tonübertragung gibt es zwar von der Stange, allerdings zu gesalzenen Preisen. Günstiger und obendrein flexibler ist ein Eigenbau mit Pi Zero und RasPi 3.

  • Wiedergeburt

    Mit dem Keyrah-Tastaturadapter und einem Raspberry Pi machen Sie aus einem defekten C64 eine optimale Emulator-Station, bei der Sie die originale Tastatur und die Joystick-Ports nutzen.

  • Kleine Nachtmusik

    Waveform8 beseitigt einige Ecken und Kanten des Vorgängers Tracktion – und macht die DAW endgültig fit für den Einsatz auf dem Raspberry Pi.

  • Recycling

    Mit einer Dockingstation lassen sich ausgemusterte IDE/SATA-Festplatten im 2,5- und 3,5-Zoll-Format am Raspberry Pi betreiben. Mit dem Samba-Server gliedern Sie den Mini-Rechner dann als Datenspeicher in Ihr lokales Netzwerk ein.