Schnittstelle zu su

KDE su benutzt den Systembefehl su, um Rechte zu erhalten. In diesem Abschnitt wird erklärt, wie KDE su dabei vorgeht.

Da manche Implementierungen von su (z. B. die von Red Hat®) keine Passwörter von stdin lesen, erstellt KDE su 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 KDE su 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 KDE su 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 KDE su 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.