Limita quais usuários locais podem se conectar ao display do X11

3

Eu tenho um servidor X.org em execução na minha máquina (Gentoo Linux sem PAM, PolicyKit etc), conexões TCP de entrada são desativadas com -nolisten tcp.

É possível estabelecer uma lista de permissões especificando quais usuários locais têm permissão para abrir janelas naquela tela do X11?

Editar: inicio meu servidor X com esta unidade de sistema:

[Unit]
Description=X Window System
Requires=systemd-user-sessions.service
After=systemd-user-sessions.service

[Service]
ExecStart=/usr/bin/xinit ${HOME}/.xinitrc -- -nolisten tcp vt09
User=myuser
Environment=SHELL=/bin/bash

[Install]
Alias=display-manager.service

Editar 2: eu modifiquei para isso ...

ExecStart=/usr/bin/xinit ${HOME}/.xinitrc -- -auth ${HOME}/.Xauthority -nolisten tcp vt09

... criado $ {HOME} /. Xauthority ...

mcookie | sed -e 's/^/add :0 . /' | xauth -q

... e reiniciou o servidor X. Voila, a autorização agora é negação padrão. Para conceder acesso a usuários específicos, copiei .Xauthority para o diretório inicial deles.

Os comandos

xhost não foram usados.

    
por user267565 28.10.2013 / 15:28

1 resposta

2

Com o Xorg - sim, usando um tipo especial de endereços "interpretados pelo servidor":

xhost +SI:localuser:root
xhost +SI:localuser:jim

Alternativamente, você poderia dar a cada usuário uma cópia do arquivo Xauthority que você usou para Xorg -auth … .

No entanto, o X11 não foi projetado para vários usuários acessando a mesma tela, e cada cliente basicamente tem acesso total, então você está introduzindo uma enorme falha de segurança ao fazer isso - qualquer usuário pode monitorar a tela inteira, executar um keylogger, conceda a ninguém mais acesso ou revogue o acesso para usuários existentes.

    
por 28.10.2013 / 15:56