是否可以使用提升的权限启动 nautilus 或 gedit?

是否可以使用提升的权限启动 nautilus 或 gedit?

有时我需要在 中编辑文件/etc。我知道我可以使用控制台(sudo mv some/file /etc/some/filesudo nano /etc/some/file)等来执行此操作,但我发现这种方式有点笨拙。可以说我被宠坏了,但我真的习惯使用 Nautilus 和 Gedit 等 GUI 工具。

Ubuntu Mate 或 Mint 等发行版让这一切变得简单:我可以右键单击一个文件夹,然后会出现一个上下文菜单,其中包含以下选项:“以管理员身份打开“。然后双击文本文件,使用提升的权限在 gedit 中打开它。

但是我在 Ubuntu 默认的 Unity 版本中找不到这样的选项:

在此处输入图片描述

笔记:

  • 我知道这个问题使用提升的权限运行 Nautilus 的方法,但这里推荐的解决方案是使用gksudo,但它不再起作用
  • 我想我总是可以这样做sudo gedit /etc/whatever,但 - 据我所知 - 使用sudoGUI 工具是非常不明智的
  • 我记得有人说,以提升的权限运行 GUI 工具是不明智的根本。然而,事实似乎并非如此,因为一些默认的 GUI 工具本身就要求提升权限,Ubuntu 软件可能是最突出的例子之一:

在此处输入图片描述

有没有办法以提升的权限运行 Nautilus 或 Gedit?

答案1

通过安装软件包,您可以轻松获得一个允许以 root 权限打开文件的右键菜单nautilus-admin。此 nautilus 扩展添加了两个右键菜单选项。其中一个允许您以 root 身份打开文件以在 gedit 中编辑。另一个允许您以 root 权限打开 nautilus 窗口。

该软件包包含在标准 Ubuntu 存储库中,可以使用以下命令安装

sudo apt install nautilus-admin

它依赖于 GNOME 的管理后端,即,其效果与您从命令行使用 URI 打开文件相同admin://,例如

gedit admin:///etc/fstab

答案2

您可以使用pkexec而不是gksudo。我gedit以提升的权限运行的方式例如是创建一个脚本,例如/usr/local/bin/su_gedit,其内容如下:

#!/bin/bash
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit $*

然后,您可以.desktop为该脚本创建一个文件,例如/usr/share/applications/su_gedit.desktop(我尚未测试其他位置是否/usr/share/applications可以工作),从中复制其内容org.gnome.gedit.desktop并进行适当修改,例如,将Name=Comment=行更改为您想要的任何内容(例如Name=Root Text Editor和),并在所有行中Comment=Edit text files with root privileges替换gedit为。/usr/local/bin/su_geditExec=

完成此操作后,在 Nautilus 中右键单击通常在 gedit 中打开的文件并选择“使用其他程序打开”时,您应该会在列表中看到“根文本编辑器”条目。即使它不在那里,如果您单击“显示所有程序”按钮,您也应该能够选择它。

另一种方法是创建一个类似的脚本,以提升权限运行gnome-terminal,并为该脚本创建一个启动器,例如在 GNOME 面板或桌面上。从该终端,您可以简单地gedit以 root 身份运行。这就是我通常所做的。

答案3

尼莫- 是 Cinnamon Desktop 附带的默认文件管理器。Nemo 允许您右键点击指定目录中的任意位置,并且“以 Root 身份打开“”。

然后第二个窗口会打开,并显示蓝色的“提升权限”横幅。

希望这可以帮助!

笔记 - (听起来您想继续使用 Nautilus - 因此,如果您不愿意切换到其他文件管理器,请忽略此建议。

答案4

来自评论...

恰当的从 CLI 启动具有特权的 GUI 应用程序的最简单方法是使用sudo -H

例子:sudo -H gedit /etc/filename

sudo手册页...

 -H, --set-home
             Request that the security policy set the HOME environment
             variable to the home directory specified by the target
             user's password database entry.  Depending on the policy,
             this may be the default behavior.

因此,该-H标志会将的主目录sudo视为,而不是当前用户的主目录。否则 的主目录中的某些文件将归 root 所有,这可能会导致各种问题。rootHOMEuser

笔记:摘自'sudo -H' 中的 '-H' 标志是什么意思?

sudo如果不使用该选项,最常见的问题-H是创建登录循环。

发生这种情况的原因是以下文件从 your_username:your_username 更改为 root:root...

-rw------- 1 your_username your_username 407910 Nov  2 08:56 .ICEauthority
-rw------- 1 your_username your_username     58 Jun 23  2017 .Xauthority

相关内容