虽然我尝试了很多命令来克服这个警告,但无法克服它们,所以请帮助我摆脱这个警告
root@radhika-M68MT-D3:~# sudo nautilus
(nautilus:2642): IBUS-WARNING **: The owner of /home/radhika/.config/ibus/bus is
not root!Nautilus-Share-Message: Called "net usershare info" but it failed: 'net
usershare' returned error 255: net usershare: cannot open usershare directory /var/lib
/samba/usershares. Error No such file or directory Please ask your system
administrator to enable user sharing.
答案1
快速回答
使用gksudo nautilus
或sudo -H nautilus
或sudo -i nautilus
代替。
解释
你不应该使用 plainsudo
来运行图形应用程序,因为它使 root 和非 root 用户帐户尝试使用相同的配置文件, 哪个通常会导致 root 用户拥有非 root 用户需要(但不能)访问的文件。
Nautilus 的最新版本实际上会认识到这个问题并且拒绝运行,以防止其每个用户的配置在您的非 root 用户帐户上被破坏。
解决此问题的方法是,当运行图形程序root
(尤其是 Nautilus)时,使用一种可以避免此问题的方法。避免此问题的方法是让您运行的程序在 root 的主目录 ( /root
) 中查找并创建配置文件,而不是您自己的主目录 ( )。/home/ussername
解决方案及其有效原因
这HOME
环境变量通常会参考它来确定要使用的主目录。您希望将其设置为/root
。您不能直接执行此操作;而是以图形应用程序自动执行此操作的方式运行。
传统上,所有 Ubuntu 系统都安装了gksudo
或(对于 Kubuntu) ,在运行图形应用程序时,kdesudo
您会使用它们代替。这可能会奏效;我建议您在尝试其他任何方法之前先尝试用 替换。不幸的是,是sudo
sudo
gksudo
gksudo
并非总是安装在最新版本的 Ubuntu 上。当然,您可以安装它(在软件中心或使用sudo apt-get update && sudo apt-get install gksu
)。
另外,请注意,传统上,在 Ubuntu 上,gksu
和gksudo
做了同样的事情。但最近的一个错误有时会使gksu
它的行为方式不适合 Ubuntu 系统。这就是为什么我推荐gksudo
,尽管我通常推荐gksu
(在许多不同的类 Unix 系统上做“正确的事情”),正确配置后)。
但有替代方案gksudo
。您可以sudo
以 root 身份运行程序并使用 root 的主目录而不是您的主目录:
sudo -H nautilus
如果你没有gksudo
,我推荐sudo -H
。不过,你也可以使用:
sudo -i nautilus
sudo -i
模拟完整的 root 登录(即使实际的 root 登录被禁用),它将许多环境变量(包括HOME
)设置为其 root 用户值。
(运行该命令后,在其他程序或其他不是从您以 root 身份运行的程序启动的命令中,环境保持不变。您永远不必“将其改回来”。)