Usando BASH para determinar se o encaminhamento X11 está habilitado do SSH

3

Após o login em uma rede via SSH, o shell padrão da rede sendo usado é o BASH.
É então possível executar aplicações que utilizam gráficos apenas se o encaminhamento do X11 tiver sido ativado, o que geralmente faço através da opção -X durante o login:

ssh -X [email protected]

Percebo que, quando ativada, a variável de ambiente DISPLAY existe e é definida como DISPLAY=localhost:11.0 ; no entanto, nada impede que o usuário exporte uma variável de ambiente com o mesmo nome, fazendo com que pareça que foi ativada .

Existe uma maneira do bash shell ou de um script bash para determinar se o X11 Forwarding está habilitado?

    
por John 04.01.2016 / 19:55

2 respostas

6

Primeiro, por que ? Por que um usuário deveria fingir exibir? No entanto, vejo duas soluções alternativas:

  1. readonly DISPLAY em bashrc / profile. Se executado logo no login, o usuário não poderá definir o DISPLAY depois.
  2. %código%. Consulta algumas informações do X11. Retorna um erro se nenhuma sessão X11 existir
por 04.01.2016 / 20:21
3

Testar DISPLAY é a coisa certa. Você não pode fazer melhor, e qualquer tentativa de ser mais inteligente é muito provável que doer mais do que ajuda.

Sim, é claro, o usuário pode mentir e definir DISPLAY como um valor incorreto. Mas o usuário também pode desligar seu monitor; você nunca tem garantia de que eles verão o que você mostra. Se o usuário mentiu, você não tem como saber de qualquer maneira. É possível que DISPLAY seja definido como um valor que faça com que as informações sejam exibidas em outro lugar (geralmente em outra sessão do mesmo usuário). Por outro lado, é possível que DISPLAY seja não definido ou definido como um valor inválido, mesmo que haja um valor válido, mas você não tem como saber qual seria esse valor.

É claro que é possível que DISPLAY seja definido, mas você não pode se conectar ao servidor X. Nesse caso, a melhor coisa a fazer é imprimir uma mensagem de erro clara. Se DISPLAY for definido, mas não puder ser usado, isso indicará uma configuração incorreta em algum lugar e você deverá transmitir essa informação ao usuário.

    
por 05.01.2016 / 02:19

Tags