Hilfreicher Guide für Superuser Accounts, sudo & root

sudo guide cover picture

Userrechte unter Linux sind eine der Grundlagen, welche Du verstehen solltest, wenn Du mit Linux arbeitest. Diese Anleitung ist besonders für die Nutzer geeignet, welche zum ersten mal Linux auf Ihrem Computer installiert haben, oder für Nutzer, welche Ihren ersten Linux-Server gemietet haben. Dieser Artikel ist zudem nicht nur für unsere Kunden, sondern für alle Linux Neueinsteiger geeignet! 

Der Root-Benutzer, normale Benutzer und System-Benutzer

Fangen wir mit der Erklärung der grundlegenden Admin-Struktur unter Linux an. Es gibt drei Standard-Benutzertypen unter Linux – den mächtigen Root-Benutzer, System-Benutzer und normale Benutzer. Root ist die Superbenutzer-Rolle, um alle anderen Benutzer zu verwalten, kritische Aktionen, wie das Löschen von Ordnern durchzuführen, Systemupdates zu installieren oder sich mit anderen Computern zu verbinden. Der Root-Benutzer kann zudem Rechte an andere Benutzer vergeben. Wenn Du als „root“ eingeloggt bist, kannst Du alle Aktionen auf dem Linux-System durchführen. Sich als „root“ einzuloggen ist besonders dann von Vorteil, wenn Du wichtige Systemänderungen vornehmen willst. 

Sollte Dein Benutzername nicht „root“ sein, bleibt Dir das ausführen wichtiger Aktionen verwährt. Solltest Du Befehle ohne die benötigten Rechte ausführen, weigert sich Linux diese Befehle auszuführen. 

Der Standard-Benutzer unter Linux hängt von Deiner Installation ab. Contabo nutzt für VPS, VDS oder Dedicated Server den „root“-Benutzer als den Standardbenutzer. 

Neben normalen Benutzern und dem Root-Benutzer gibt es viele Benutzer, welche durch das Betriebssystem selbst erstellt wurden. Diese System-Benutzer sind wichtig, damit Linux vernünftig laufen kann. Diese Art von Benutzern sind eigentlich Prozesse, also keine richtigen Benutzer. Man kann sich also nicht in diesen Benutzer einloggen. 

Bist du der Root? 

Um in Erfahrung zu bringen, ob Du als Root-Benutzer eingeloggt bist, wirf einfach einen Blick in die Konsole. Das erste Wort vor dem „@“-Zeichen zeigt dir den Benutzer an, mit welchem Du aktuell eingeloggt bist. In unserem Beispiel ist dies „Tom“: 

Command line Contabo server

In dem nächsten Beispiel sind wir auf demselben Server als „root“ eingeloggt: 

Logged in as

Alternativ kannst Du den folgenden Befehl nutzen, um Dir Deinen aktuellen Benutzer anzeigen zu lassen: 

whoami 

Zentrale Benutzerdatenbank

Linux speichert die Informationen aller Benutzer in einem Textdokument. 

Diese Liste befindet sich in der Datei mit dem Namen passwd, welche sich in Deinem /etc Ordner befindet. Um diese Datei zu öffnen nutzen wir den „cat“-Befehl – ähnlich wie ein Doppelklick unter Windows: 

cat /etc/passwd 

Dir wird eine lange Liste aller Benutzer angezeigt, welche in etwa so aussieht: 

/etc/passwd file

Vielleicht fragst Du Dich, warum Dir viele Benutzer aus dieser Liste gar nicht bekannt vorkommen. Dies liegt an den bereits beschriebenen System-Benutzern, welche automatisch von Linux erstellt wurden, um Prozesse korrekt im Hintergrund ausführen zu können. Schauen wir uns den Inhalt dieses Dokuments genauer an: Die dritte Spalte jedes Benutzers enthält die sogenannte Benutzer-ID. 

Die Benutzer-ID für Root ist standardmäßig 0

Die Werte 1 bis 500 sind für System-Benutzer reserviert. 

Werte ab 1000 sind für normale Benutzer reserviert. Wenn nicht anders festgelegt, vergibt Linux für jeden neu hinzugefügten Benutzer eine Benutzer-ID, welche bei 1000 startet und mit 1001, 1002,1003 und so weiter fortgeführt wird. 

