claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 07/2003   »   Ausgabe bestellen

Grafische Anwendungen als Administrator starten

Einmal Root und zurück

von Andrea Müller


Für frischgebackene Administratoren gibt es viel zu tun. Dateien wollen editiert und die Hardware konfiguriert werden. Ständiges Neuanmelden am System ist dafür nicht nötig.

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.

Umleitungen

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.

Wegweiser

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.

Schritt 1

Geben Sie dort su ein und drücken die [Enter]-Taste.

Schritt 2

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.

Schritt 3

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.

Stolpersteine unter SuSE

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).

Abb. 1: Wird man unter SuSE mit dem Befehl su zu Root, kann man keine grafischen Programme starten, sondern sieht nur diese Fehlermeldung.

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:

  • Starten Sie ein Terminal-Fenster, in dem Sie Befehle eingeben können.
  • Geben Sie dort
xauth list $DISPLAY

ein. Bei $DISPLAY handelt es sich um eine Variable, die für den grafischen Bildschirm steht, auf dem Sie gerade arbeiten.

  • Die Ausgabe des Befehls könnte so aussehen:
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.

  • Geben Sie nun su und dann Ihr Administrator-Passwort ein.
  • Tippen Sie nun xauth add. Schließen Sie den Befehl nicht durch Druck auf die [Enter]-Taste ab, sondern fügen Sie zuvor durch Klick auf die mittlere Maustaste den eben kopierten Text dahinter ein. Haben Sie noch eine Maus mit nur zwei Tasten, drücken Sie stattdessen beide Tasten gleichzeitig. Bevor Sie den Befehl durch Druck auf [Enter] abschicken, sollte die Befehlszeile ungefähr so aussehen:
xauth add linux/unix:0 XDM-Authorization-1 8660788b83f67361000733b542b667ea
  • Dadurch sorgt man dafür, dass man den richtigen Ausweis vorzeigt, wenn man eine Anwendung startet, die auf Ressourcen des X-Servers zugreifen will. Die obige Ausgabe kann ein Benutzer, in diesem Fall der Administrator, nämlich nur von dem berechtigten Benutzer erhalten haben. Nun können Sie den Namen des Programms eingeben, welches Sie mit Administrator-Rechten starten wollen. Möchten Sie ein KDE-Programm benutzen, müssen Sie es mit Angabe des vollen Pfades aufrufen, also seinen genauen Speicherort in der Verzeichnishierarchie angeben. Unter SuSE Linux liegen die KDE-Programme im Verzeichnis /opt/kde3/bin, das nicht im Suchpfad für Programme des Benutzers Root liegt. Wollen Sie den KDE-Datei-Manager starten, lautet der entsprechende Befehl daher nicht einfach nur konqueror, sondern Sie müssen /opt/kde3/bin/konqueror eintippen.

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.

Abb. 2: In diesem Fenster erwartet kdesu die Eingabe des root-Passworts.

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.

Alle Wege führen zum Ziel

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 | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-01-25 16:19

Nutzungsbasierte Onlinewerbung

[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]