Como posso permitir que um usuário diferente se conecte à minha sessão usando o X11vnc?

4

Estou tentando usar x11vnc para permitir que usuários controlem remotamente determinados computadores. Isso funciona bem em geral, mas há um aspecto que tenho dificuldade em implementar. Eu quero restringir o acesso a uma conta de usuário específica, mas o usuário ao qual a sessão do X11 pertence é diferente.

Então a situação é:

  • O usuário A está logado no computador
  • O usuário B inicia x11vnc manualmente a partir do shell
  • VNC-client V conecta de algum lugar para ele

O problema é que eu posso apenas iniciar o x11vnc como root ou como o usuário atualmente logado, ele não funciona como qualquer outro usuário. Existe alguma maneira de permitir que um usuário específico acesse minha sessão do X11?

    
por Mad Scientist 30.07.2012 / 12:54

2 respostas

4

Os monitores X são protegidos por uma "chave" que você precisa fornecer para poder se conectar. Essa chave geralmente será armazenada no arquivo ~/.Xauthority do usuário.

Para permitir que o aplicativo de outra pessoa (como x11vnc) se conecte a seu DISPLAY, um usuário tem que lhe dar essa chave ou conceder-lhe acesso ao seu arquivo ~/.Xauthority . Você pode recuperar a chave do seu display fazendo isso.

xauth list "$DISPLAY"

Você pode conceder acesso ao seu ~/.Xauthority alterando suas permissões (propriedade do grupo ou ACLs).

O outro usuário pode especificar qual arquivo de autoridade usar por meio da variável de ambiente XAUTHORITY ou adicionar uma chave a uma exibição específica ao seu próprio ~/.Xauthority usando xauth add .

    
por 28.09.2012 / 23:28
2

Se o problema for que x11vnc não pode ser iniciado porque não tem acesso à sessão X, você precisa conceder acesso ao outro usuário com xhost +SI:localuser:other_username antes de iniciar x11vnc como o outro usuário .

O título da pergunta faz parecer que você quer restringir o acesso ao servidor VNC.

    
por 30.07.2012 / 22:06