configuração xhost na inicialização

8

Eu sou capaz de definir o xhost na inicialização no Fedora editando /etc/gdm/Init/Defaulte, por exemplo, adicione:

/usr/bin/xhost +local:

Como semelhante pode ser feito no Ubuntu? Eu quero que o

/usr/bin/xhost +local:

O comando é executado quando o sistema está sentado no prompt de login.

yurtesen
fonte

Respostas:

11

O xhostcomando precisa de um servidor X ativo para ser executado; ele pode ser executado na tela de login, por exemplo, quando é lightdmcarregado. Você pode habilitá-lo editando /etc/lightdm/lightdm.confe adicionando a linha:

display-setup-script=/home/user/bin/xhost.sh

/etc/lightdm/lightdm.confarquivo de exemplo :

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/home/user/bin/xhost.sh

/home/user/bin/xhost.sharquivo de exemplo :

#!/bin/bash
xhost +

Funciona no Ubuntu 12.04.1 LTS, e era necessário ativar um aplicativo Java que precisasse do X e fosse executado pelo Tomcat 6.

George Litos
fonte
11
você pode precisar fazer o script executável xhost.sh com: chmod + x /home/user/bin/xhost.sh
George Litos
Funciona no Xubuntu 18.04, mas verifique se o script é executável como o @George Litos mencionado, caso contrário, seu sistema não inicializa.
José Tomás Tocino
2

Isso funcionou para mim:

Editar ~/.xinitrc:

export DISPLAY=":0.0"
xhost +
openbox

Nota: na minha configuração específica, estou executando apenas o openbox . Normalmente esse arquivo está vazio ou ausente no Ubuntu. Meu palpite é que você pode remover a linha "openbox" e funcionaria, mas não tenho como testá-la agora. Se não funcionar, substitua a última linha do seu comando do gerenciador de janelas.

lepe
fonte
1

~/.xinitrcnão funcionou para mim no Ubuntu 14.04, mas o seguinte em ~/.profile. Em cada login, GUI / terminal / SSH / etc ..., o script será executado, então eu redireciono stdoutpara silenciar a saída.

xhost +local: > /dev/null

Lucas
fonte
1

Eu tive o mesmo problema com o Ubuntu 17.10. Pode ser que meu sistema não esteja configurado corretamente. Enfim, no meu caso, eu adicionei

xhost + SI:localuser:root > /dev/null

na parte inferior do meu ~/.bashrcarquivo e funcionou. Não sei se é um risco à segurança. Partilho que, caso outra pessoa esteja na mesma situação, confio que a adição de raiz à lista de usuários anteriores do servidor X deve estar OK.

É sugerido aqui http://ubuntuhandbook.org/index.php/2017/10/ubuntu-17-10-tip-graphical-apps-doesnt-launch-via-root-sudo-gksu/

Você pode testá-lo diretamente no terminal primeiro:

$ xhost + SI:localuser:root
$ xhost -

A segunda linha garante que apenas aqueles na lista tenham acesso ao servidor X. Em seguida, tente "Editar como administrador", depois de clicar com o botão direito do mouse em um arquivo ou executar diretamente

$ pkexec gedit

Se isso não funcionar, é inútil tornar o comando permanente em ~ / .bashrc.

Para ser mais preciso, eu primeiro executei

$ xhost

para ver quais usuários tiveram acesso ao servidor X. Vi que o formato era SI:localuser:dominiconde dominicestá o meu nome de login. Então, eu usei o mesmo formato SI:localuser:root para adicionar o rootusuário.

Dominic108
fonte
0

Aqui está uma variante da resposta de @ GeorgeLitos, com estas alterações:

  • Não modifique diretamente /etc/lightdm/lightdm.conf, pois esse é um arquivo de propriedade do sistema que pode ser substituído por atualizações do sistema. Em vez disso, use o diretório de extensão /etc/lightdm/lightdm.conf.d/. Isso também significa que outras configurações não precisam ser duplicadas.
  • Não há necessidade de um script de shell separado; o comando pode ser colocado diretamente no arquivo de configuração.

Basta criar um arquivo (como root do usuário) /etc/lightdm/lightdm.conf.d/xhost.confcom este conteúdo:

[SeatDefaults]
display-setup-script=xhost +

Isso funciona no Ubuntu 16.04.5 LTS.

Ingo Karkat
fonte
-1

Edite o arquivo /etc/rc.local(com sudo) e adicione o comando antes do último comando ( exit 0).

yossile
fonte
11
Isso não vai funcionar (e eu tentei nunca menos e não funciona). Porque esse script não terá direitos de acesso para alterar essa configuração em primeiro lugar. Tem que ser feito como usuário lightdm?
yurtesen
-1

Adicione a seguinte linha ao /etc/xdg/lxsession/LXDE/autostart

xhost +local:
8dost
fonte