限制哪些本地用户可以连接到 X11 显示器

限制哪些本地用户可以连接到 X11 显示器

我的机器上运行着一个 X.org 服务器(没有 PAM、PolicyKit 等的 Gentoo Linux),使用 -nolisten tcp 禁用了传入的 TCP 连接。

是否可以建立一个白名单,指定哪些本地用户可以在该 X11 显示器上打开窗口?

编辑:我使用这个 systemd 单元启动我的 X 服务器:

[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

编辑2:我已将其修改为此...

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

...创建了${HOME}/.Xauthority...

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

... 并重新启动 X 服务器。瞧,授权现在是默认拒绝。为了授予特定用户访问权限,我已将 .Xauthority 复制到他们的主目录。

未使用 xhost 命令。

答案1

使用 Xorg – 是的,通过使用一种特殊的“服务器解释”地址:

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

或者,您可以为每个用户提供一份用于的 Xauthority 文件的副本Xorg -auth …

但是,X11 不是为多个用户访问同一显示器而设计的,每个客户端基本上都具有完全访问权限,因此这样做会引入一个巨大的安全漏洞——任何用户都可以监视整个屏幕、运行键盘记录器、授予其他任何人访问权限或撤销现有用户的访问权限。

答案2

您还可以使用以下命令禁用 xhost 安全性:

xhost +

相关内容