是否有更容易或更“正确”的方式以root身份打开gedit?

我在虚拟机上的虚拟机中运行ubuntu 12.04。 它的存在主要是作为Ubuntu玩的“玩具”,因此我想要GUI(是什么’Dash’在ubuntu 12.04?无论如何……)

我目前使用这台机器的一件事是LAMP服务器。 我使用’gedit’编辑我的文件,但由于我没有正确设置权限,我只是在终端中使用sudo打开它。

刚才,为了尝试简化这个过程,我在桌面上用一个非常简单的工作创建了一个shell脚本 – sudo gedit

我不禁想到必须有一个更明显的方法来从GUI打开gedit作为root而不是这个。 那有吗?

编辑:我只是通过用gksudo替换sudo来’改进’我的脚本。 现在,当gedit打开时,我不必打开终端窗口。 所以我觉得现在这很方便:)为了知识,这将是一件好事,知道这是否与经验丰富的ubuntu用户如何做这类事情有关。

使用gksudo gedit

gksudo相当于图形程序的sudo ,使用sudo运行是不安全的。

我发现自己经常以root身份运行gedit ,所以我将选项添加到Unity中的右键菜单(它使用与所选答案相同的命令, gksu gedit )。

您需要编辑*.desktop文件才能添加菜单选项,您有两种选择:

  • /usr/share/applications/gedit.desktop (需要root访问权限才能编辑) – 将为所有用户添加菜单选项。 请注意,您可能需要重新编辑此文件,如果更改了覆盖更改的gedit更新,则添加该选项。
  • ~/.local/share/applications/gedit.desktop (如果你在那里找不到它,复制一下/usr/share/applications/那个,并将它保存到这个新位置) – 菜单选项仅适用于指定用户,并被视为“更好的做法”。 请注意,如果您已将其停靠在Unity栏中,则需要在现有的GEdit图标上选择Unlock from Launcher ,然后重新添加“自定义”版本。 即使GEdit获得更新,这些更改也应该保留。

编辑文本文件gedit.desktop ,添加以下代码块(您可以使用现有的两个块作为模板):

 [Desktop Action RootWindow] Name=Open a Root Window Exec=gksu gedit OnlyShowIn=Unity; 

接下来,将新操作添加到列表中(应该位于文本文件的第19行):

 Actions=Window;Document;RootWindow; 

现在右键单击Unity中的文本编辑器窗口会显示这个方便的新选项:

Ubuntu Unity:打开Gedit作为Root

gksudo gedit在16.04 LTS工作,但在17.10与Wayland gksudo不起作用。

  • 如果在登录屏幕中选择Xorg ,则可以安装和使用gksudo

  • 但在Wayland你应该使用

    • 一个文本模式编辑器,简单的nano或高级emacs ,这是Wayland想要的开发人员(出于安全考虑)

    • 或者您可以根据以下链接使用xhostsudo -H gedit

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

您可以以root身份打开Nautilus, gksu nautilus ,现在从该窗口打开的任何文本文件都将以Gedit身份打开。

gksudo显然不适用于较新的Ubuntu版本, gksu不能为我工作,但这个答案对我的情况非常有帮助(Ubuntu 17.04)。

使用visudo下行添加到sudo配置文件中:

 Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"` 

EDITOR=gedit sudo -e是推荐的。