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

DrK*_*obi 103 security root sudo gksudo

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

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

小智 115

取自这里

永远不应该使用 normalsudo以 root 身份启动图形应用程序。您应该使用gksudokdesudo在 Kubuntu 上)来运行此类程序。 gksudo设置HOME=/root,并复制.Xauthority到一个tmp目录。这可以防止您的主目录中的文件被 root 拥有。

请注意,这主要是关于配置文件。如果您运行的鹦鹉螺root,即使有gksu/ 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 {} \;
Run Code Online (Sandbox Code Playgroud)

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

  • 不,这意味着当您以 root 身份运行 Nautilus 时,它在您的主目录中创建的任何文件都将由 root 拥有。这可能包括 Nautilus 自动创建的缩略图和其他支持文件。 (22认同)
  • @Peter.O 我已经扩展了这个答案来解决这个问题,并通过`gksu`/`gksudo`准确解释了哪些文件被`sudo`区别对待。(@ChrisWilson 如果您觉得它不完全在您的答案范围内,请随时回滚或缩短此编辑......在我看来它是,但这完全是您的要求。) (2认同)

rob*_*800 9

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

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


des*_*gua 5

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

您永远不应该使用普通的 sudo 以 Root 身份启动图形应用程序。您应该使用 gksudo(Kubuntu 上的 kdesudo)来运行此类程序。gksudo 设置 HOME=~root,并将 .Xauthority 复制到 tmp 目录。这可以防止您的主目录中的文件被 Root 拥有。(AFAICT,这就是 gksudo 与 sudo 启动过程的环境的所有特殊之处)。


sud*_*dus 5

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
Run Code Online (Sandbox Code Playgroud)

请参阅以下链接了解更多详细信息,

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