# Das Handbuch zu &kdesu;

&Geert.Jansen; &Geert.Jansen.mail;
Philipp
Siegert

    siegert@pp-services.de

Übersetzung
2000
&Geert.Jansen;
&FDLNotice;
2005-06-07
1.00.00

&kdesu; ist eine graphische Oberfläche für den &UNIX;-Befehl `su`.

KDE
su
Passwort
Systemverwalter

## Einleitung

Willkommen bei &kdesu;! &kdesu; ist eine graphische Oberfläche für den &UNIX;-Befehl `su` in KDE. Es ermöglicht Ihnen, ein Programm mit einer anderen Benutzerkennung auszuführen, indem Sie das Passwort dieses Benutzers angeben. &kdesu; hat keine speziellen Systemrechte; es benutzt den Befehl `su`.

&kdesu; hat eine zusätzliche Funktion: Es kann Passwörter speichern. Wenn Sie diese Funktion benutzen, müssen Sie das Passwort für jeden Befehl nur einmal eingeben. Weitere Informationen und eine Sicherheitsanalyse finden Sie unter .

Dieses Programm sollte von der Befehlszeile oder durch `.desktop`-Dateien gestartet werden. Obwohl es über einen Dialog nach dem Passwort des Systemverwalters (root) fragt, ist es trotzdem eher ein Befehlszeilen- als ein reines &GUI;-Programm.

## &kdesu; benutzen

Die Benutzung von &kdesu; ist einfach. Der Syntax ist folgendermaßen:

    kdesu -c -d -f  Datei -i  Symbolname -n -p  Priorität -r -s -t -u  Benutzer --nonewdcop Befehl Arg1 Arg2

    kdesu Allgemeine Einstellungen für &kde; Allgemeine Einstellungen zu &Qt;

Die Befehlszeilen-Parameter sind weiter unten erklärt.

`-c Programm`

  Dieser Parameter gibt an, dass das Programm mit den Rechten des Systemverwalters ausgeführt wird. Der Parameter muss einzeln angegeben werden. Wollen Sie &eg; einen KDE-Dateimanager starten, geben Sie auf der Befehlszeile ``kdesu `-c kfm -sw``` ein.

`-d`

  Den auszuführenden Befehl nicht im Dialog anzeigen.

`-f Datei`

  Dieser Parameter erlaubt den effizienten Einsatz von &kdesu; bei `.desktop` Dateien. Er weist &kdesu; an, die Datei, die mit `Datei` angegeben wurde, zu untersuchen. Besitzt der aktuelle Benutzer Schreibrechte auf die Datei, wird die Datei unter seinem Namen ausgeführt. Besitzt er keine Schreibrechte, wird die Datei unter dem Benutzernamen `Benutzer` (Voreinstellung: Systemverwalter) ausgeführt.

  `Datei` wird folgendermaßen ausgewertet: Wenn `Datei` mit `/` beginnt, wird es als absoluter Dateiname behandelt. Andernfalls wird es als Name einer globalen &kde;-Konfigurationsdatei behandelt. Um beispielsweise den KDE-Anmeldungsmanager kdm einzurichten, könnten Sie `kdesu `-c kdmconfig -f kdmrc`` eingeben.

`-i` Symbolname

  Legt fest, welches Symbol im Passwortdialog verwendet wird. Sie können einfach nur den Namen ohne Erweiterung eingeben.

  Um zum Beispiel `kfmclient` mit dem &konqueror;-Symbol im Passwortdialog zu starten, geben Sie dies ein:

      kdesu  -i konqueror kfmclient

`-n`

  Das Passwort nicht speichern. Dieser Parameter schaltet das Ankreuzfeld Passwort beibehalten im Passwort-Dialog aus.

`-p` Priorität

  Stellt die Priorität ein. Dies ist eine Nummer zwischen 0 und 100, wobei 100 für die höchste und 0 für die niedrigste Priorität steht. Die Voreinstellung ist 50.

