# 5.2. Interface para o su

O KDE su usa o "su" do sistema para obter previlégios. Neste parágrafo serão explicados os detalhes de como o kdesu faz isto.

Porque algumas das implemantações do su (i.é. a do RedHat) não querem ler a password a partir do stdin, o KDE su cria um par pty/tty e executa o "su" com os seus descritores de ficheiros ligados ao tty.

Para executar o comando seleccionado pelo utilizador, em vez de uma shell interactiva, o kde su usa o argumento "-c" com o su. Este argumento é entendido por todas as shells conhecidas, por isso deve funcionar portávelmente. O su passa o argumento "-c" para a shell de destino do utilizador, e a shell executa o programa. Comando de exemplo:"su root -c the_program".

Em vez de executar o comando do utilizador directamente com o su, o kdesu executa uma pequena porção de programa chamada `kdesu_stub`. Esta porção (correndo como utilizador de destino), pede alguma informação do kdesu sobre o canal pty/tty (a porção stdin e stdout) e a seguir executa o programa do utilizador. A informação recebida é: o ecrã X, uma cookie de autenticação X (se existente), o PATH e o comando a executar. A razão porque é usada uma porção de programa é que a cookie X contém informação privada, e por conseguinte não pode ser passada na linha de comandos.