当前位置: 首页>>技术教程>>正文


“gksudo nautilus”和“sudo nautilus”有什么区别?

, , , ,

问题描述

我一直使用gksudo nautilussudo nautilus通过Alt + F2

有什么不同?他们看起来非常相似!

最佳解决思路

取自here

You should never use normal sudo to start graphical applications as root. You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets HOME=/root, and copies .Xauthority to a tmp directory. This prevents files in your home directory becoming owned by root.

请注意,这主要是关于配置文件。如果您将Nautilus作为root运行,即使使用gksu /gksudo,并且您随处可用(包括在您的主目录中)创建文件或文件夹,该文件或文件夹将由root拥有。但是,如果您使用sudo将Nautilus(或大多数其他图形应用程序)作为root运行,则可以将其配置文件保存在您的主目录(而不是root的主目录)中。这些配置文件可能由root拥有,并且当您不以root身份运行时不可访问,这可能会严重影响您的设置,甚至可能导致某些应用程序无法运行。

该解决方案一旦犯了这个错误,就是找到配置文件并删除它们,或者将它们chown归还给您的非root用户。许多这样的文件以.开头或包含在以.开头的目录中。有些位于主目录中的.config文件夹内。要查看以Nautilus中的.开头的文件和文件夹,请按Ctrl + H(显示隐藏文件)。要使用ls查看它们,请使用-a(或-A)标志。

要查找主目录中是否有不属于您的文件,您可以在终端中使用以下命令:

find $HOME -not -user $USER -exec ls -lad {} \;

它将列出不属于用户的主目录下的所有文件。

次佳解决思路

您是否知道有一个名为nautilus-gksu的Nautilus附加功能,在nautilus的右键菜单中添加了一个“以管理员身份打开”?

security,root,sudo,gksu,ubuntu

注意:在Ubuntu 12.04及以后版本中不可用。

第三种解决思路

如果您使用sudo启动图形应用程序,则可能会弄乱文件的所有权,从而导致应用程序崩溃。永远不要这样做。检查Community Help

You should never use normal sudo to start graphical applications as Root. You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets HOME=~root, and copies .Xauthority to a tmp directory. This prevents files in your home directory becoming owned by Root. (AFAICT, this is all that’s special about the environment of the started process with gksudo vs. sudo).

第四种思路

sudo默认保留你的$ HOME变量。例如,如果您运行sudo firefox,您将以root权限运行,但是您的配置。如果您在这种情况下更改设置,则最终将得到您的配置的一部分,而不是您的用户标识。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/645.html,未经允许,请勿转载。