X11: Cliente não autorizado ao chamar com sudo [duplicado]

1

Estou tentando fazer o equivalente a:

$ sudo -u myuser DISPLAY=:1 xterm

No entanto, isso me causa o seguinte erro

Client is not authorized to connect to Server

Por outro lado, posso fazer isso muito bem:

$ sudo -u -i myuser
$ DISPLAY=:1 xterm

Por que o servidor X não permite que eu inicie um aplicativo baseado em X11 diretamente como um usuário diferente, e há alguma maneira que eu possa explicitamente permitir isso?

    
por Lorin Hochstein 03.10.2012 / 20:28

2 respostas

1

Permitir que outro usuário se conecte ao seu servidor X significa que ele pode ver sua tela, ver o que você está digitando (como senhas), matar seus aplicativos (encerrando a conexão com o servidor X) e desconectar você ele mata o gerenciador de janelas, atrai janelas falsas ... Com isso em mente, é fácil entender por que não é permitido por padrão.

Para permitir que outro usuário acesse seu servidor X, você pode dar a ele o código de acesso para seu servidor (veja a saída de xauth list "$DISPLAY" ou se o outro usuário é local, execute xhost +si:localuser:myuser

    
por 03.10.2012 / 23:45
1

Se você tiver a senha do myuser ou uma chave em ~ / .ssh / authorized_keys do myuser, e seu sistema não suportar a sintaxe xhost +si:localuser , você pode tentar ssh -X myuser@localhost xterm

O -X habilita o encaminhamento X sobre essa conexão ssh, criando um novo servidor X virtual , acessível apenas àquele outro usuário, que encaminha solicitações ao seu servidor X sem abri-lo a nenhum processo executado por qualquer usuário no sistema, que é o que geralmente acontece quando xhost atende necessidade urgente ou preguiça ou ICBFRTFM resultando em xhost +localhost .

Esse método também funciona (e mostra todo o seu potencial) quando o usuário está em uma máquina remota.

Há alguma sobrecarga no encaminhamento do X sobre o ssh como este, mas a menos que você esteja executando algo intensamente gráfico (como um jogo 3D), provavelmente não perceberá nenhuma queda de desempenho. Adicionar a opção -o Ciphers=arcfour ao ssh pode melhorar o desempenho.

(BTW, executei programas 3D como clientes de segunda vida em uma conexão ssh -X como esta, conectando-me a outra máquina em minha LAN doméstica. Não é ótimo, mas funciona bem o suficiente para fins de teste)

    
por 04.10.2012 / 00:29

Tags