Superuser werden 

Hinweis: Die hier gezeigten Befehle sind für Debian-basierte Distributionen, wie z.B. Ubuntu oder Linux Mint optimiert. Solltest Du eine andere Linux-Klasse, wie z.B. Oracle Linux oder Fedora benutzen, musst Du ggf. Befehle modifizieren oder die genutzten Programme nachinstallieren. 

Um Superuser zu werden, musst Du dich als „root“ einloggen. 

Solltest Du nicht als „root“-Benutzer eingeloggt sein, ist es trotzdem möglich, seine Rechte temporär zu erhöhen. Hierbei kommt das sudo-Feature ins Spiel, welches Dir erlaubt, die selben Aktionen wie der Administrator (Root-Benutzer) auszuführen. 

Alles was Du hierfür machen musst, ist ein „sudo“ vor den eigentlichen Befehl zu schreiben. So updatet dieser Befehl zum Beispiel das System: 

sudo apt-get update 

Solltest Du nicht als „root“-Benutzer eingeloggt sein und diesen Befehl ohne „sudo“ eingeben, gibt Linux Dir ein „Access Denied“ beziehungsweise ein „Zugriff verweigert“ zurück. 

Allerdings kann das wiederholte schreiben von „sudo“ vor jedem Befehl schnell nervig werden. Um Superuser-Rechte für die gesamte Sitzung zu erhalten, nutze diesen Befehl: 

sudo -i 

Nun musst Du nicht vor jedem Befehl „sudo“ benutzen. An dem folgenden Screenshot ist auch zu erkennen, dass sich Dein Nutzername nun auch auf „root“ ändert: 

Tom to elevate the rights to root

Dadurch, dass Du nun Superuser bist, ändert sich Deine Benutzer-ID, wie in dem vorherigen Kapitel erklärt, auch von ihrem ursprünglichen Wert auf 0. Mit diesem Befehl kannst Du deine aktuelle Benutzer-ID abfragen: 

id 

In unserem Beispiel ist Tom nun Superuser. Somit ändert sich seine Benutzer-ID von 1001 auf 0

Die Auswirkungen von „sudo -i“ halten solange, bis Du Dich ausloggst. Solltest Du wieder ein normaler Benutzer während deiner Sitzung werden wollen, nutze diesen Befehl: 

exit 

Allerdings ist es nicht jedem Benutzer erlaubt, seine Rechte zu erhöhen. Im nächsten Kapitel klären wir, wie man die Superuser Rechte verwaltet. 

Sudo-Rechte verwalten  

Nicht jedem Benutzer ist es erlaubt, seine Rechte zu erhöhen. Im folgenden zeigen wir Euch ein Beispiel, in welchem der Befehl zwar richtig eingegeben wurde, dies allerdings mit dieser Begründung abgelehnt wurde: „not allowed to run sudo“: 

Sudo is denied

Nutzern die Berechtigung erteilen, sudo zu verwenden 

Um die Sudo-Funktion einem Benutzer hinzuzufügen, muss dieser zunächst einer Liste hinzugefügt werden. Hierbei können nur Benutzer, welche bereits Zugriff auf die Sudo-Funktion haben, andere Benutzer hinzufügen. 

Lasst uns „Cordelia“ die Berechtigung für die Sudo-Funktion mit diesem Befehl hinzufügen: 

sudo usermod -aG sudo Cordelia 

Nun kann der Benutzer Cordelia die Sudo-Funktion verwenden. 

Nutzern die Berechtigung entziehen, sudo zu verwenden 

Solltest Du nicht länger wollen, dass Cordelia Zugriff auf die Sudo-Funktion hat, kannst Du die Berechtigung mit diesem Befehl wieder entfernen: 

sudo gpasswd -d Cordelia sudo 

Der Benutzer ist weiterhin aktiv, allerdings ohne die Möglichkeit, Aktionen als „root“ auszuführen. 

Weitere Schritte

In dieser Anleitung hast Du die wichtigsten Schritte gelernt, um den „root“-Benutzer und Sudo-Rechte zu verwalten. Wir empfehlen Dir, Dich weiter mit diesem Thema auseinander zu setzten und zu lernen, wie man die Feinheiten der Benutzerrechte anpassen kann. 

Nach oben scrollen