# Manual do &kdesu;

## Introdução

Bem-vindo ao &kdesu;! O &kdesu; é uma interface gráfica para o comando `su` do &UNIX; no Ambiente de Trabalho K. Ele permite-lhe executar um programa como um usuário diferente fornecendo a senha deste usuário. O &kdesu; é um programa com privilégios especiais; ele usa o `su` do sistema.

O &kdesu; possui um recurso adicional: ele pode lembrar-se da senha para você. Se você usar este recurso, você somente precisará inserir a senha uma vez para cada comando. Veja sec-password-keeping para mais informações sobre isto e uma análise de segurança.

Este programa deve ser iniciado a partir da linha de comando ou de arquivos `.desktop`. Apesar de ele solicitar a senha do `root` usando um diálogo &GUI;, eu o considero mais como uma linha de comando <-> colada a uma &GUI; do que um programa puramente &GUI;.

Uma vez que o `kdesu` não é mais instalado em `$(kde4-config --prefix)`/bin mas em `kde4-config --path libexec` e por isso não está no seu `Path`, você deve usar `$(kde4-config --path libexec)`kdesu`` para iniciar o `kdesu`.

## Usando o &kdesu;

O uso do &kdesu; é fácil. A sintaxe é parecida com isto:

    kdesu -c  comando -d -f  arquivo -i  nome do ícone -n -p  prioridade -r -s -t -u  usuário --noignorebutton --attach  ID

    kdesu opções genéricas do &kde; opções genéricas do &Qt;

As opções de linha de comando são apresentadas abaixo.

`-c `comando``

- Isto especifica o comando a ser executado como 'root'. Tem que ser passado um argumento. Assim se, por exemplo, quiser iniciar um novo gerenciador de arquivos, você deve inserir na linha de comando algo como: `$(kde4-config --path libexec)`kdesu`-c `&dolphin;````

`-d`

- Mostra informações de depuração.

`-f `arquivo``

- Esta opção permite um uso eficiente do &kdesu; em arquivos `.desktop`. Isto diz ao &kdesu; para examinar o arquivo indicado em `arquivo`. Se este arquivo puder ser alterado pelo usuário atual, o &kdesu; irá executar o comando com esse usuário. Se não puder ser alterado, o comando é executado com o usuário `usuário` (o 'root' por padrão).

  O `arquivo` é avaliado da seguinte forma: se o `arquivo` começar com uma `/`, é usado como um arquivo absoluto. Caso contrário, é tratado como o nome de um arquivo de configuração global do &kde;.

`-i` `nome do ícone`

- Indica o ícone a usar na janela da senha. Você poderá indicar apenas o nome, sem qualquer extensão.

  Por exemplo, para executar o &konqueror; como gerenciador de arquivos e mostrar o ícone do &konqueror; na janela da senha:

      $(kde4-config --path libexec)kdesu  -i konqueror
      -c "konqueror --profile filemanagement"

`-n`

- Não mantém a senha. Isto desabilita a opção Lembrar senha no diálogo de senha.

`-p` `prioridade`

- Indica o valor da prioridade. A prioridade é um número qualquer entre 0 e 100, onde o 100 corresponde à prioridade máxima e o 0 à mínima. O valor padrão é 50.

`-r`

- Usa o escalonamento em tempo real.

`-s`

- Interrompe o serviço do kdesu. Veja sec-password-keeping.

`-t`

- Permite enviar o resultado para o terminal. Isto desativa a memorização de senhas e é amplamente usado para fins de depuração. Se você quiser executar um aplicativo no modo de console, use o comando `su` normal.

`-u` `usuário`

- Embora a utilização mais comum do &kdesu; seja rodar um comando como superusuário, você poderá indicar qualquer nome de usuário e a senha apropriada.

## Mecanismos internos

### Autenticação no X

O programa que você executar rodará com o ID do usuário 'root' e normalmente não terá permissão de acesso ao seu terminal do X. O &kdesu; contorna isto adicionando um cookie de autenticação para seu terminal em um arquivo `.Xauthority` temporário. Após o comano terminar, este arquivo será removido.

