Por que não consigo abrir o gparted na linha de comando?

0

Parece que não consigo iniciar o gparted na linha de comando. Eu estou usando o Trisquel 8 (baseado no Ubuntu 16.04) com o LXDE. Se eu tentar abri-lo, recebo o seguinte erro e nada acontece:

$ sudo gparted

(gpartedbin:7820): Gtk-WARNING **: cannot open display: 

No entanto, parece abrir bem no menu de aplicativos gráficos.

Pesquisei um pouco on-line e uma recomendação foi tentar:

xhost +localhost

No entanto, isso não ajudou. Aparentemente, parece que pode haver um problema com a abertura de aplicativos gtk a partir da linha de comando como root no Wayland; no entanto, estou usando o X11. Isso é apenas em um laptop local - sem sistemas ssh-ing ou remotos envolvidos.

Parece estranho, porque eu sempre fui capaz de abrir o gparted a partir da linha de comando no passado. Eu também tentei reinstalar o gparted e isso não pareceu ajudar.

Atualização:

Seguindo as sugestões do meuh nos comentários, adicionei DISPLAY=:0 ao arquivo / etc / environment, então ele deve ser passado ao usar o sudo. No entanto, ainda estou com um erro, mas agora mudou:

$ sudo gparted
No protocol specified

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

Parece que a variável DISPLAY está sendo passada, mas não tenho certeza do que significa essa mensagem 'sem protocolo'.

    
por Time4Tea 18.02.2018 / 17:18

1 resposta

2

Para acessar o X, você precisa das variáveis de ambiente DISPLAY e XAUTHORITY . Dependendo da configuração, o sudo pode excluí-los. Você pode verificar isso com sudo env para ver as variáveis de ambiente.

Para preservar seu ambiente de usuários, você pode usar sudo -E . Que tem a configuração pitfall HOME para seus usuários em casa, e arquivos de configuração podem obter permissões de arquivos erradas. No entanto, para evitar isso, sudo -H define HOME para /root .

Combine isso para o gparted:

sudo -EH gparted

Apenas as variáveis desejadas podem ser definidas com:

sudo env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gparted

Mensagens de erro:

cannot open display: significa que DISPLAY está vazio ou não existe.

no protocol specified significa que DISPLAY está definido e vaild, mas XAUTHORITY apontando para o cookie de autenticação não está definido ou o cookie é inválido. Alternativamente, xhost +SI:localuser:root permite acesso temporário ao X até o logout.

Semelhante vale para o acesso a Wayland com WAYLAND_DISPLAY e XDG_RUNTIME_DIR . Os problemas de acesso à raiz de Wayland também podem ser resolvidos com sudo -EH . Para detalhes e uma armadilha com XDG_RUNTIME_DIR veja Will Wayland já apoiou sudo gráfico?

    
por 18.02.2018 / 20:29

Tags