Uma possível explicação é que, devido a alguma alteração recente, o local do arquivo de cookies X mudou de ~/.Xauthority
para algum local indicado por $XAUTHORITY
. O arquivo de cookie X contém uma senha que os aplicativos X devem fornecer quando conectados ao servidor X.
(Veja a primeira parte de esta resposta para mais informações.)
Certifique-se de que a variável XAUTHORITY
não seja apagada por sudo
. Execute visudo
para adicionar esta linha ao arquivo sudoers
:
Defaults env_keep += XAUTHORITY
Uma possibilidade relacionada é que, se você não tiver XAUTHORITY
em seu ambiente, o cookie X será armazenado em ~/.Xauthority
. Se a variável de ambiente HOME
não for preservada por sudo
, os aplicativos X em execução em sudo
procurarão em ~root/.Xauthority
, que não possui o cookie correto. Existem três maneiras fáceis de resolver isso, do mais conveniente ao menos conveniente:
- Desative a opção
env_reset
emsudoers
(quando você pode executar comandos arbitrários como o usuário de destino, não há nenhum benefício real de segurança paraenv_reset
) e não ativeset_home
. Dessa forma,~/.Xauthority
undersudo
ainda se refere ao diretório inicial do usuário chamador. - Diga
sudo
para preservar a variávelXAUTHORITY
como acima e definaXAUTHORITY
no arquivo de inicialização de sua sessão X, mesmo que seja o valor padrão. -
Defina
XAUTHORITY
usando o diretório inicial do usuário chamador dentro da sessãosudo
, por exemplo. executandosudo env XAUTHORITY=${XAUTHORITY:-~/.Xauthority} xterm