Interface voor su

KDE su gebruikt het commando su van het systeem om de privileges te verkrijgen. In deze sectie wordt uitgelegd hoe KDE su dit doet.

Omdat sommige su-implementaties (zoals die van Red Hat®) het wachtwoord niet van de stdin willen lezen, zal KDE su een pty/tty-paar aanmaken en zal het su met zijn standaard bestandsdescriptors van daaruit oproepen.

Om een door de gebruiker geselecteerd commando uit te voeren in plaats van een interactieve shell, gebruikt KDE su het -c argument met su. Dit argument wordt ondersteund door elke shell die bestaat en is dus platformonafhankelijk. su geeft dit -c argument aan de shell van de doelgebruiker door en de shell zal het programma uitvoeren. Bijvoorbeeld: su root -c het_programma.

In plaats van het gebruikerscommando direct uit te voeren met su, draait KDE su een klein stub-programmaatje genaamd kdesu_stub. Deze stub (draaiend als de doelgebruiker), vraagt wat informatie van KDE su over het pty/tty-kanaal (de stdin en de stdout van de stub) en draait dan het gebruikersprogramma. De informatie die overgebracht wordt is: de X-display, een X-authenticatie-cookie (als deze beschikbaar is), de PATH en het uit te voeren commando. De reden waarom een stub -programma wordt gebruikt is dat het cookie geheime informatie bevat en daarom niet over de commandoregel mag doorgegeven worden.