SDB:Als Root anmelden

Wechseln zu: Navigation, Suche
Dieser Artikel beschreibt, wie man auf openSUSE als Systemadministrator arbeitet.
Getestet mit openSUSE Empfohlene Artikel Verwandte Artikel
Icon-checked.png

Icon-manual.png Icon-help.png

Situation

Unix/Linux Systeme verwenden einen speziellen Benutzer als Systemadministrator. Das ist der Benutzer mit der UID 0 und dem Benutzernamen root. Er ist auch unter dem Begriff 'Superuser' bekannt. Er wird einfach als Root bezeichnet. Root kann alles machen. Macht Root einen Fehler, kann das System abstürzen und sogar unbrauchbar werden. Erlangt eine unautorisierte Person Root-Rechte sind Sie erledigt.


Ein Originalzitat eines Kunden sollte als Warnung dienen:

... nun, mir ist ein Missgeschick passiert, weil ich als Root arbeitete. In
der Hoffnung irgend einen Ton zu bekommen, schrieb ich versehentlich  "ls >
/dev/hdb2" anstatt "/dev/dsp" - unglücklicher Weise ist /dev/hdb2 meine
Root-Partition.


Bemerkung: /dev/hdb2 war seine Root-Partition. Aber neben Schadenfreude haben wir auch aufrichtiges Mitleid ;-)

Jahrelange Erfahrung mit Unix und Linux Systemen haben zu der Schlussfolgerung geführt, dass es nicht sicher ist:

  • normale Tätigkeiten auf einem System als Root auszuführen (es ist zu riskant, einen Schaden zu verursachen, wenn man auf dem System Benutzerdaten und Systemdateien miteinander vermischt), sondern nur wenn es unbedingt notwendig ist;
  • um sich direkt als Root anzumelden, speziell wenn man ein Netzwerk verwendet (Gefahr von Schnüffelei), gibt es einige Ausnahmen von dieser Regel. Das wird später erklärt.

Vorgehensweise

Es geht darum, wie diese Regeln in openSUSE zu beachten sind.

Verwenden Sie kein Root für normale Arbeit

openSUSE hilft Ihnen

Während ser Installation werden Sie gebeten, mindestens einen normalen Benutzer anzugeben. Das ist derjenige, den Sie für die normale tägliche Arbeit verwenden sollten, wie z.B. einloggen in die grafische Oberfläche GUI von KDE oder GNOME, um Mails zu bearbeiten, Musik zu spielen, zum Surfen im Internet usw. Die Fähigkeit, sich in die grafische Oberfläche als Root einzuloggen, indem man auf einen aufgelisteten Benutzer klickt, ist aufgrund der Gestaltung nicht so leicht möglich. Sie werden nicht überrascht sein, wenn wir Ihnen nicht empfehlen, das zu ändern.


Was kann sonst getan werden?

Wenn mehrere Menschen am gleichen System arbeiten (Ihr Ehegatte, Ihre Kinder), geben Sie jedem von ihnen ein Benutzerkonto (userid). Sie werden dann ihren eigenen Bereich auf der Festplatte haben, so dass sie ihren eigenen Desktop-Manager, Hintergrundbild usw. wählen können. Währen diese Empfehlung nur entfernt mit dem Anwender-Root-Problem verbunden ist, zeigt es doch den Unterschied von 'normalem' Benutzer und Root. Es mag viele normale Benutzer geben aber es gibt nur einen Root. Und die Kenntnis über das Root-Passwort muss begrenzt bleiben! Der Fall, dass es nur einen 'normalen' Benutzer gibt, ist ein Spezialfall des Multi-Benutzer-Linux-Systems. Und das führt zu der folgenden Empfehlung. Erwägen Sie, einen Benutzer für die Aufgaben und Daten als Administrator des Systems zu installieren. Nennen wir diesen Benutzer z. B. Admin. Nun können Sie verschieden Dinge in der Rolle des Systemadministrators ausführen und speichern, die nicht unbedingt als Root ausgeführt werden müssen, getrennt von den Dingen, die Sie als normaler Benutzer ausführen und speichern.

Übrigens, Sie können sich auch mit der Verwendung des Benutzers unter YaST > Sicherheit und Benutzer > Benutzer und Gruppenverwaltung vertraut machen.

Über das Netzwerk

