以 root 身份运行 X11 应用程序时出错

以 root 身份运行 X11 应用程序时出错

当我以 root 身份运行应用程序时,出现这个奇怪的错误。

**(gedit:630): WARNING **: could not open X display
No protocol specified
Unable to init server

(gedit:630): Gtk-WARNING **: Cannot open display: :0.0

我正在使用 Arch Linux。我使用su -root 身份登录。当我运行 X 服务器时,会出现此错误。另外,如果我复制.Xauthority到它/root/的工作原理没有错误。

答案1

您的问题目前的状态确实不清楚。

我相信你必须导出显示。

export DISPLAY='IP:0.0'

查看答案这里

检查服务器的 sshd_config (通常/etc/ssh/sshd_config),并确保X11Forwarding使用该行启用该选项

X11Forwarding yes

如果X11Forwarding不指定,则默认为否。

答案2

运行su -会删除几乎所有环境变量。 GUI 应用程序需要两个环境变量来了解如何连接到 GUI 环境:DISPLAYXAUTHORITY。看在远程 X 显示器上打开窗口(为什么“无法打开显示器”)?以获得更详细的解释。该命令su -保留DISPLAY但不保留XAUTHORITY。因此,您的 GUI 应用程序知道连接到哪里,但没有必要的密码(“cookie”)。

无需以 root 身份登录,只需运行程序而不更改大多数环境变量: run su,而不是su -

如果你想做复杂的事情,请阅读我可以以 root 身份在另一个用户的桌面上启动图形程序吗?

相关内容