`-r`

  Aktiviert die Echtzeit-Ausführung.

`-s`

  Den kdesu-Dämon anhalten. Weitere Details finden Sie unter .

`-t`

  Terminal-Ausgabe einschalten. Dieser Parameter schaltet das Speichern von Passwörtern aus. Dies ist hauptsächlich für Debugging-Zwecke interessant. Wenn Sie eine Anwendung benutzen wollen, die im Konsolen-Modus läuft, sollten Sie stattdessen den Standardbefehl `su` verwenden.

`-u` Benutzer

  Die häufigste Verwendung von &kdesu; ist, ein Programm als Systemverwalter auszuführen. Sie können aber auch einen anderen Benutzernamen und Passwort übergeben.

## Interne Funktionsweise

### X-Authentifizierung

Das Programm, das Sie aufrufen, wird unter der Benutzer-Kennung (User ID) des Systemverwalters ausgeführt und hat grundsätzlich keinen Zugriff auf Ihre X-Anzeige. &kdesu; umgeht dies, indem es Ihrer Anzeige ein Cookie zur Authentifizierung hinzufügt. Dazu wird eine zeitlich befristete `.Xauthority`-Datei angelegt. Nach Beendigung des Befehls wird die Datei wieder gelöscht.

Wenn Sie keine X-Cookies benutzen, sind Sie auf sich alleine gestellt. &kdesu; wird dies erkennen und kein Cookie hinzufügen. Sie müssen sich vergewissern, dass der Systemverwalter berechtigt ist, auf die Anzeige zuzugreifen.

### Schnittstelle zu `su`

&kdesu; benutzt das Systemkommando `su`, um Rechte zu erhalten. In diesem Abschnitt wird erklärt, wie &kdesu; dabei vorgeht.

Da manche Implementierungen von `su` (&eg; die von &RedHat;) keine Passwörter von `stdin` lesen, erstellt &kdesu; ein pty/tty-Paar und führt `su` so aus, dass die Standard-Dateideskriptoren mit dem tty verbunden sind.

Um anstelle einer interaktiven Shell einen vom Benutzer angegebenen Befehl auszuführen, benutzt &kdesu; den Befehl `su` mit dem Parameter `-c`. Dieser Parameter wird von jeder bekannten Shell verstanden, sodass er portabel einsetzbar sein sollte. `su` übergibt den Parameter `-c` an die Shell des Benutzers, unter dessen ID der Befehl ausgeführt werden soll. Diese Shell führt dann das Programm aus. Beispiel: `su `root -c das_programm``.

Statt den Befehl des Benutzers direkt mit `su` auszuführen, führt &kdesu; das Hilfsprogramm kdesu_stub aus. Dieses Hilfsprogramm, das unter der ID des Zielbenutzers läuft, fordert über den pty/tty-Kanal (stdin und stdout des Hilfsprogramms) einige Informationen von &kdesu; an. Danach wird das Programm des Benutzers ausgeführt. Folgende Informationen werden übergeben: die X-Anzeige, ein X-Authentifizierungs-Cookie (wenn verfügbar), die Variable `PATH` und der auszuführende Befehl. Der Grund für die Benutzung eines Hilfsprogramms ist der X-Cookie. Dieser beinhaltet sensible Informationen und kann deshalb nicht auf der Befehlszeile übergeben werden.

### Passwort-Überprüfung

&kdesu; überprüft die Passwörter, die Sie eingeben und gibt bei Falscheingabe eine Fehlermeldung zurück. Die Überprüfung erfolgt durch ein Testprogramm (`/bin/true`). Wenn die Ausführung dieses Programms erfolgreich ist, wird angenommen, dass das Passwort richtig ist.

### Passwörter speichern

