由于某种原因,我必须执行xhost +SI:localuser:root
才能允许用户使用 GUI root
。我已将此命令放在 shell 脚本中,它将在启动时执行upstart
。当我以另一个用户身份手动执行此命令或此脚本时,它可以正常工作。但是当此命令执行此脚本时upstart
不起作用。
root
我也尝试通过以脚本中的用户以外的身份执行此命令
sudo -H -s otheruser xhost +SI:localuser:root
这也不起作用。
如何root
在系统启动时允许用户使用 GUI?
谢谢你的时间!
答案1
“用户的 GUI root
” 被认为是有害的*,但是,这里是对您的问题的解释:
xhost
告诉 X 服务器它可能/不可能接受来自其他主机的连接。
运行脚本时upstart
,没有用户登录并启动 X 服务器。因此,xhost
没有人可以对话。
您需要延迟执行xhost
命令,直到您登录之后。xhost
还需要定义DISPLAY
环境变量(以便它可以找到 X 服务器)。man X
显示格式DISPLAY
:hostname:displaynumber.screennumber
。
答案:您无法运行xhost
——upstart
上下文不正确。
root
是无所不能的,图形程序并不会向你展示它们所做的一切。