Bevor Sie fortfahren, zuerst ein Wort über das Netzwerk. Die Protokolle wie Telnet, Rsh und Rlogin werden für den normalen Gebrauch in den heutigen Netzwerken als sehr gefährlich eingeschätzt. Verwenden Sie niemals derartige Protokolle, wenn Sie das Root-Passwort über das Netzwerk senden wollen. Verwenden Sie immer sichere Protokolle wie ssh.

Nicht direkt als Root anmelden

Alle Aktionen, die nur als Root ausgeführt werden dürfen, werden Sie nach Ihrem Passwort fragen . Das verhindert nicht nur, dass andere Menschen sich als Root anmelden können, es sagt Ihnen auch, dass Sie jetzt besonders sorgfältig sein müssen, wenn Sie etwas tun wollen.

Es wurde bereits über das Einloggen in die grafische Oberfläche als Root geschrieben. Es ist nicht leicht, so etwas zu tun und das ist richtig so. Das bedeutet nicht, dass Sie nicht die auf die grafische Oberfläche bezogenen Programme benutzen können, um das System zu organisieren, auch wenn sie Root-Rechte erfordern.


Programme, die das problem selbst lösen

Ein Beispiel ist YaST. Wenn YaST startet, erkennt es, dass es nicht als Root läuft, fragt nach dem Root-Passwort und läuft als Root weiter. Wenn alle Aktivitäten von YaST beendet sind, werden keine weiteren Root-Prozesse zurück gelassen. Einige Programme besitzen ebenfalls spezielle Optionen, die nach dem Passwort fragen: Starten Sie ein Terminal-Fenster und geben su ein. Jetzt wird das Root-Passwort verlangt. Nach der Eingabe des Root-Passwortes ändert sich die Farbe der Eingabeaufforderung, um Sie daran zu erinnern, dass Sie im Root-Status arbeiten.

Starten eines programms mit GUI unter Verwendung kdesu/gnomesu

Sie wissen wahrscheinlich, dass Sie ein Programm ausführen können, indem Sie im KDE-Menü > Befehl ausführen oder die Tastenkombination Alt-F2 wählen. Im das geöffnete Eingabefenster geben Sie zuerst kdesu ein, gefolgt von einem Kommando (Name eines Programms), dass Sie als Root ausführen wollen, z. B. kdesu xterm. Bevor sich ein Terminal-Emulator-Fenster öffnet, werden Sie aufgefordert, das Root-Passwort einzugeben. Beachten Sie, dass alles was Sie eingeben, als Root erfolgt. Wollen Sie das Terminal verlassen tippen Sie exit ein. Das Gegenstück für GNOME ist gnomesu. Es ist wahrscheinlich keine gute Idee, Firefox auf diese Weise zu starten, dann im Internet zu surfen und dann Dateien aus dem Internet herunter zu laden. Darum bedenken Sie immer, was und warum Sie als Root tätig werden.

Im Terminal ein Kommando als Root ausführen

Es ist in der Linuxwelt üblich, die Kommandozeile zu verwenden, speziell für Aufgaben als Root. Wie oben erwähnt, können Sie ein CLI (Command Line Interface), ein Terminal z. B. konsole, xterm, direkt als Root starten. Aber wenn Sie keine Befehle eingeben, die Root-Rechte verlangen, sollten Sie als normaler Benutzer im Terminal arbeiten. Verwenden Sie sudo z. B. für sudo /etc/rc.d/apache2 restart Nach dem der Neustart von Apache abgeschlossen ist, sind Sie wieder normaler Benutzer. Bei dieser Aktion werden einige Ausgaben erzeugt, die Sie sehen können. Zur Bearbeitung von fstab könnten Sie sudo vi /etc/fstab verwenden. Ebenso ist kdesu kwrite /etc/fstab ist das ebenfalls eine Option, wenn es Ihr bevorzugter Editor ist.

Ausführung eines Kommandos das eine GUI hat

Um ein Programm mit GUI als Root zu starten, benötigen Sie Zugang zum DISPLAY, das dem Benutzer, als den Sie sich eingeloggt haben, gehört. Das Kommando sudo xeyes gibt die Information Error:can´t open display: aus. Auch die im englischen Wiki vorgeschlagene Ergänzung von sudo -E xeyes liefert die gleiche Fehlermeldung. Um das Problem zu lösen wird im englischen Wiki vorgeschlagen, folgendes einzugeben: sudo /usr/sbin/visudo. Dann suchen Sie die Zeile, die sagt Defaults env_keep= " LANG LC_ADDRESS ..., fügen Sie DISPLAY und XAUTHORITY zu dieser Liste. Der Anfang der Zeile sieht wie folgt aus: Defaults env_keep = "DISPLAY XAUTHORITY LANG LC_ADDRESS .... Sichern Sie die Datei. Und nun können Sie eingeben: sudo xeyes.

