# Das Handbuch zu &kdesu;

## Einleitung

Willkommen bei &kdesu;! &kdesu; ist eine graphische Oberfläche für den &UNIX;-Befehl `su` in KDE. Dies 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 sec-password-keeping.

Dieses Programm sollte von der Befehlszeile oder durch `.desktop`-Dateien gestartet werden. Obwohl es nach dem Passwort des Systemverwalters (`root`) mit Hilfe eines &GUI;-Dialoges 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
          USER
          -n
          -t
          -q
          -d
          -f FILE
          -c

    	  COMMAND
    	  ARG1
    	  ARG2

          kdesu

    	-v
    	-h
    	-s

Die Befehlszeilen-Parameter sind unterhalb 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. Wenn Sie z.B. einen KDE-Web-Browser starten wollen, geben Sie auf der Befehlszeile ``kdesu `-c `konqueror```` ein.

`-f `FILE``

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

  `FILE` wird folgendermaßen ausgewertet: Wenn `FILE` 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.

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

`-n`

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

`-q`

- Keine Ausgabe. (Anmerkung des Übersetzers: Diese Option funktioniert nicht mit der in &kde; 3.0 enthaltenen Version von &kdesu;.)

`-d`

- Debug-Informationen anzeigen. (Anmerkung des Übersetzers: Diese Option funktioniert nicht mit der in &kde; 3.0 enthaltenen Version von &kdesu;.)

`-v`

- Versionsinformationen anzeigen und Programm beenden.

`--help`

- Hilfe anzeigen.

`-s`

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

## Einrichtung

&kdesu; wird mit dem Kontrollmodul passwords ausgeliefert. Sie finden dieses Modul im K-Menü unter Einstellungen Persönliche Einstellungen Passwörter.

Anzeigemodus

- Hier lässt sich festlegen, wie Ihre eingegebenen Zeichen auf dem Bildschirm erscheinen. Mögliche Einstellungen sind: ein Stern pro Zeichen, drei Sterne pro Zeichen oder keine Rückmeldung auf dem Bildschirm. Die Voreinstellung ist "ein Stern pro Zeichen".

Passwörter speichern

- Sie können Passwörter in &kdesu; speichern, indem Sie das Einstellungsfeld Passwörter speichern ankreuzen. In dem Textfeld darunter können Sie angeben, wieviele Minuten lang das Passwort gespeichert werden soll. Standardmäßig werden keine Passwörter gespeichert.

## Interne Funktionsweise

### X-Authentifizierung

Das Programm, das Sie ausführen, 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.

Weil manche `su`-Implementierungen (&zb; die von &RedHat;) keine Passwörter von `StdIn` lesen, erstellt &kdesu; ein pty/tty-Paar und führt `su` mit den Standard-Dateibeschreibungen aus, die durch das tty übergeben werden.

Um anstelle einer interaktiven Shell einen Befehl auszuführen, den der Benutzer auswählt, benutzt &kdesu; den Parameter `-c` mit dem Befehl `su`. Dieser Parameter wird von jeder bekannten Shell verstanden, sodass er portabel einsetzbar sein sollte. `su` übergibt den Parameter `-c` an die Shell desjenigen 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 kleine Unterprogramm kdesu_stub aus. Dieses Unterprogramm, das unter der ID des Zielbenutzers läuft, fordert einige Informationen von &kdesu; über über den pty/tty Kanal an (stdin und stdout des Unterprogramms). 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 Unterprogramms ist der X-Cookie. Dieser beinhaltet sensible Informationen und kann deshalb nicht über die 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 niemandem außer Ihnen mit Ihrer Benutzer-ID, diese Passwörter zu benutzen. Wenn Sie allerdings nicht aufpassen, kann das Sicherheitslevel des Systemverwalters (`root`) auf das 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. Wenn Passwort beibehalten aktiviert wurde, 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 dann mit Hilfe von `su` den Befehl, wie oben beschrieben, aus. Danach werden Befehl und Passwort nicht gelöscht, sondern für eine bestimmte Zeit zwischengespeichert. Diese Zeit wird dem Kontrollmodul entnommen. Wenn jetzt eine andere Anfrage für den Befehl in der angegebenen Zeit kommt, muss der Benutzer das Passwort nicht nochmals 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 (z.B. setuid `root` Programme). Dies bedeutet, dass diese Programme Puffer-Überläufe oder andere Probleme enthalten 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 ein wenig 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: g.t.jansen@stud.tue.nl. 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;

## Installation

### Herunterladen

&install.intro.documentation;

### Kompilieren

&install.compile.documentation;