sudo nautilus 命令在 ubuntu 13.04 中无法正常工作

sudo nautilus 命令在 ubuntu 13.04 中无法正常工作

虽然我尝试了很多命令来克服这个警告,但无法克服它们,所以请帮助我摆脱这个警告

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 nautilussudo -H nautilussudo -i nautilus代替。

解释

你不应该使用 plainsudo来运行图形应用程序,因为它使 root 和非 root 用户帐户尝试使用相同的配置文件, 哪个通常会导致 root 用户拥有非 root 用户需要(但不能)访问的文件

Nautilus 的最新版本实际上会认识到这个问题并且拒绝运行,以防止其每个用户的配置在您的非 root 用户帐户上被破坏。

解决此问题的方法是,当运行图形程序root(尤其是 Nautilus)时,使用一种可以避免此问题的方法。避免此问题的方法是让您运行的程序在 root 的主目录 ( /root) 中查找并创建配置文件,而不是您自己的主目录 ( )。/home/ussername

解决方案及其有效原因

HOME 环境变量通常会参考它来确定要使用的主目录。您希望将其设置为/root。您不能直接执行此操作;而是以图形应用程序自动执行此操作的方式运行。

传统上,所有 Ubuntu 系统都安装了gksudo或(对于 Kubuntu) ,在运行图形应用程序时,kdesudo您会使用它们代替。这可能会奏效;我建议您在尝试其他任何方法之前先尝试用 替换。不幸的是,是sudosudogksudogksudo并非总是安装在最新版本的 Ubuntu 上。当然,您可以安装它(在软件中心或使用sudo apt-get update && sudo apt-get install gksu)。

另外,请注意,传统上,在 Ubuntu 上,gksugksudo做了同样的事情。但最近的一个错误有时会使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 身份运行的程序启动的命令中,环境保持不变。您永远不必“将其改回来”。)

相关内容