Como executar o aplicativo GUI via ssh como outro usuário via sudo

3

Eu tenho o ssh configurado no meu servidor, e às vezes eu tenho que executar algum aplicativo gráfico nele. Funciona muito bem quando me conecto com a opção -X . Eu posso correr, e. %código%. No entanto, se eu alterar o usuário por google-chrome , não posso executar aplicativos GUI como este usuário.

Eu assumo que é algo com ambiente e DISPLAY, mas não sei o que fazer. Tentei adicionar sudo -i -u other_user , mas recebi uma mensagem de erro dizendo que não posso usá-lo com -E . Como posso executar aplicativos GUI via ssh como outro usuário?

    
por amorfis 28.09.2010 / 22:24

1 resposta

5

A maneira mais fácil é usar ssh -X para executar comandos como o outro usuário. Mas isso faz com que os aplicativos sejam executados de modo marcadamente mais lento, até mesmo localmente.

A opção -i informa sudo para reinicializar o ambiente. Aplicativos X exigem $DISPLAY e (em algumas configurações) $XAUTHORITY e podem usar outra variável de ambiente, como configurações de localidade. Tente sem -i , ou se você precisar usar -i , execute

sudo -i -u other_user \
  env DISPLAY="$DISPLAY" XAUTHORITY="${XAUTHORITY-$HOME/.Xauthority}" \
  xapplication

Mesmo se você se livrar de -i , talvez seja necessário fornecer XAUTHORITY explicitamente: por padrão (se a variável não estiver definida) é .Xauthority no diretório inicial.

Até agora, presumo que o outro usuário possa ler seu $XAUTHORITY . Mas esse não será o caso, a menos que você faça isso (por exemplo, com setfacl -m user:other_user:r $XAUTHORITY ).

Como alternativa, em vez de permitir que o outro usuário leia seu $XAUTHORITY , você pode copiar o cookie correto para outro arquivo que o usuário possa ler.

xauth extract -f - "$DISPLAY" |
sudo -u other_user xauth -f ~other_user/.Xauthority merge -

Observe que permitir que outro usuário acesse seu monitor permite que ele faça quase tudo com ele, incluindo o envio de falsos pressionamentos de tecla para os aplicativos. Então, se você estivesse mudando de usuário para isolamento, não conseguiria muito.

    
por 29.09.2010 / 02:26

Tags