为什么startx创建了两个权限文件?

为什么startx创建了两个权限文件?

在我的笔记本电脑中,我安装了一个最小的 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
# 

没有安装显示管理器,也没有桌面环境。仅有的简约的窗口管理器X 服务器通过命令启动startx。现在startx调用xauth两次:

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

..和

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

/tmp/第一个在(例如)中创建权限文件/tmp/serverauth.DrFpkBArQq,第二个在 中创建权限文件$HOME/.Xauthority。文件内容如下:

# 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
# 

为什么有两个权限文件?

答案1

这是为了弥补某些罕见情况下的安全漏洞,在这种情况下,X 服务器将或不应该能够访问用户的~/.Xauthority$XAUTHORITY.例如,普通 cookie 文件可能位于共享驱动器上,并且可能已包含localhost:0不同计算机的 cookie。 X 服务器可以访问仅包含其自己的 cookie 的临时文件,如果startx可以访问该文件并且还没有该显示名称的 cookie,则相同的 cookie 会添加到普通文件中。看引入这个的提交错误#3078

相关内容