Funzionamento interno

Autenticazione di X
Il programma che eseguirai girerà sotto l'id dell'utente root e non avrà generalmente l'autorità di accedere al tuo schermo di X. vi gira intorno aggiungendo un cookie di Autenticazione per il tuo schermo al file temporaneo .Xauthority. Dopo che il comando termina, questo file viene rimosso.
Se non utilizzi i cookie di X, è lasciato a te il lavoro. riconoscerà questa situazione e non aggiungerà un cookie ma dovrai assicurarti che l'utente root abbia il permesso di accedere al tuo schermo.

Interfaccia a su
utilizza il comando di sistema su per acquisire privilegi. In questa sezione, spiegherò i dettagli di come fa ciò.
Dato che alcune implementazioni di su ( quella di ) non vogliono leggere la password da stdin, 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, 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, esegue un piccolo programma di comodo chiamato kdesu_stub. Questo programma di comodo (che gira come utente target), richiede alcune informazioni da 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.

Verifica della Password
verificherà la password che immetti e restituirà un messaggio di errore se non è corretta. La verifica viene effettuata eseguendo un programma di test: /bin/true. Se ciò ha successo, la password è considerata corretta.

Memorizzare la Password
Per comodità, implementa una funzionalità di ricorda password. Se ti interessa la sicurezza, dovresti leggere questo paragrafo.
Permettere a di ricordare le password apre un (piccolo) buco di sicurezza nel tuo sistema. Ovviamente, non permette a chiunque ma solo al tuo id utente di usare le password, ma, se fatto senza cautela, ciò abbasserebbe il livello di sicurezza di root a quello dell'utente normale (tu). Un hacker che irrompe nel tuo account, otterrebbe l'accesso di root. cerca di prevenire ciò. Lo schema di sicurezza che utilizza, almeno secondo me, è ragionevolmente sicuro ed è qui spiegato.
utilizza un demone, chiamato kdesud. Il demone sta in ascolto di comandi ad un socket in /tmp. I permessi del socket sono 0600 così che solo il tuo id utente può connettervisi. Se è attivata la memorizzazione delle password, esegue il comando attraverso questo demone. Scrive il comando e la password di root a questo socket e il demone esegue il comando utilizzando su, come descritto sopra. Fatto questo, il comando e la password non sono gettati via. Sono, invece, memorizzati per una quantità di tempo specificata. Questo è il valore di timeout del modulo di controllo. Se un'altra richiesta per lo stesso comando arriva entro questo periodo di tempo, il client non deve fornire nuovamente la password. Per evitare che gli hacker che irrompono nel tuo account rubino le password dal demone (per esempio, connettendo un debugger), il demone è installato con l'id di gruppo nogroup. Questo previene tutti i normali utenti (inclusi tu) dall'ottenere password dal processo kdesud. Inoltre il demone imposta la variabile di ambiente DISPLAY al valore che aveva quando è stato lanciato. L'unica cosa che un hacker può fare è eseguire un applicazione sul tuo display.
Un punto debole in questo schema è che i programmi che esegui, probabilmente, potrebbero non essere stati scritti con la sicurezza in mente (come i programmi setuid root). Questo significa che potrebbero avere dei buffer overrun o altri problemi ed un hacker potrebbe sfruttarli.
L'utilizzo della memorizzazione delle password è un compromesso tra la sicurezza e la comodità. Ti incoraggio a pensarci e a decidere tu stesso se vuoi usarlo o no.