gksu: Gtk-WARNING **: não é possível abrir a tela:: 0

40

De repente, o gksu parou de funcionar para mim:

~$ gksu gparted

(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0

O mesmo acontece com gparted-pkexec:

~$ gparted-pkexec 
No protocol specified

(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0

O que poderia estar causando isso?

Não estou executando isso por SSH ou VNC. Este é o host local em uma janela de terminal normal .

d_inevitable
fonte
Você não trabalha em uma interface gráfica do usuário ou tenta executar um programa em um sistema (por exemplo, via ssh) que nenhuma interface gráfica fornece.
AB
11
@AB Devo esclarecer que isso não é via ssh. Está no host local em uma janela de terminal muito normal. A abertura de informação dividida no menu do aplicativo tem o mesmo resultado.
precisa saber é o seguinte
Você não precisa usar gksupara executar o GParted. gpartedusa o polkit para obter privilégios elevados.
Muru
@muru quando eu corro gpartedsem gksureceberRoot privileges are required for running gparted.
d_inevitable 26/04/2015
Ok, tente gparted-pkexec(sem gksu) ou gksu gpartedbin.
Muru

Respostas:

67

Se estiver executando o Ubuntu 17.10 ou mais recente, esse problema poderá surgir quando um aplicativo não tiver sido atualizado com suporte completo para Wayland. Como solução alternativa até que o aplicativo seja atualizado, você pode executar

xhost +SI:localuser:root

o que permitirá ao rootusuário exibir aplicativos em sua área de trabalho. Consulte também estas perguntas e respostas para outras soluções possíveis: Por que o gksu / gksudo ou o lançamento de um aplicativo gráfico com sudo não funciona com o Wayland?

fonte

Olho de Cutton
fonte
@MDMower Thx para edição, aprendeu algo novo =)!
Cutton Eye
@pomsky Thx por adicionar o link;)!
Cutton Eye
Na versão 18.04, o X-Org será usado novamente como padrão. Portanto, esse problema deve desaparecer então. Veja
Cutton Eye
11

Tente executar xhost +localhostno seu terminal e, em seguida, execute o comando novamente. Isso permite que todos os usuários do seu sistema (ou seja, root) abram janelas na tela. Certifique-se de usar + localhost e não simplesmente +, pois é mais seguro permitir conexões apenas de hosts locais do que de qualquer lugar.

Para tornar isso permanente, edite o ~/.xinitrcarquivo assim:

Corre gedit ~/.xinitrc

Edite o arquivo para ficar assim (ele deve estar vazio no início):

#! /bin/bash
xhost +localhost &

Agora salve o arquivo, efetue logout e logon. Agora tudo deve funcionar perfeitamente com o sudo.

Não consigo reproduzir o seu problema no 14.04, mas isso funcionou para mim no passado quando o sudo / gksu lançou esse erro.

Fontes:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubuntu.com/CustomXSession
Mark Paskal
fonte
11
Isso realmente funciona. Então, isso significa que é uma restrição de controle de acesso? Alguma idéia de qual poderia ser a causa disso?
precisa saber é o seguinte
Sim, é um recurso de segurança do X. Ele permite apenas conexões do seu usuário com o xserver até que seja dito o contrário, eu acho. Não sei ao certo por que isso é necessário para alguns aplicativos e não para outros, e não tenho idéia de por que isso seria feito por todas as coisas. Talvez você estivesse mexendo e reforçando a segurança em algum lugar?
Mark Paskal
2
Isso gera um erro: xhost: incapaz de abrir a tela ""
IgorGanapolsky
5
Em redis , foi sugerido o uso xhost +local:. Depois disso, pude iniciar o gparted a partir do terminal, mas o uso xhost +localhostnão funcionou.
rmin 6/09/17
11
De fato! xhost +local:mina fixa! Produz o non-network local connections being added to access control listque é necessário.
Lobner
5

Execute o seguinte em seu terminal:

nano /home/user/.bashrc # user = name of your user

Adicione a seguinte linha no final.

export XAUTHORITY=$HOME/.Xauthority
Wilder Hernández García
fonte
2
Seria útil se você pudesse adicionar alguma explicação de como isso resolve o problema e se ele tem efeitos colaterais adversos?
Geoff