Next Previous Contents

5. O pam_xauth

Um problema comum que acontece com alguns Linux pode ser descrito da seguinte forma: você quer executar um determinado aplicativo gráfico que necessita de poderes de superusuário, aí você abre um xterm e executa um su -, faz o login, e executa o comando, somente para ver uma mensagem de erro como a abaixo:

$ su -c /usr/X11R6/bin/xeyes
Password: 
Xlib: connection to "myhost.example.org:0.0" refused by server
Xlib: Client is not authorized to connect to Server
Error: Can't open display: myhost.example.org:0.0
                
Tudo bem, o xeyes não é um comando deste tipo, mas serve para ilustrar o caso.

O próximo passo seria habilitar a conexão ao nosso host, usando o xhost:

$ xhost +localhost +myhost.example.org
localhost being added to access control list
myhost.example.org being added to access control list
                
Agora estamos prontos para tentar novamente o comando anterior, que irá funcionar como pretendido.

Para um host que só tem um usuário conectado a qualquer tempo, não há problemas nesta abordagem, mas se o nosso host é ``visitado'' por outros usuários, corremos o risco de sofrer algum tipo de abuso.

A solução mais simples é instalar e configurar o pam_xauth. O pam_xauth automaticamente troca os magic-cookies entre o usuário que iniciou a sessão e o alvo do comando su. No exemplo acima, o pam_xauth automaticamente acrescenta o magic-cookie de nossa sessão gráfica para o superusuário, e podemos usar o cliente gráfico sem maiores problemas.

Para configurar o pam_xauth, basta acrescentar a seguinte linha ao arquivo /etc/pam.conf, ou ao arquivo /etc/pam.d/su (se existe o diretório /etc/pam.d, automaticamente o arquivo /etc/pam.conf é ignorado, se existir):


session optional /lib/security/pam_xauth.so 

A partir deste momento, não precisamos trocar cookies com os usuários locais que são acessados usando o su, nem precisamos ``abrir'' nosso servidor X com o xhost + e suas variações.
Next Previous Contents 1