# Das &kdesu;-Handbuch

Geert
Jansen

    g.t.jansen@stud.tue.nl

Lauri
Watts

    vampyr@atconnex.net

Korrektur
Philipp
Siegert

    siegert@pp-services.de

Übersetzung
2000
Geert Jansen
&FDLNotice;
2000-09-04
1.00.00

&kdesu; ist eine graphische Benutzeroberfläche für den Unix-Befehl "`su`"

KDE
su
Passwort
Systemverwalter

## Einleitung

Willkommen bei &kdesu;! &kdesu; ist eine graphische Benutzeroberfläche für den UNIX-Befehl "`su`" in KDE. Dies ermöglicht Ihnen, ein Programm unter einem anderen Benutzer auszuführen, indem Sie das Passwort dieses Benutzers angeben. &kdesu; hat keine speziellen Systemrechte; es benutzt den System-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 mit Hilfe eines GUI-Dialogs nach dem Passwort des Systemverwalters fragt ist es eher ein Befehlszeilen- als ein reines GUI-Programm.

## Installation

### Herunterladen

&kdesu; ist jetzt im KDE-CVS, und zwar in kdebase. Es sollte Teil jeder KDE-Distribution (Version 2.x) sein. Sie können aber auch eine KDE 1.x-Version von dieser Homepage herunterladen: ftp://skynet.stack.nl/pub/users/geertj/.

### Kompilieren

&kdesu; ist ein Teil von kdebase. Entweder haben Sie es schon, oder es wird bei der Installation von kdebase mitinstalliert.

Um die KDE 1.x-Version zu kompilieren benutzen Sie:

    $ ./configure
    $ make
    $ make install

Den letzten Schritt müssen Sie als Systemverwalter ausführen. Der Installationsprozess muss in die systemweiten KDE-Verzeichnisse schreiben können.

## &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 PROGRAM`

  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. einenKDE-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 `FILE` als absoluter Dateiname behandelt. Andernfalls wird `FILE` als Name einer globalen KDE-Konfigurationsdatei behandelt. Um beispielsweise den KDE Anmeldungsmanager kdm einzurichten, könnten Sie Folgendes eingeben: `kdesu `-c kcmshell kdm -f /etc/passwd``

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

`-n`

  Das Passwort nicht speichern. Dieser Parameter schaltet das Ankreuzfeld "Passwörter speichern" im Passwort-Dialog aus.

`-q`

  Anmerkung des Übersetzers: Diese Option funktioniert nicht mit der in &kde; 2.2 enthaltenen Version von &kdesu;.

`-d`

  Anmerkung des Übersetzers: Diese Option funktioniert nicht mit der in &kde; 2.2 enthaltenen Version von &kdesu;.

`-v`

  Versionsinformationen anzeigen

`--help`

  Hilfe anzeigen

`-s`

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

## Einrichtung

&kdesu; wird mit dem Kontrollmodul passwords ausgeliefert. Sie finden dieses Modul in dem 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 Beendung 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 (z.B. die von Redhat) keine Passwörter von stdin lesen können, 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 `su` Befehl. Dieser Befehl wird von jeder bekannten Shell verstanden, so dass er portabel einsetzbar sein sollte. `Su` übergibt den "`-c`" Befehl an die Shell desjenigen Benutzers, unter dessen ID der Befehl ausgeführt werden soll. Diese Shell führt dann das Programm aus. Beispielbefehl: "`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.

### Passwortprü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 angenehm wie möglich zu machen, enthält &kdesu; eine "Passwörter speichern"-Funktion. Wenn 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 niemand außer Ihnen mit Ihrer Benutzer-ID diese Passwörter zu benutzen. Wenn Sie allerdings nicht aufpassen, kann das Sicherheitslevel des Systemverwalters 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 des Systemverwalters 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, so dass nur Ihre Benutzer-ID Verbindungen zu dem Socket aufbauen kann. Wenn "Passwörter speichern" angekreuzt 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 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 kdesud Prozess 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, so dass er Sie entfernen kann. Wenn Sie Vorschläge zu diesem Programm haben können Sie Geert Jansen gerne anschreiben.

&underFDL; &underArtisticLicense;