O KDE su usa o su do sistema para adquirir privilégios. Nesta seção, serão apresentados os detalhes de como o KDE su faz isso.
Uma vez que algumas das implementações do su (isto é, a da Red Hat®) não desejam obter a senha a partir do stdin
, o KDE su cria um par PTY/TTY e executa o su com os seus descritores-padrão de arquivos associados ao TTY.
Para executar o comando com o usuário selecionado, ao contrário de um shell interativo, o KDE su usa o argumento -c
com o su. Este argumento é entendido por todo shell conhecido de modo que ele deve funcionar corretamente. O su passa este argumento -c
para o shell alvo do usuário, e o shell executa o programa. Comando exemplo: su root -c
.programa
Ao invés de executar o comando do usuário diretamente com o su, o KDE su executa um pequeno programa chamado kdesu_stub. Este programa (executado como usuário alvo), solicita algumas informações do KDE su através do canal PTY/TTY (o 'stdin' e 'stdout' do programa) e então executa o programa do usuário. A informação passada é: o terminal X, um cookie de autenticação X (se disponível), o PATH
e o comando a executar. A razão pela qual este pequeno programa é usado é que o cookie X é uma informação privada e deste modo não pode ser passado por meio da linha de comando.