Por que existem dois arquivos de autoridade criados pelo startx?

2

No meu laptop, tenho uma instalação mínima do servidor X:

# dpkg -l *xorg* *xinit* | grep '^.i'
ii  xinit                        1.3.4-1        i386         X server initialisation tool
ii  xorg-sgml-doctools           1:1.11-1       all          Common tools for building X.Org SGML documentation
ii  xserver-xorg                 1:7.7+7        i386         X.Org X server
ii  xserver-xorg-core            2:1.16.4-1     i386         Xorg X server - core server
ii  xserver-xorg-input-evdev     1:2.9.0-2      i386         X.Org X server -- evdev input driver
ii  xserver-xorg-video-intel     2:2.21.15-2+b2 i386         X.Org X server -- Intel i8xx, i9xx display driver
# 

Não há gerenciador de exibição instalado nem um ambiente de área de trabalho. Apenas o gerenciador de janelas minimalista e o servidor X são estipulados com o comando startx . Agora startx chama xauth duas vezes:

xauth -q -f "$xserverauthfile" << EOF
add :$dummy . $mcookie
EOF

.. e

xauth -q << EOF
add $displayname . $mcookie
EOF

Primeiro, cria o arquivo de autoridade em /tmp/ (por exemplo, /tmp/serverauth.DrFpkBArQq ) e o segundo cria o arquivo de autoridade em $HOME/.Xauthority . O conteúdo dos arquivos pode ser visto abaixo:

# ls -l /tmp/serverauth.DrFpkBArQq 
-rw------- 1 root root 48 Dec 31 00:41 /tmp/serverauth.DrFpkBArQq
# xauth -vf /tmp/serverauth.DrFpkBArQq list
Using authority file /tmp/serverauth.DrFpkBArQq
T60/unix:0  MIT-MAGIC-COOKIE-1  16b9dc1ae9969b5a807848b7ade44278
# 
# ls -l $HOME/.Xauthority 
-rw------- 1 root root 97 Dec 31 00:41 /root/.Xauthority
# xauth -v list
Using authority file /root/.Xauthority
T60/unix:0  MIT-MAGIC-COOKIE-1  16b9dc1ae9969b5a807848b7ade44278
T60:0  MIT-MAGIC-COOKIE-1  16b9dc1ae9969b5a807848b7ade44278
# 

Por que existem dois arquivos de autoridade?

    
por Martin 31.12.2016 / 00:04

1 resposta

2

Isso é para fechar uma falha de segurança em alguns cenários raros em que o servidor X pode ou não ser capaz de acessar o usuário ~/.Xauthority ou $XAUTHORITY . Por exemplo, o arquivo de cookie normal pode estar em uma unidade compartilhada e já pode conter um cookie para localhost:0 para uma máquina diferente. O servidor X obtém acesso a um arquivo temporário que contém apenas seu próprio cookie, e o mesmo cookie é adicionado ao arquivo normal se startx tiver acesso a ele e já não houver um cookie para esse nome de exibição. Veja o commit que introduziu este e bug # 3078 .

    
por 01.01.2017 / 01:47

Tags