![在 root 终端中运行任何与 Gnome 相关的内容都会出现错误](https://linux22.com/image/1295170/%E5%9C%A8%20root%20%E7%BB%88%E7%AB%AF%E4%B8%AD%E8%BF%90%E8%A1%8C%E4%BB%BB%E4%BD%95%E4%B8%8E%20Gnome%20%E7%9B%B8%E5%85%B3%E7%9A%84%E5%86%85%E5%AE%B9%E9%83%BD%E4%BC%9A%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF.png)
刚刚安装的 Debian 6.0.3,运行 Gnome 2.30.2。在 root 终端中,每当我尝试打开任何与 Gnome 相关的内容时,都会收到此错误:
unable to open display ":0.0"
有时其前缀为:
No protocol specified
我已将我的主机名添加到xhost
,并输入了xhost +[myhostname]
根的bashrc
,但当我打开根终端时,它失败了。帮忙?
编辑:我能让它工作的唯一方法是完全关闭访问控制,但我知道一定有更好的解决方案。
答案1
“ No protocol specified
”通常意味着您被拒绝访问 X11 显示。有几种方法可以实现您想要的效果:
指向
$XAUTHORITY
您的 Xauthority 文件。有时它位于~/.Xauthority
您的主目录中;对于 GNOME,它是位于 深处的一个临时文件/var
。以下方法在两种情况下都有效:echo $XAUTHORITY
只需使用和将环境变量复制到您的根终端export XAUTHORITY=...
。通过添加到其 PAM 配置来制作
su
Xauthority 的副本。pam_xauth
使用,并将其配置为在其选项中
sudo -s
包含“ ”。XAUTHORITY
env_keep
用于
gksu gnome-terminal
启动根终端。
通过从普通终端运行来添加
root
允许的用户xhost +si:localuser:root
。这样就不再需要 Xauthority。
做不是将计算机的主机名添加到xhost
,因为这不可靠(rDNS 问题),不适用于本地连接(仅限 TCP),并且不安全(允许任何用户连接到您的显示器)。