# Manual do &kdesu;

&Geert.Jansen; &Geert.Jansen.mail;
Nuno Donato

    nunodonato@iol.pt

Tradução
2000 &Geert.Jansen;
&FDLNotice;
2005-06-07
1.00.00

O &kdesu; é um interface gráfico para o comando &UNIX; `su`.

KDE su senha root

## Introdução

Bem-vindo ao &kdesu;! O &kdesu; é uma interface gráfica para o comando Unix `su`, para o ambiente de trabalho K. Permite-lhe executar um programa como um utilizador diferente, fornecendo a senha desse utilizador. O &kdesu; é um programa sem privilégios e usa o `su` do sistema.

O &kdesu; tem uma função adicional: permite ao utilizador recordar as senhas. Se estiver a usar esta funcionalidade, necessita apenas de introduzir a senha uma vez para cada comando. Veja em para mais informações e uma análise à segurança.

Este programa pretende ser executado a partir da linha de comandos ou de ficheiros `.desktop`. Embora seja pedida a senha do root, usando uma janela gráfica, é considerada como sendo mais uma associação linha de comando <-> gráfica em vez de um puro programa gráfico.

## Usar o &kdesu;

A utilização do &kdesu; é fácil. A sintaxe é a seguinte:

`kdesu` `-c` `-d` `-f` ficheiro `-i` nome do ícone `-n` `-p` prioridade `-r` `-s` `-t` `-u` utilizador `--nonewdcop` comando arg1 arg2 `kdesu` Opções Genéricas do &kde; Opções Genéricas do Qt

As opções da linha de comandos são explicadas em baixo.

`-c programa`

  Isto indica que o programa é executado como 'root'. Tem de ser passado um argumento. Assim se, por exemplo, quiser iniciar um novo gestor de ficheiros, iria introduzir na linha de comandos: ``kdesu`-c kfm -sw```

`-d`

  Mostra informações sobre a depuração.

`-f ficheiro`

  Esta opção permite um uso eficiente do &kdesu; em ficheiros `.desktop`. Isto diz ao &kdesu; para examinar o ficheiro indicado em ficheiro. Se este ficheiro puder ser alterado pelo utilizador actual, o &kdesu; irá executar o comando com esse utilizador. Se não puder ser alterado, o comando é executado com o utilizador utilizador (o 'root', por omissão).

  O FICHEIRO é avaliado da seguinte maneira: se o FICHEIRO começar com um "/", é tomado como um nome de ficheiro absoluto. De outra maneira, é tomado como o nome de um ficheiro de configuração global do &kde;. Por exemplo: para configurar o gestor de autenticação do &kde;, kdm, o utilizador poderá emitir um `kdesu `-c kdmconfig -f kdmrc``

`-i` nome do ícone

  Indique o ícone a usar na janela da senha. Poderá indicar apenas o nome, sem qualquer extensão.

  Por exemplo, para executar o `kfmclient` e mostrar o ícone do &konqueror; na janela da senha:

      kdesu  -i konqueror kfmclient

`-n`

  Não memorizar a senha. Isto desactiva a opção "Guardar a senha" na janela correspondente.

