“gksudo nautilus”和“sudo nautilus”有什么区别?
我一直在通过Alt + F2使用gksudo nautilus
和sudo nautilus
。
有什么不同? 它们看起来非常相似!
取自这里 :
您永远不应该使用普通的
sudo
以root身份启动图形应用程序。 你应该使用gksudo
(Kubuntu上的kdesudo
)来运行这样的程序。gksudo
设置HOME=/root
,并将.Xauthority
复制到tmp
目录。 这可以防止主目录中的文件归root所有。
请注意,这主要是关于配置文件 。 如果你以root
身份运行Nautilus,即使使用gksu
/ gksudo
,你也可以在任何地方创建一个文件或文件夹(包括在你的主目录中),该文件或文件夹将由root
拥有。 但是如果您使用sudo
以root
身份运行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的右键菜单添加了“以管理员身份打开”?
注意:在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未来版本中, gksu
和gksudo
已被弃用。 他们在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,你可以在终端问它