Gränssnitt med su

Kör som root använder systemets su kommando för att erhålla behörigheter. I det här avsnittet förklarar jag detaljerna om hur Kör som root gör det här.

Eftersom vissa su-implementeringar (dvs. den från Red Hat®) inte vill läsa lösenordet från stdin, så skapar Kör som root ett pty/tty-par och kör su med dess standard fildeskriptorer anslutna till tty:n.

För att köra kommandot som användaren valt, istället för ett interaktivt skal, använder Kör som root parametern -c till su. Den här parametern förstås av alla skal som jag känner till, så det här bör vara flyttningsbart. Su skickar parametern -c till den slutliga användarens skal, och skalet kör programmet. Exempel på kommando: su root -c programmet.

I stället för att köra användarkommandot direkt med su, startar Kör som root ett litet stödprogram som heter kdesu_stub. Detta stödprogram (som kör som målanvändaren), begär en del information från Kör som root över pty/tty-kanalen (stödprogrammets stdin och stdout) och kör sedan användarens program. Informationen som skickas över är: X-skärmen, en X-identifieringskaka (om tillgänglig), PATH och kommandot som ska köras. Orsaken att ett stödprogram används är att X-kakan är privat information och kan därför inte skickas på kommandoraden.