Eine lange Terminalsitzung als Root

Wenn ein längerer Zugriff als Root notwendig ist, verwenden Sie bitte das Kommando su. Eine neue Shell startet dann mit Root-Rechten. Die Verwendung der Option - (oder -l oder --login) wird sehr empfohlen, weil es die Shell als Login-Shell öffnet. Das bedeutet, dass alle Initialisierungen während eines normalen Login abgeschlossen sind. Und neben anderen Dingen gibt Ihnen die korrekte PATH-Variable. Wenn Sie das nicht machen, könnte Ihre PATH-Variable mit unerwarteten Verzeichnissen versehen sein, die gefährliche ausführbare Dateien enthalten könnten. Berüchtigt ist das Verzeichnis . (Ihr Arbeitsverzeichnis). Wenn ein normaler Benutzer z. B. ein Skript, das den Namen ls enthält, erzeugt

Warnung!Der folgende Code ist ein Beispiel darüber, was man nicht tun sollte. Wenn Sie den unten dargestellten Code ausführen, wird es Ihr System zerstören, indem es alles löscht. Der Code ist vergleichbar mit deltree C:\

#!/bin/sh
cd /
rm -rf *

In /tmp/ oder in seinem/ihrem Home-Verzeichnis, kann Root das ganze System unbeabsichtigt löschen. Auch wenn . das letzte Verzeichnis in PATH ist, ist man nicht davor Sicher Fehler einzugeben, indem man ein lokales Programm unbeabsichtigt aufruft (anstatt lsi -a, la zum Beispiel). Um Root-Rechte für eine längere Sitzung zu erlagen, führen Sie folgendes aus

$ su -
Passwort:
syste:#

Beachten Sie die unterschiedlichen Eingabeaufforderungen, die auch in manchen Terminals auch rot angezeigt werden, wenn Sie Root-Rechte besitzen. Um die Sitzung zu beenden, geben Sie exit ein:

# exit
logout
happy@system:~>


Die eigentliche Konsole

Die eigentliche Konsole Ihres Systems ist die Tastatur-Bildschirm-Kombination, die Sie bereits kennen, das sie für die grafische Oberfläche GUI verwendet wird. Für eine Mehrfachbenutzung sind auch verschiedene 'logische Bildschirme' vorhanden. Diese können über die Tastenkombinationen Ctrl-Alt-Fn erreicht werden (n steht für unterschiedliche Zahlen). Ihre grafische Oberfläche ist normaler Weise auf Ctrl-ALt-F7. Sie können sich zur gleichen Zeit auf eine zweite (und mehr) grafische Oberfläche eingeloggt haben, die dann unter Ctrl-Alt-F8 zu finden sind. Die wirkliche Konsole ist auf Ctrl-Alt-F1. Wenn Sie diese Tastenkombination das erste Mal nach einem Systemstart eingeben, werden Sie die letzte Ausgabezeile des Startvorgangs sehen und eine Anmeldeaufforderung (login promt). Das gleiche trifft für ein Terminal zu. Wollen Sie sich als Admin einloggen verwenden Sie sudo oder su und nicht kdesu oder gnomesu.

Es warten weitere Terminals auf Sie, wenn Sie Ctrl-Alt F2 ... Ctrl-Alt-F6 verwenden. Fast keiner verwendet diese, eventuell wenn sich Nummer 1 aufgehängt hat.

Sie können sich in die wirkliche Konsole als Root einloggen, wenn zum Beispiel Ihr /home nicht erreichbar ist. Wenn es auf einer getrennten Partition liegt, könnte es nicht eingehängt sein, etwa nach einer Systemaktualisierung oder Installation. Dann können Sie sich nicht als normaler Benutzer anmelden. Da Root sich nicht im Verzeichnis /home sondern im Wurzelverzeichnis / befindet, können Sie sich als Root anmelden. Das ist auch der Grund, warum es so gemacht wird.

Bibliography

  • Practical UNIX Security by Simson Garfinkel and Gene Spafford (O'Reilly Serie, ISBN 0-937175-72-2)
  • Essential System Administration by Æleen Frisch (O'Reilly Serie, ISBN 1-56592-127-5)
  • Computer Security Basics by Deborah Russell and G.T. Gangemi Sr . (O'Reilly Serie, ISBN 0-937175-71-4)

Externe Links