![]() |
|
||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
von Andrea Müller
Bei einem Multiuser-System wie Linux darf nicht jeder alles. Neben normalen Nutzern gibt es daher noch Root, der als einziger administrative Aufgaben erledigen darf, sei es das systemweite Einspielen neuer Software oder die Konfiguration vorhandener Hardware. Ist die Installation erst kurze Zeit her, gibt es noch viel zu konfigurieren, und der Anwender braucht oft Administrator-Rechte. Startet man nur die Konfigurationsprogramme seiner Distribution, fordern diese zuvor das root-Passwort an. Hin und wieder benötigt man jedoch auch als Administrator mal einen Datei-Manager oder Editor.
Eine Möglichkeit wäre es, sich abzumelden, als Root neu anzumelden, seine Arbeit als Administrator zu erledigen und sich danach erneut als normaler Benutzer anzumelden. Wer das einige Male gemacht hat, weiß, warum diese Lösung nicht ideal ist. Der Start der grafischen Desktop-Umgebungen KDE und GNOME dauert seine Zeit, und irgendwann ist man die Warterei leid und erledigt einfach alles als Administrator. Neben der Gefahr, versehentlich wichtige Systemdateien zu löschen, öffnet man so noch eine weitere Sicherheitslücke: Alle gestarteten Programme haben die Rechte des startenden Benutzers, also die von Root und können daher beliebig im System schalten und walten. Ist eine Anwendung fehlerhaft programmiert, kann das fatale Folgen haben.
Die klassische Lösung, um unter Linux temporär root-Rechte zu erhalten, bietet das Kommando su, das Sie in einem Terminal eingeben müssen. SuSE-Nutzer starten das KDE-Terminal konsole über einen Klick auf den kleinen blauen Monitor in der Kontrolleiste, Red-Hat-Anwender wählen den Punkt Systemtools / Terminal des Startmenüs.
Geben Sie dort su ein und drücken die [Enter]-Taste.
Geben Sie Ihr root-Passwort ein. Obwohl Sie beim Tippen noch nicht einmal Sternchen sehen, nimmt das System Ihre Eingaben an. So kann kein Fremder anhand der Sternchenzahl auf die Länge Ihres Passwortes schließen.
In diesem Terminal-Fenster (und nur dort -- nicht auf der gesamten grafischen Oberfläche) sind Sie jetzt als Administrator unterwegs. Nun können Sie Programme starten und Systemverwaltungsaufgaben erledigen. Nach deren Beendigung werden Sie durch Eingabe des Befehls exit wieder zum normalen Nutzer.
Meistens wird man auch als Administrator nicht auf den Komfort grafischer Anwendungen verzichten wollen. Red-Hat-Nutzer können nach der Eingabe des obigen Kommandos gleich loslegen und mit konqueror einen Datei-Manager oder durch Aufruf von kwrite den KDE-Editor starten. SuSE-Anwendern bleibt dieses Vergnügen jedoch verwehrt, und sie sehen nur eine Fehlermeldung (Abbildung 1).
Der Grund für diese Restriktion sind Sicherheitserwägungen. Die grafische Oberfläche unter Linux, das X Window System, ist voll netzwerkfähig und arbeitet nach dem Client-Server-Modell: Damit alles funktioniert, müssen mehrere Komponenten (die Anwendungen und der X-Server) zusammenspielen. Die Programme, die Sie starten, müssen irgendwie ihre Fenster und Bedienelemente auf dem Monitor darstellen. Dabei wenden sie sich jedoch nicht direkt an die Grafikkarte. Stattdessen schicken sie die Bitte, das Fenster zu zeichnen, an den so genannten X-Server. Dieser kümmert sich um die Zuteilung der Hardware-Ressourcen, wie Grafikkarte, Maus und Tastatur. Will also eine Anwendung ein Fenster zeichnen oder Ihre Tastatureingaben auf dem Bildschirm darstellen, teilt sie das dem X-Server mit, der dann der Grafikkarte die entsprechenden Befehle gibt.
Bei dem Eingabefenster, aus dem Sie den Befehl su aufgerufen haben, handelt es sich auch um ein Fenster -- allerdings um ein besonderes. Dieses Fenster dient nur als grafische Hülle für ein anderes Programm, die Shell. Das ist die Kommandozeile von Linux, vergleichbar mit der Anwendung command.com unter DOS. Starten Sie in diesem Eingabefenster Programme, die im Textmodus laufen, wie etwa den Editor vim, stoßen Sie nicht auf Probleme, da das Fenster, in dem die Shell läuft, immer noch Ihrem normalen Benutzer gehört. Haben Sie das Eingabefenster als Benutzer franz gestartet, bleibt franz auch der Besitzer des Fensters, selbst wenn Sie in der darin laufenden Shell inzwischen zu Root geworden sind. Alle Anforderungen, die dieses Fenster an den X-Server schickt, kommen bei diesem als Anfragen von dem Benutzer franz an und werden bereitwillig erfüllt. Starten Sie jedoch ein grafisches Programm, ändert sich die Lage dramatisch. Für dieses Programm schickt nun nicht mehr das Terminal-Fenster die Anforderungen, etwas zu zeichnen, an den X-Server, sondern das neu gestartete Programm fragt selbst bei dem X-Server nach. Dieses Programm gehört jedoch dem Benutzer root, ein Benutzer, der Ihrem X-Server zu diesem Zeitpunkt völlig unbekannt ist. Folgerichtig lehnt dieser die Anfrage des Programmes, doch bitte ein Fenster zu zeichnen, ab (Xlib: connection to ":0.0" refused by server). Auf einem Einzelplatzrechner ist Root zwar mit dem Benutzer franz identisch, doch das kann der X-Server nicht wissen. Er schaut bei jeder Anfrage lediglich nach, ob der Benutzer, drm das Programm gestartet hat, einen passenden Schlüssel in seinem Home-Verzeichnis liegen hat. Die notwendigen Informationen stehen in der Datei .Xauthority des Benutzers franz. Die klassische Methode, diese Eintrittskarte weiterzugeben, ist ziemlich kompliziert und für jene, die das nicht abschreckt, in Kasten 1 beschrieben.
| Kasten 1: Autoritätsgewinn |
|
Die Datei .Xauthority enthält die Daten, anhand derer der X-Server Sie als berechtigt identfiziert, grafische Anwendungen zu starten. Allerdings stehen die Informationen in binärer, verschlüsselter Form in der Datei, so dass Sie nur Zeichensalat sehen, wenn Sie sie mit einem Editor öffnen. Um die notwendigen Informationen zu extrahieren und weiterzugeben, gibt es den Befehl xauth. So gehen Sie vor, um Eintrittskarten zu verteilen:
xauth list $DISPLAY ein. Bei $DISPLAY handelt es sich um eine Variable, die für den grafischen Bildschirm steht, auf dem Sie gerade arbeiten.
linux/unix:0 MIT-MAGIC-COOKIE-1 69607fef5c39d9bce7ec1840e3fea7b6 linux/unix:0 XDM-Authorization-1 8660788b83f67361000733b542b667ea Der letzte Teil der beiden Zeilen wird bei Ihnen ein anderer sein, da es sich dabei um den eigentlichen "Schlüssel" handelt, der zufällig generiert wird. Markieren Sie von der Ausgabe des obigen Befehls die letzte Zeile, indem Sie mit gedrückter linker Maustaste darüber fahren. Dadurch kopieren Sie sie in die Zwischenablage des grafischen Systems.
xauth add linux/unix:0 XDM-Authorization-1 8660788b83f67361000733b542b667ea
|
Alle Anderen nutzen die komfortable Lösung, die KDE von Haus aus mitbringt. Das Programm kdesu erledigt alle in Kasten 1 beschriebenen Schritte automatisch im Hintergrund. Statt also in dem Terminal den Befehl su zu benutzen, gehen SuSE-Nutzer einen anderen Weg: Geben Sie als normaler Benutzer kdesu Programmname ein. Um den Datei-Manager Konqueror zu starten, lautet der Befehl kdesu konqueror. Im sich öffnenden Dialogfenster (Abbildung 2) geben Sie Ihr root-Passwort ein und klicken auf OK.