Um es Ihnen so einfach wie möglich zu machen, enthält &kdesu; eine Funktion Passwort beibehalten. Falls Sie sich für die Sicherheit dieser Funktion interessieren, sollten Sie diesen Absatz lesen.

Indem Sie &kdesu; erlauben, die Passwörter zu speichern, entsteht eine (kleine) Sicherheitslücke in Ihrem System. &kdesu; erlaubt offensichtlich nur Ihrer User-ID die Verwendung der Passwörter. Wenn Sie allerdings nicht aufpassen, kann hierdurch die Sicherheitsstufe des Systemverwalters (root) auf die eines normalen Benutzers (Ihre Benutzer-ID) herabgesetzt werden. Ein Hacker, der versucht, in Ihren Zugang einzubrechen, würde dann Zugang zu den Funktionen von root erhalten. &kdesu; versucht dies zu verhindern. Das Sicherheitskonzept, das benutzt wird, ist angemessen sicher, zumindest nach bestem Wissen des Autors. Das Konzept wird hier weiter erklärt.

&kdesu; benutzt den Dämon kdesud. Der Dämon nimmt auf einem &UNIX;-Socket in `/tmp` Befehle entgegen. Die Zugriffsrechte des Sockets sind auf 0600 eingestellt, sodass nur Ihre Benutzer-ID Verbindungen zu dem Socket aufbauen kann. Wurde Passwort beibehalten aktiviert, führt &kdesu; Befehle durch diesen Dämon aus. &kdesu; schreibt dann den Befehl und das Passwort des Systemverwalters auf den Socket. Der Dämon führt daraufhin, wie oben beschrieben, mit Hilfe von `su` den Befehl aus. Danach werden Befehl und Passwort nicht gelöscht, sondern für eine bestimmte Zeit zwischengespeichert. Diese Zeit wird dem Kontrollmodul entnommen. Erfolgt innerhalb dieser Zeitspanne eine andere Anfrage für den Befehl, muss der Benutzer das Passwort nicht erneut eingeben. Um zu verhindern, dass Hacker, die in Ihren Zugang eingedrungen sind, Passwörter stehlen, wird der Dämon mit den Parametern set-group-id nogroup eingerichtet. Dies sollte alle normalen Benutzer (Sie eingeschlossen) daran hindern, Passwörter von dem Prozess kdesud zu bekommen. Der Dämon setzt außerdem die Umgebungsvariable `DISPLAY` auf den Wert, den der Dämon hatte, als er gestartet wurde. Das Einzige, was ein Hacker demnach tun könnte, wäre Anwendungen auf Ihrer Anzeige auszuführen.

Ein Schwachpunkt in diesem Sicherheitskonzept ist die Tatsache, dass die auszuführenden Programme wahrscheinlich nicht nach Sicherheitsgesichtpunkten geschrieben wurden (&eg; setuid root Programme). Dies bedeutet, dass in diesen Programme Puffer-Überläufe oder andere Probleme auftreten könnten, die ein Hacker ausnützen könnte.

Die Benutzung der Funktion zum Speichern der Passwörter ist ein Kompromiss zwischen Sicherheitsansprüchen und Komfort. Überdenken Sie dies bitte und entscheiden Sie selbst ob Sie diese Funktion benutzen wollen oder nicht.

## Autor

&kdesu;

Copyright 2000 &Geert.Jansen;

&kdesu; wurde von &Geert.Jansen; geschrieben. Es basiert irgendwie auf Pietro Iglios &kdesu;, Version 0.3. Pietro und Geert Jansen sind übereingekommen, dass Geert Jansen das Programm in Zukunft pflegen wird.

Der Autor ist unter folgender Adresse zu erreichen: &Geert.Jansen.mail;. Bitte schicken Sie ihm alle Fehler die Sie finden, sodass er Sie entfernen kann. Wenn Sie Vorschläge zu diesem Programm haben, können Sie Geert Jansen gerne anschreiben.

&underFDL; &underArtisticLicense;