X.org trabalhando sem socket no chroot?

6

Eu tenho uma configuração chroot e tenho executado aplicativos gráficos sem problemas. A única configuração que fiz foi definir DISPLAY=:0 e funciona. No entanto, eu sempre achei que os soquetes de domínio Unix eram usados para o X11, então não consegui descobrir por que isso estava funcionando. Eu fiz uma pequena escavação e acontece que eu estava certo. Meu servidor X.org é lançado com o -nolisten tcp flag e tenho um soquete de domínio unix em /tmp/.X11-unix , mas de alguma forma meu chroot pode iniciar aplicativos gráficos naquela tela do X11 sem nenhum soquete. Eu nunca liguei o socket ao chroot, na verdade eles nem estão no mesmo sistema de arquivos. /tmp/.X11-unix está completamente vazio no chroot. Como é possível que meu chroot possa iniciar aplicativos gráficos no meu monitor X11?

    
por Scoopta 18.10.2016 / 23:46

1 resposta

2

O servidor X também suporta sockets abstratos, que funcionam de forma idêntica a sockets UNIX, e têm nomes de caminhos semelhantes aos sockets UNIX, mas os caminhos começam com um carácter NUL. Veja a documentação para "resumo" na página do manual unix (7) . Um soquete abstrato efetivamente existe em todos os namespaces e chroots do sistema de arquivos; você não precisa vincular nada ao chroot ou namespace para usá-lo.

Talvez o servidor X e o cliente estejam usando um soquete abstrato para se comunicar? Os clientes X que usam as bibliotecas do cliente X padrão tentarão usar automaticamente um soquete abstrato, antes de eles tentarem usar o soquete padrão do UNIX. Na libxcb, consulte _xcb_open e _xcb_open_abstract em src / xcb_util.c .

    
por 19.10.2016 / 20:30

Tags