![“xhost +”产生访问控制已禁用消息但不起作用](https://linux22.com/image/1169376/%E2%80%9Cxhost%20%2B%E2%80%9D%E4%BA%A7%E7%94%9F%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E5%B7%B2%E7%A6%81%E7%94%A8%E6%B6%88%E6%81%AF%E4%BD%86%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
当我在 kubuntu 下输入命令时xhost +
我得到了答案:
访问控制已禁用,客户端可以从任何主机连接
但是当尝试以不同的用户身份(su - 用户名)运行 X 应用程序时我得到了答案:
错误:无法打开显示:
连接链接: 即使使用 xhost 访问,仍显示“无法打开显示”
编辑
是的,$DISPLAY 是空的。我显然习惯了它总是被正确设置。谢谢 Arjen。
总结
使用替代用户(su
)而不使用破折号(su username
,而不是su - username
)
答案1
X 应用程序尝试连接到环境变量 DISPLAY 中引用的 X 服务器。输入echo $DISPLAY
显示其当前值。它应该看起来像:0
或localhost:0
。
当使用 启动su
-shell时su - username
,所有环境变量将被清除。这是一种安全措施。
您可以在 su 模式下使用以下命令启动 X 应用程序DISPLAY=:0 xapplication
(:0
用命令显示的值替换echo
)。