Answers:
该xhost
命令需要一个活动的X服务器来运行,它可以在登录屏幕上运行,例如在lightdm
加载时。您可以通过编辑/etc/lightdm/lightdm.conf
并添加以下行来启用它:
display-setup-script=/home/user/bin/xhost.sh
示例/etc/lightdm/lightdm.conf
文件:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/home/user/bin/xhost.sh
示例/home/user/bin/xhost.sh
文件:
#!/bin/bash
xhost +
它可以在Ubuntu 12.04.1 LTS上运行,并且需要启用X并由Tomcat 6运行的Java应用程序。
我在Ubuntu 17.10中遇到了相同的问题。可能是我的系统配置不正确。无论如何,我的情况是
xhost + SI:localuser:root > /dev/null
在我~/.bashrc
文件的底部,它可以正常工作。我不知道这是否有安全隐患。我同意,以防他人处于相同的情况,并相信将root添加到有特权的X服务器用户列表中应该可以。
您可以先在终端上直接对其进行测试:
$ xhost + SI:localuser:root
$ xhost -
第二行确保只有列表中的用户才能访问X服务器。右键单击文件或直接执行后,然后尝试“以管理员身份编辑”
$ pkexec gedit
如果这不起作用,那么在〜/ .bashrc中将命令永久化是没有意义的。
更精确地说,我首先执行
$ xhost
查看哪些用户有权访问X服务器。我看到格式是我的登录名SI:localuser:dominic
所在的位置dominic
。因此,我使用相同的格式SI:localuser:root
来添加root
用户。
这是@GeorgeLitos答案的变体,其中有以下更改:
/etc/lightdm/lightdm.conf
,因为这是系统拥有的文件,可能会被系统升级覆盖。而是使用扩展目录/etc/lightdm/lightdm.conf.d/
。这也意味着其他设置不需要在那里重复。只需创建一个/etc/lightdm/lightdm.conf.d/xhost.conf
具有以下内容的文件(作为用户root):
[SeatDefaults]
display-setup-script=xhost +
这适用于Ubuntu 16.04.5 LTS。