Interfaccia a su

KDE su utilizza il comando di sistema su per acquisire privilegi. In questa sezione, spiegherò i dettagli di come KDE su fa ciò.

Dato che alcune implementazioni di su (cioè quella di Red Hat®) non vogliono leggere la password da stdin, KDE su crea una coppia pty/tty ed esegue su con i suoi descrittori di file standard connessi alla tty.

Per eseguire il comando che l'utente seleziona, piuttosto che in una shell interattiva, KDE su utilizza l'argomento -c con su. Questo argomento è compreso da ogni shell che conosco quindi dovrebbe funzionare in maniera portabile. su passa l'argomento -c alla shell dell'utente target, e la shell esegue il programma. Esempio di comando: su root -c il_programma.

Invece di eseguire il comando dell'utente direttamente con su, KDE su esegue un piccolo programma di comodo chiamato kdesu_stub. Questo programma di comodo (che gira come utente target), richiede alcune informazioni da KDE su attraverso il canale pty/tty (lo stdin e stdout del programma di comodo) e poi esegue il programma dell'utente. Le informazioni che vengono passate sono: il display X, un cookie di Autenticazione di X (se disponibile), il PATH ed il comando da lanciare. La ragione per cui è usato un programma di comodo è che il cookie di X è un'informazione privata e non può quindi essere passata sulla linea di comando.