Im nun startenden Konqueror haben Sie auf alle Dateien und Verzeichnisse Vollzugriff und können sich so beispielsweise die Log-Dateien Ihres Systems ansehen, deren Inhalt normalen Benutzern verborgen bleibt. Beenden Sie den Datei-Manager, geben Sie damit auch die Rechte des Administrators auf.
Weder unter SuSE noch unter Red Hat Linux ist es nötig, sich neu anzumelden, um ein Programm mit Administrator-Rechten zu starten. Lediglich die Vorgehensweise unterscheidet sich, wobei Red-Hat-Nutzern auch die Möglichkeit offensteht, ebenfalls kdesu statt su zu verwenden. Jene Red-Hat-Anwender, die auch den SuSE-spezifischen Teil dieses Artikels gelesen haben, brauchen sich übrigens keine Sorgen um die Sicherheit ihres Systems zu machen. Red Hat hat sich für eine etwas benutzerfreundlichere Variante entschieden als SuSE: Gibt man dort das Kommando su und sein Administrator-Passwort ein, wird automatisch eine Authentifizierungsdatei, die mit xauth beginnt und mit einer zufälligen Zeichenfolge endet, im Home-Verzeichnis des Administrators (/root) erzeugt. Das gilt jedoch nur für lokale Benutzer, also für jene, die sich auch an Ihrem Rechner anmelden. Verbindungsversuche aus dem Internet oder dem lokalen Netzwerk lehnt Ihr X-Server ebenso zuverlässig ab wie der von SuSE. (amü/fan)
| Tipp: Sonderweg für KDE-Muffel |
|
SuSE-Anwender, denen die Vorgehensweise mit kdesu nicht gefällt, können auch das Programm sux benutzen. Dieses wird bei SuSE standardmäßig installiert und genauso angewendet wie das Programm su. |
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2012 Linux New Media AG |
Last modified: 2007-01-25 16:19
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Smart Developer]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Smart Developer]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]