Na maioria das vezes, as pessoas usam su
na linha de comando para se concederem privilégios de administrador de maneira que possam editar um arquivo de configuração importante. Mas também é possível encontrarmos usando su
quando se está trabalhando no console e é preciso usar uma aplicação gráfica. Quando você tenta executar uma aplicação gráfica enquanto está autenticado com um usuário diferente, você recebe o seguinte erro:
Xlib: connection to ":0.0" refused by server.
O problema é que as chaves usadas para autenticação em sessões X não são válidas quando se usa um usuário diferente. Esta medida de segurança parece zelosa demais, mas é uma herança do sistema de um tempo em que as sessões X foram desenhadas para ser executadas através da rede. Há duas respostas para este problema.
A primeira é ter certeza de que a nova conta pode ser autenticada no servidor X. Isso utiliza o comando xhost
para autenticação de novos usuários na janela da sessão X local. Apenas digite xhost +local:local com o usuário normal antes de trocar para o novo usuário e você verá 'non-network local connections being added to access control list' como saída. Agora é possível que você rode qualquer aplicação gráfica na mesma tela em que trocou de usuário. Se você quer ter este recurso a cada vez que você executa sua sessão X, simplesmente adicione o comando xhost
ao seu arquivo .bashrc: ele será executado automaticamente a cada vez que você abre um terminal Bash.
A segunda solução é ainda mais fácil. É a substituição do comando su
que transfere suas credenciais X para uma nova sessão automaticamente. O comando é sux
, que você precisará instalar manualmente pelo gerenciador de pacotes da sua distribuição. Uma vez instalado, digite sux novousuario
para trocar para o usuário com o qual você quer usar a visão X. Você perceberá que pode executar aplicações gráficas pela nova sessão sem nenhuma configuração adicional.
Mais em Truques de linha de comando.
3 respostas em “Linux sux”
[…] Linux sux […]
Tá, e como eu instalo o sux?
Bruno, depende da sua distribuição. No CentOS/Red Hat seria “yum install sux”, em distribuições baseadas no Debian seria “apt-get install sux” e por aí vai.