Se você não usa cookies no X, você estará por si mesmo. O &kdesu; detectará isso e não adicionará um cookie, mas você terá que certificar-se de que o 'root' tem permissão de acesso ao seu terminal.

### Interface para o `su`

O &kdesu; usa o `su` do sistema para adquirir privilégios. Nesta seção, serão apresentados os detalhes de como o &kdesu; faz isso.

Uma vez que algumas das implementações do `su` (&ie;, a da &RedHat;) não desejam obter a senha a partir do `stdin`, o &kdesu; 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 &kdesu; 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 &kdesu; executa um pequeno programa chamado kdesu_stub. Este programa (executado como usuário alvo), solicita algumas informações do &kdesu; 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.

### Verificação da senha

O &kdesu; verificará a senha que você inseriu e fornecerá uma mensagem de erro se ela não estiver correta. A verificação é feita executando um programa de teste `/bin/true`. Se ele funcionar, a senha é assumida como correta.

### Mantendo a senha

Para sua comodidade, o &kdesu; implementou um recurso para lembrar senha. Se você está preocupado com a segurança, você deve ler este parágrafo.

Permitir ao &kdesu; lembrar-se da senha abre uma (pequena) janela na segurança de seu sistema. Obviamente, o &kdesu; não permitirá ninguém além de seu ID de usuário usar as senhas, mas, se feito sem cautela, isto diminuirá o nível de segurança do `root` para o de um usuário normal (você). Um hacker que quebre sua conta, poderá obter acesso de `root`. O &kdesu; tenta evitar isto. O esquema de segurança que ele usa é, em minha opinião pelo menos, razoavelmente seguro e está explanado aqui.

O &kdesu; usa um serviço chamado kdesud. O serviço procura em um soquete &UNIX; no `/tmp` por comandos. O modo do soquete é 0600, de modo que somente seu ID de usuário pode conectar-se à ele. Se a lembrança de senha estiver habilitada, o &kdesu; executa comandos por meio deste serviço. Ele escreve o comando e a senha do `root` no soquete e o serviço executa o comando usando o `su`, como descrito anteriormente. Após isso, o comando e a senha não são jogados fora. Ao invés disso, eles são mantidos por um determinado período de tempo. Este é o valor do tempo de espera do módulo de controle. Se outra solicitação para o mesmo comando vier dentro deste período de tempo, o cliente não precisará fornecer a senha. Para impedir que hackers que possam quebrar sua conta roubem as senhas do serviço (por exemplo, atacando um depurador), o serviço é instalado com o ID de grupo 'nogroup'. Isto deve evitar que todos os usuários normais (incluindo você) obtenham a senha a partir do processo kdesud. Além disso, o serviço configura a variável de ambiente `DISPLAY` para o valor que ela tinha quando ele iniciou. A única coisa que o hacker pode fazer é executar um aplicativo em sua tela.

Um ponto fraco neste esquema é que os programas que você executa provavelmente não foram escritos com a segurança em mente (como programas setuid `root`). Isto significa que eles podem ter sobrecargas de buffer ou outros problemas e um hacker pode explorá-los.

O uso do recurso de lembrar a senha é um disputa entre segurança e conforto. Eu o encorajo a pensar no que foi dito acima e decidir por si mesmo se deseja usá-lo ou não.

## Autor

&kdesu;

Direitos autorais 2000 de &Geert.Jansen;

O &kdesu; é escrito por &Geert.Jansen;. Ele foi em parte baseado no &kdesu; versão 0.3 de Pietro Iglio. Pietro e eu concordamos em manter este programa no futuro.

O autor pode ser encontrado por meio de e-mail em &Geert.Jansen.mail;. Por favor, relate qualquer erro que encontrar para mim de modo que eu possa concertá-lo. Se você tiver uma sugestão, sinta-se à vontade para contatar-me.

Tradução por Marcus Gama marcus.gama@gmail.com

&underFDL; &underArtisticLicense;