Não é possível conectar ao servidor X: 0.0 como superusuário

7

Quando estou on-line, recebo o seguinte erro e a ferramenta não inicia:

[root@dhcppc9 lin64]# ./ise
No protocol specified
_pn: cannot connect to X server :0.0

Mas tudo está bem quando não sou um superusuário. Por que isso?

Editar

[root@dhcppc9 lin64]# export $(dbus-launch)
No protocol specified

alguma sugestão?

[root@dhcppc9 lin64]# xhost [+]
No protocol specified
xhost:  unable to open display ":0.0"
    
por msz 31.01.2014 / 10:21

4 respostas

10

Um programa X precisa de duas informações para se conectar a um monitor X.

  • Ele precisa do endereço da exibição, que normalmente é :0 quando você está conectado localmente ou :10 , :11 , etc. quando você está conectado remotamente (mas o número pode mudar dependendo de quantas conexões X estão ativas). O endereço da exibição é normalmente indicado na variável de ambiente DISPLAY .

  • Precisa da senha para a exibição. X senhas de exibição são chamadas de cookies mágicos . Cookies mágicos não são especificados diretamente: eles são sempre armazenados em arquivos de autoridade X, que são uma coleção de registros do formulário “display :42 has cookie 123456 ”. O arquivo de autoridade X é normalmente indicado na variável de ambiente XAUTHORITY . Se $XAUTHORITY não estiver definido, os programas usarão ~/.Xauthority .

Veja Abra uma janela em um display X remoto (por que" Não é possível abrir a tela ")? para obter mais detalhes.

No seu caso, DISPLAY está definido, mas os programas evidentemente não conseguem encontrar o arquivo de cookie. Verifique o valor de XAUTHORITY em sua sessão e em su .

Se XAUTHORITY não estiver definido em sua sessão e su definir a variável de ambiente HOME como o diretório inicial do root, será necessário definir XAUTHORITY to /home/msz/.Xauthority , em que /home/msz é seu diretório inicial.

Se su remover XAUTHORITY do ambiente, coloque-o de volta ou configure su para não fazer isso.

Se o seu diretório home estiver em alguns sistemas de arquivos como o NFS, o root pode não conseguir lê-lo diretamente. Nesse caso, você pode copiar o arquivo .Xauthority para um local diferente em um sistema de arquivos não-NFS:

XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY
    
por 31.01.2014 / 23:47
3

Você está executando o xhost como root!

execute xhost como usuário normal xhost + , então torne-se root e tente novamente.

btw como outros apontaram xhost + permite que qualquer usuário de qualquer host

    
por 31.01.2014 / 13:48
0

XAUTHORITY para mim foi definido como um arquivo que não existia mais:

$ echo $XAUTHORITY

/tmp/xauth-1000-_0

Então eu fiz

unset XAUTHORITY

e foi então capaz de se conectar ao meu aplicativo como root usando o kdesudo (neste caso kdesudo bleachbit )

    
por 11.01.2016 / 14:30
0

Executar como usuário normal

xhost + localhost

depois, ative o superusuário

sudo su 

finalmente, vá para o exemplo do servidor

cd /usr/local/Ampps

finalmente executado     ./Ampps

obrigado em 2020

    
por 19.10.2018 / 20:56

Tags