`-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 por omissão é 50.

`-r`

  Usa o escalonamento em tempo-real.

`-s`

  Pára o servidor do 'kdesu'. Veja em .

`-t`

  Permite enviar o resultado para o terminal. Isto desactiva a memorização de senhas. É largamente usado para efeitos de depuração; se você quiser executar uma aplicação no modo de consola, use o comando "`su`" normal.

`-u` utilizador

  Embora a utilização mais comum do &kdesu; seja correr um comando como super-utilizador, poderá indicar qualquer nome de utilizador e a senha apropriada.

## Detalhes Internos

### Autenticação X

O programa que executar irá correr com o utilizador 'root' e, geralmente, não terá autorização para aceder ao seu ecrã do X. O &kdesu; contorna isto, adicionando uma 'cookie' de autenticação para o seu ecrã, num ficheiro temporário `.Xauthority`. Assim que o comando é terminado, o ficheiro é removido.

Se você não usar os 'cookies' do X, então estará por sua conta e risco. O &kdesu; irá detectar isto e não adicionará qualquer 'cookie', contudo dever-se-á certificar que é permitido ao 'root' aceder ao seu ecrã.

### Interface para o `su`

O &kdesu; usa o comando `su` do sistema para obter privilégios. Nesta secção, serão explicados os detalhes de como o &kdesu; faz isso.

Dado que algumas das implementações do `su` (ex.: a da &RedHat;) não querem ler a senha a partir do `stdin`, o &kdesu; cria um par PTY/TTY e executa o `su` com os seus descritores-padrão de ficheiros associados ao TTY.

Para executar o comando seleccionado pelo utilizador, em vez de uma linha de comandos interactiva, o &kdesu; usa o argumento `-c` com o `su`. Este argumento é entendido por todas as linhas de comando conhecidas, por isso deve funcionar sem problemas. O `su` passa o argumento `-c` para a linha de comandos de destino do utilizador, para que esta execute o programa. Um comando de exemplo: `su`root -c programa``.

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 com o utilizador de destino), pede alguma informação ao &kdesu; sobre o canal PTY/TTY (a parte do 'stdin' e 'stdout') e, a seguir, executa o programa do utilizador. A informação recebida é: o ecrã do X, uma 'cookie' de autenticação X (se disponível), o `PATH` e o comando a executar. A razão porque é usada uma parte do programa é que a 'cookie' do X contém informação privada e, por conseguinte, não pode ser passada na linha de comandos.

### Verificação de Senhas

O &kdesu; verificará a senha que o utilizador introduziu e dá uma mensagem de erro se não for correcta. A verificação é feita executando um programa de teste: /bin/true. Se obtiver sucesso, a senha é assumida como correcta.

### Guardar Senhas

Para o conforto do utilizador, o &kdesu; implementou a função Guardar a senha. Se estiver interessado em segurança, deverá ler este parágrafo.

Ao permitir que o &kdesu; guarde as senhas, abre um buraco (pequeno) na segurança do seu sistema. Obviamente, o KDE não permite que qualquer um use as senhas mas apenas o seu ID de utilizador mas, se isto for feito sem precauções, irá diminuir o nível de segurança do root para um utilizador normal (como você próprio). Um 'hacker' que entrar na sua conta, obterá acesso de root. O &kdesu; tenta prevenir isto. O esquema de segurança que usa é razoavelmente seguro e é explicado aqui.

O &kdesu; usa um servidor, chamado kdesud. O servidor espera num 'socket' UNIX em `/tmp` por comandos. O modo de permissões do 'socket' é 0600, de maneira a que apenas o seu utilizador possa ligar-se a ele. Se a opção Guardar a senha estiver activada, o &kdesu; executa os comandos através deste servidor. Escreva o comando e a senha do root, para que o 'socket' e o servidor executem o comando, usando o `su`, como descrito anteriormente. Depois disto, o comando e a senha não serão deitados fora. Em vez disso, são mantidas durante um espaço de tempo. Este é o tempo-limite do módulo de controlo. Se outro pedido para o mesmo comando chegar dentro deste período de tempo, o cliente não terá de fornecer a senha. Para não deixar que os 'hackers' entrem na sua conta, para roubar senhas do servidor (por exemplo, anexando um depurador), o servidor é instalado com 'set-group-id nogroup'. Isto deve fazer com que os utilizadores normais (incluindo você mesmo) não consigam obter senhas do processo kdesud. O servidor define ainda a variável de ambiente `DISPLAY`, com o valor que tinha quando foi iniciado. A única coisa que um 'hacker' pode fazer é executar uma aplicação no seu ecrã.

Um ponto fraco neste esquema é que os programas que você executar não são escritos, provavelmente, tendo em mente a segurança (como os programas que definem um setuid root). Isto significa que eles podem ter sobrecargas de 'buffers' ou outros problemas que um 'hacker' pode explorar.

O uso da função para guardar as senhas é um compromisso entre o conforto e a segurança. Será encorajado a pensar sobre isto e decidir por si mesmo, se quiser usar esta função ou não.

## Autor

&kdesu;

Copyright 2000 &Geert.Jansen;

O &kdesu; foi escrito por &Geert.Jansen;. É baseado no &kdesu; versão 0.3 de Pietro Iglio. O Pietro e eu acordámos que eu faria a manutenção deste programa no futuro.

O autor pode ser contactado através do e-mail em &Geert.Jansen.mail;. Por favor relate quaisquer erros que encontrar, de maneira a que eu os possa arranjar. Se tiver uma sugestão, sinta-se à vontade para me contactar.

&underFDL; &underArtisticLicense;