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_resetemsudoers(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,~/.Xauthorityundersudoainda se refere ao diretório inicial do usuário chamador. - Diga
sudopara preservar a variávelXAUTHORITYcomo acima e definaXAUTHORITYno arquivo de inicialização de sua sessão X, mesmo que seja o valor padrão. -
Defina
XAUTHORITYusando o diretório inicial do usuário chamador dentro da sessãosudo, por exemplo. executandosudo env XAUTHORITY=${XAUTHORITY:-~/.Xauthority} xterm