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


100

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

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


一个非常有用的解释/讨论,其中包括许多屏幕截图:psychocats.net/ubuntu/graphicalsudo
关于


Answers:


113

这里拍摄:

你应该永远不会使用正常sudo启动图形应用程序的根目录。您应该使用gksudokdesudo在Kubuntu上)运行此类程序。 gksudo设置HOME=/root并复制.Xauthoritytmp目录。这样可以防止您的主目录中的文件由root拥有。

请注意,这主要是关于配置文件。如果root即使使用gksu/ 仍以Nautilus as身份运行gksudo,并且在随处创建文件或文件夹(包括在主目录中),则该文件或文件夹将归root。但是,如果你运行的Nautilus(或其他大多数图形应用)作为rootsudo,他们可能挽救他们的配置文件在你的home目录(而不是root主目录)。root当您没有以root身份运行时,这些配置文件可能归所有者所有,并且无法访问,这可能会严重破坏您的设置,甚至可能使某些应用程序无法正常工作。

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

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

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

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


1
我已经用过'sudo nautilus'。那意味着我的主目录现在由root拥有?(PS:我的英语不太好)
DrKenobi

22
不,这意味着当您以root用户身份运行Nautilus时,它在您的主目录中创建的任何文件都将归root用户所有。这可能包括Nautilus自动创建的缩略图和其他支持文件。
瑞安·汤普森

1
。自从我第一次阅读它以来,引用的segemnet一直困扰着我。特别是说:“这可以防止您的主目录中的文件由root拥有。” ..我今天通过在10.04、10.04(VM),10.10(VM)上创建一些测试文件来测试了这一点,无论我如何启动sudo / gksudo(Terminal-> Nautilus,Terminal-> gedit,Alt + F2。 。)......所有的情况引起了我新创建由“根”所拥有,与集团的“根” ..也许我错过了什么,但我想引用段的那部分是误导人...
彼得。 Ø

嗯,我只是在引用维基页面。我对这两种工具之间的区别并没有真正的深入了解。也许unix.stakexchange.com上的某人可以提供帮助?

2
@ Peter.O我已经扩展了这个答案,以解决该问题并sudo通过gksu/ 确切说明哪些文件被不同地对待gksudo。(@ChrisWilson,如果您认为它不完全在您的回答范围内,可以随意回滚或缩短此编辑...在我看来是这样,但这完全是您的要求。)
Eliah Kagan 2012年

9

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

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


1
nautilus-gksu从Ubuntu 12.04及更高版本不再可用。
IQAndreas

而且您的链接仅显示11.10之前可用...
Wilf 2013年

5

如果使用sudo启动图形应用程序,则可能会使文件所有权混乱,从而导致应用程序崩溃。绝对不要那样做。检查社区帮助

永远不要使用普通的sudo作为Root启动图形应用程序。您应该使用gksudo(在Kubuntu上为kdesudo)运行此类程序。gksudo设置HOME =〜root,并将.Xauthority复制到tmp目录。这样可以防止您的主目录中的文件由Root拥有。(AFAICT,这是有关使用gksudo与sudo的启动过程的环境的所有特殊信息)。


3

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


我喜欢这个答案的自信。
安德烈·菲盖雷多

2

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

有关更多详细信息,请参见以下链接,

为什么不与Wayland一起使用gksu / gksudo或使用sudo启动图形应用程序?


-2

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

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

我发现,在许多情况下,“信息”文件具有有用的描述以及有关选项的有用信息。我强烈建议您首先从访问该命令的“ info”文件开始学习任何命令。

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

$ info
$ info info

-3

如果选择gksudo nautilus,则以图形方式询问您的密码。使用sudo,您可以在终端中询问


6
这不是唯一的区别,而且通常也不是最重要的区别。(请参见此处的其他一些答案。)
Eliah Kagan 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.