Em geral, lembre-se de incluir seu sistema operacional (imagino que você esteja no Linux) e distribuição.
Por padrão, o servidor X não permite que outros usuários (por exemplo, root no seu caso) se conectem a uma instância X existente. Isso pode ser substituído pelo comando xhost +
, após o qual o root pode se conectar à sua sessão X existente.
Exportar o DISPLAY não deve ser necessário, tem certeza de que foi? Você deve estar ok simplesmente executando xhost +
e, em seguida, sudo gedit
ou qualquer outra coisa. Se for esse o caso ( e você não se importa com o pequeno risco de segurança ), você pode adicionar xhost +
ao seu ~/.bashrc
.
Como uma solução horrível, você pode executar sudo
especificando a variável $DISPLAY
:
sudo DISPLAY=:0 gedit
Para automatizar, você pode adicionar essas linhas ao seu ~/.bashrc
:
xhost +
alias sudo='sudo DISPLAY=:0'
Este é um hack horrível, e eu gostaria de saber como você conseguiu se colocar em uma situação onde é necessário :). Como eu disse no meu comentário acima, isso realmente deve funcionar fora da caixa no Ubuntu (e na maioria dos outros sistemas modernos de desktop Linux). A última vez que tive que mexer com xhost e DISPLAY quando eu estava trabalhando com RedHat cerca de 10 anos atrás ...