如何允许其他用户使用 X11vnc 连接到我的会话?

Mad*_*ist 5 permissions vnc x11 x11vnc

我正在尝试使用 x11vnc 来允许用户远程控制某些计算机。一般来说,这工作得很好,但有一个方面我在实施时遇到了困难。我想限制对特定用户帐户的访问,但 X11 会话所属的用户是不同的。

所以情况是:

  • 用户A已登录计算机
  • 用户 B 从 shell 手动启动 x11vnc
  • VNC-client V 从某处连接到它

问题是我只能以 root 或当前登录的用户身份启动 x11vnc,它不能像任何其他用户一样工作。有什么方法可以允许特定用户访问我的 X11 会话吗?

Sté*_*las 5

X 显示器受“密钥”保护,您需要提供该“密钥”才能连接。该密钥通常存储在用户的~/.Xauthority文件中。

为了允许其他人的应用程序(如 x11vnc)连接到他的 DISPLAY,用户必须向他提供该密钥或授予他访问其~/.Xauthority文件的权限。您可以通过执行以下操作来检索显示器的密钥。

xauth list "$DISPLAY"
Run Code Online (Sandbox Code Playgroud)

~/.Xauthority您可以通过更改权限(组所有权或 ACL)来授予您的访问权限。

其他用户可以通过环境变量指定要使用哪个权限文件XAUTHORITY,或者将特定显示的密钥添加到他自己的~/.Xauthority使用中xauth add


Jan*_*sen 2

如果您的问题是x11vnc由于无权访问 X 会话而无法启动,则您需要在以其他用户xhost +SI:localuser:other_username身份启动之前向其他用户授予访问权限x11vnc

不过,问题的标题听起来像是您想要限制对 VNC 服务器的访问。