$ xhost
access control enabled, only authorized clients can connect
xterm
作品:
$ docker run --rm -it --network host \
--volume ~/.Xauthority:/root/.Xauthority:ro \
--env DISPLAY \
alpine:3.19 sh -euxc 'apk add xterm; exec xterm'
chromium
打开一个窗口,似乎接收到按键,但窗口是空的(输出):
$ docker run --rm -it --network host \
--volume ~/.Xauthority:/root/.Xauthority:ro \
--env DISPLAY \
alpine:3.19 sh -euxc 'apk add chromium; exec chromium --no-sandbox'
如果我允许本地连接,xhost
它就可以工作:
$ xhost +local:
$ xhost
access control enabled, only authorized clients can connect
LOCAL:
$ docker run --rm -it --network host \
--volume ~/.Xauthority:/root/.Xauthority:ro \
--env DISPLAY \
alpine:3.19 sh -euxc 'apk add chromium; exec chromium --no-sandbox'
$ xhost -local:
人们可以在这里推测它启动了无权访问的非根进程/root/.Xauthority
,这就是它失败的原因。那么在哪个用户下呢?这样我就可以提供.Xauthority
给所有感兴趣的各方。我该如何调试这个?我该如何让它发挥作用?