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

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

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

取自这里 :

永远不应该使用普通的sudo以root身份启动图形应用程序。 你应该使用gksudo (Kubuntu上的kdesudo )来运行这样的程序。 gksudo设置HOME=/root ,并将.Xauthority复制到tmp目录。 这可以防止主目录中的文件归root所有。

请注意,这主要是关于配置文件 。 如果你以root身份运行Nautilus,即使使用gksu / gksudo ,你也可以在任何地方创建一个文件或文件夹(包括在你的主目录中),该文件或文件夹将由root拥有。 但是如果您使用sudoroot身份运行Nautilus(或大多数其他图形应用程序),他们可能会将其配置文件保存在您的主目录(而不是root的主目录)中。 当您没有以root身份运行时,这些配置文件可能由root拥有并且无法访问,这可能会严重破坏您的设置,甚至可能使某些应用程序无法完全运行。

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

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

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

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

你知道有一个名为nautilus-gksu的Nautilus添加 安装nautilus-gksu 它为nautilus的右键菜单添加了“以管理员身份打开”?

注意:在Ubuntu 12.04及更高版本中不可用。

如果您使用sudo启动图形应用程序,则可能会破坏文件的所有权,从而导致应用程序中断。 永远不要那样做。 查看社区帮助 :

你永远不应该使用普通的sudo来启动图形应用程序作为Root 。 你应该使用gksudo(Kubuntu上的kdesudo)来运行这样的程序。 gksudo设置HOME = ~root,并将.Xauthority复制到tmp目录。 这可以防止主目录中的文件归Root所有。 (AFAICT,这与gksudo与sudo开始流程的环境有关。)

sudo默认保留$ HOME变量。 例如,如果您运行sudo firefox您将使用root权限运行,但您的配置。 如果在这种情况下更改设置,最终将使用root所拥有的部分配置而不是您的用户ID。

sudo -H GUI-application-program

在Ubuntu(17.10)17.10.1以及可能的Ubuntu未来版本中, gksugksudo已被弃用。 他们在Xorg而不是Wayland工作。 但是您可以使用sudo -H来运行GUI应用程序而不会损坏您的配置文件。 不要使用普通的sudo

如果你正在运行Wayland(替换Xorg的新图形系统),你也需要一个带xhost的命令。

 xhost +si:localuser:root # if Wayland sudo -H nautilus --no-desktop 

有关详细信息,请参阅以下链接,

为什么不用gksu / gksudo或启动带有sudo的图形应用程序与Wayland一起工作?

在终端命令’info gksudo’生成的文件中找到:

gksu是su的前端,gksudo是sudo的前端。 它们的主要目的是运行需要root的图形命令,而无需运行X终端仿真器并直接使用su。

我发现,在许多情况下,’info’文件包含有用的描述以及有关选项的有用信息。 我强烈建议学习任何命令首先要访问该命令的’info’文件。

对于初学者,在终端中,使用您感兴趣的命令名称作为参数键入或粘贴命令info。 格式为info [command_name] (切记不要包含命令提示符或括号)。 建议的初学者终端条目是:

 $ info $ info info 

如果您选择gksudo nautilus,您可以用图形方式询问密码。 有了sudo,你可以在终端问它