Grænseflade til su

KDE su bruger systemets su til at få privilegier. I dette afsnit, forklarer jeg detaljerne i hvordan KDE su gør dette.

Idet nogle su implementeringer (dvs. den fra Red Hat®) ikke ønsker at læse kodeordet fra stdin, opretter KDE su et pty/tty-par og kører su med dens standard-filedescriptors forbundet til tty.

For at køre den kommando som brugeren valgte, snarere end en interaktiv skal, bruger KDE su -c argumentet med su. Dette argument bliver forstået af enhver skal jeg kender til så det skulle virke overalt. su giver dette -c-argument til målbrugerens skal, og skallen kører så programmet. Eksempelkommando: su root -c the_program.

I stedet for at udføre brugerkommandoen direkte med su, kører KDE su et lille stump program der hedder kdesu_stub. Denne stump (kørt som målbrugeren), beder om noget information fra KDE su over pty/tty-kanalen (stumpens stdin og stdout) og kører så brugerens program. Informationen der gives videre er: X-skærmen, en X-godkendelses-cookie (hvis den er tilgængelig), PATH og kommandoen der skal køres. Grunden til at et stumpprogram bruges er at X-cookien er privat information og derfor ikke kan gives videre på kommandolinjen.