Quando estou online, 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 está tudo bem quando eu não sou um superusuário. Porquê isso?
Editar
[root@dhcppc9 lin64]# export $(dbus-launch)
No protocol specified
alguma sugestão?
Além disso
[root@dhcppc9 lin64]# xhost [+]
No protocol specified
xhost: unable to open display ":0.0"
export $(dbus-launch)
ou usarxhost [+]
para poder iniciar programas usando o X e sua conta de superusuário.$ xhost
para ver o acesso atual e$ xhost +
habilitar o acesso de qualquer host. Você costuma fazer isso a partir de um terminal virtual que você sabe com certeza que pode gerar programas usando o X.echo $DISPLAY
mostra? Qual usuário pertence ao processo xserver, ao qual você deseja usar? (você pode descobrir o último usando por exemplops faux
)Respostas:
Um programa X precisa de duas informações para se conectar a um monitor X.
Ele precisa do endereço da tela, que normalmente é
:0
quando você está conectado localmente ou:10
,:11
etc., quando está conectado remotamente (mas o número pode mudar dependendo de quantas conexões X estiverem ativas). O endereço da tela é normalmente indicado naDISPLAY
variável de ambiente.Ele precisa da senha para a exibição. As senhas de exibição X são chamadas de cookies mágicos . Os 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 no formato “display
:42
has cookie123456
”. O arquivo de autoridade X é normalmente indicado naXAUTHORITY
variável de ambiente. Se$XAUTHORITY
não estiver definido, os programas serão usados~/.Xauthority
.Consulte Abrir uma janela em um monitor X remoto (por que "Não é possível abrir o monitor")? para mais detalhes.
No seu caso,
DISPLAY
está definido, mas os programas evidentemente não conseguem encontrar o arquivo de cookies. Verifique o valor deXAUTHORITY
na sua sessão e abaixosu
.Se
XAUTHORITY
não estiver definida na sua sessão esu
define aHOME
variável de ambiente para o diretório home do usuário root, então você precisa definirXAUTHORITY
para/home/msz/.Xauthority
onde/home/msz
é seu diretório home.Se for
su
removidoXAUTHORITY
do ambiente, coloque-o de volta ou configuresu
para não fazer isso.Se o seu diretório pessoal estiver em alguns sistemas de arquivos como o NFS, o root poderá não conseguir lê-lo diretamente. Nesse caso, você pode copiar o
.Xauthority
arquivo para um local diferente em um sistema de arquivos não NFS:fonte
ln -s /home/otheruser/.Xauthority ~
Você está executando o xhost como root!
execute xhost como o usuário normal
xhost +
, torne-se root e tente novamente.btw como outros apontaram
xhost +
permite que qualquer usuário de qualquer hostfonte
xhost
não funcionem. Se isso acontecer, pelo menos corraxhost +localhost
, nãoxhost +
!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 então consegui me conectar ao meu aplicativo como root usando o kdesudo (neste caso
kdesudo bleachbit
)fonte
Executar como usuário normal
habilite o superusuário
finalmente vá para o exemplo do servidor
finalmente execute ./Ampps
agradeça-me em 2020
fonte
Isso funcionou para mim no fedora 30
fonte