|
home of de.comp.os.unix.linux.*
|
|||||||
|
|
|||||||
|
|||||||
Alle Macht dem UserEine der großen Sünden an einem Unix ist das Arbeiten als "User root". Dies mag zwar gerade für Ein- und Umsteiger verlockend und bequem sein, ist aber auch ebenso bedenklich wie leichtsinnig. Was ist so besonders an Root?Der Root-Account, häufig auch "Superuser" genannt, ist unter Unix-Systemen ein besonders privilegisierter Pseudo-Account mit der UID 0 für systemadministrative Aufgaben. Diesem Nutzer ist quasi alles erlaubt und so gut wie alle Sicherheitsschutzmechanismen sind bedeutungslos für ihn. Die Allmächtigkeit des Nutzers root ist eine der größen Sicherheitsprobleme eines Unix-Systems. Für das System ist nicht der Name ("root"), sondern die User ID des Benutzers ausschlaggebend. Aus diesem Grund verbannt eine Umbenennung des Root-Accounts oder das Anlegen eines weiteren Nutzers mit der UID 0 nicht die Gefahren im Umgang mit Root-Rechten. Der Root-Account wurde nicht als normaler Benutzeraccount für die gewöhnliche Systembenutzung entworfen. Er ist daher nicht der persönliche Account des Systemverwalters, sondern dient lediglich aufgrund seiner Beschaffenheit zur Erledigung bestimmter systemadministrativer Aufgaben. Der Root-Account ist ein besonders privilegisierte Pseudo-Account; er ist kein normaler persöhnlicher Account.
SelbstschutzWer hat nicht einmal eine Datei gelöscht die besser nicht gelöscht worden wäre? Und falls nun jemand "Hier!" schreit - es ist wohl nur eine Frage der Zeit, bis dies doch einmal passiert. Die Userrechte schützen z.B. die systemweiten Konfigurationsdateien vor unberechtigten Userzugriffen, nicht aber vor einem verunglückten Tastendruck als "root". Ein User kann bei einem sauber aufgesetzten System maximal die Daten seines Homeverzeichnisses löschen, "root" hingegen neben den eigenen Dateien auch noch die persönlichen Daten aller anderen User - oder auch die gesamte System-Installation. Wer nicht als "root" eingeloggt ist kann nur geringen Schaden anrichten.
VirenschutzNoch gibt es keine ernstzunehmenden Computerviren, die einem Unix schaden könnten - es müssen eben erst Rootrechte erlangt werden, um systemweite Manipulationen vornehmen zu können. Ändert sich nun das Userverhalten und der "User root" werkelt ständig, so haben einfachste Skripte - wie bereits in Unix-Newsgroups gepostet - ein leichtes Spiel. Programme ohne Rootrechte können keine systemweiten Schäden anrichten.
Wann User, wann "root"?Aus genannten Gründen ist es daher langfristig sehr wichtig nicht als "root" zu arbeiten - hierzu dient der Useraccount, auf dem die tägliche Arbeit verrichtet wird. Der Rootaccount dient ausschließlich der Administration. Selbst ein Systemadministrator loggt sich bei einer X-Session (grafische Oberfläche) als User ein - dieser Zugang wird dann entsprechend eingerichtet, so dass er sein System von dort aus administrieren kann. Als "root" ist man nur so kurz wie möglich eingeloggt.
suAn der Eingabeaufforderung (Konsole oder xterm) kann mittels " Beispiel: wk@planet:~$ su -c "tail -f /var/log/messages" Zugriff auf den X-ServerWer nun versucht ein X-Programm zu starten wird bitter enttäuscht werden, denn auch "root" darf nicht ohne weiteres einen fremden X-Server als Ausgabemedium missbrauchen - dies muss zuvor der User gestatten. Die eigenen "Schlüssel" hierzu liegen in der Datei "~/.Xauthority", und können über " Doch noch immer kann kein X-Programm gestartet werden, denn diesem muss erst noch mitgeteilt werden, welches Display verwendet werden soll. Hierfür sorgt die Shellvariable " jo@planet ~> xauth extract xauth_jo $DISPLAY Will man diese Einstellungen nicht jedesmal neu vornehmen sondern automatisch setzen lassen, so bietet sich für die Shellvariable jo@planet ~> su - Weniger dramatisch als das Kopieren oder Importieren fremder Zugangsdaten ist das Setzen der Umgebungsvariablen " jo@planet ~> su - sshEine weitere Möglichkeit grafische Programme mit Rootrechten auf dem Userdisplay erscheinen zu lassen bietet das Programm "ssh" - ein "remote login program", das bei entsprechender Konfiguration auch X-Connections unterstützt: jo@planet ~> ssh -X root@localhost Eventuell muss hierfür noch in der lokalen ssh-Serverkonfiguration der Eintrag " sudoWem es nun zu umständlich ist, sich nach dem Einloggen als User nochmals als "root" anzumelden, dem hilft das Tool "sudo". Hiermit kann man beliebige Befehle oder Programme bestimmten Usern zur Verwendung freigeben. Konfiguriert wird sudo unbedingt mit dem Wrapper "visudo", der einen per Default mit dem Texteditor "vi" konfrontiert. Gibt man hier eine Zeile wie jo ALL=NOPASSWD:/usr/local/sbin/fetchnews ein, so erlaubt das dem User "jo" "/usr/local/sbin/fetchnews" ohne Passworteingabe zu starten - er muss es nur über " Wer seine Shell freigibt (diese aber bitte nur *mit* Passworteingabe freigeben), kann mittels sudo komfortabel eine Rootshell herbeirufen, bei der alle Einstellungen des Users erhalten bleiben. Auch muss - wie bei ssh - kein Zugriff auf den X-Server mehr konfiguriert werden. Hierzu dient bei sudo die Option " jo@planet ~> sudo -s superÄhnlich wie "sudo" ist das Tool "super": Findet sich in dessen Konfigurationsdatei "/etc/super.tab" eine Zeile wie fnews /usr/local/sbin/fetchnews jo,joe so können die User "jo" und "joe" das Programm "fetchnews" ohne Passworteingabe starten - aufzurufen über " Und wem " Eintrag ins StartmenüBislang sind mehrere Eingaben in einer Shell notwendig, um ein grafisches Programm mit Rootrechten auf dem Userdesktop zu platzieren - zu viel für einen Menüeintrag. Aber auch hier kann man sich leicht helfen: Man kann einen kleinen Wrapper schreiben, in dem vor dem eigentlichen Programmstart sowohl $XAUTHORITY als auch $DISPLAY gesetzt werden - gibt man dieses Skript nun über "super" (oder "sudo") zur Verwendung ohne Passwortabfrage frei, so geht das mit einem einfachen Befehl. Beispiel für einen solchen Wrapper: #!/bin/sh Ein solches Skript abgespeichert unter -rwxr-x--- root root /usr/local/sbin/dateiname und aufgerufen über " Frontends, Wrapper und ToolsMit "kdesu" (KDE-Tool) und "xsu" (GTK/GNOME-Anwendung) existieren grafische Tools, die neben dem Userwechsel auch den Zugriff auf den X-Server regeln. Auch ist es mit einem kleinen Shellscript möglich, einen Wrapper um "su" zu schreiben, der den Zugriff auf den X-Server regelt. Beispiel: #!/bin/sh Ein weiteres Tool mit gleicher Funktionalität ist das von der SuSE-Distribution bekannte Tool "sux", das im WWW frei unter http://fgouget.free.fr/sux/ erhätlich ist. weitere InformationenZum Thema Sicherheit mit Hinweisen auf den Umgang mit dem Rootaccount gibt es ein "Security-HOWTO", welches die lokale Festplatte in den Tiefen des Verzeichnisses "/usr/share/doc" bereithalten sollte. Aktuelle Versionen können über folgende Adressen bezogen werden: Weiterer Artikel zum vernünftigen Umgang mit dem Rootaccount: Wer mehr über den (Fremd-)Zugriff auf den X-Server erfahren möchte, dem sei das "Remote X Apps mini-HOWTO" empfohlen - dieses ist ebenfalls Bestandteil von "/usr/share/doc", sowie unter folgenden Adressen erhältlich:
Dieser Artikel ist mit einigen Ergänzungen im WWW zu finden unter http://www.theparallax.org/dcoul/user2root/. |
|||||||
|
|
|||||||
| Fre, 13 Feb 2004 15:38:57 GMT Andreas Metzler http://www.dcoul.de/ | |||||||