有没有更简单或更“正确”的方法以root身份打开gedit?


19

我在虚拟机上的虚拟机中运行了ubuntu 12.04。它的存在主要是作为与Ubuntu一起玩的“玩具”,因此出于这个原因,我想要GUI(是ubuntu 12.04中的“ Dash”是什么吗?

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

刚才,为了简化此过程,我在桌面上创建了一个非常简单的Shell脚本- sudo gedit

我忍不住想,必须有一种更加明显的方法可以从GUI以root身份打开gedit。那有吗

编辑:我只是通过用gksudo替换sudo来“改善”了我的脚本。现在,打开gedit时不必打开终端窗口。因此,我想现在这很方便:)出于知识的考虑,知道这是否与经验丰富的ubuntu用户将如何做这种事情相近。


2
是的,gksudo(或更常见的称呼gksu)是大多数人使用的东西。大量的阅读材料:askubuntu.com/questions/270006/... askubuntu.com/questions/197772/... askubuntu.com/questions/284306/... askubuntu.com/questions/11760/...
赛斯

2
塞思,您愿意将您的回复发布为答案吗?这看起来解决了。
Travis G.

“现在,打开gedit时不必打开终端窗口。” <-您可能已经知道了这一点,但是如果您将&命令追加到此处所示的位置,则可以让Shell脚本的终端窗口在gedit启动时立即关闭,而不是等待其关闭。这个技巧应该可以正常使用gksudo
IQAndreas

Answers:


19

使用gksudo gedit

gksudosudo图形程序等效,使用不安全运行sudo


4
问题是,gksuUbuntu 13.04默认不再安装。我非常希望看到13.04以上版本的答案。建议的替代方法是pkexec,但= /无效。
Alaa Ali

1
@Alaa但它仍在存储库中,因此快速sudo apt-get install gksu为您安装它。
IQAndreas

如果您想解释为什么不建议使用它sudo“ gksudo nautilus”和“ sudo nautilus”有什么区别?
IQAndreas

4
@IQAndreas,我知道它在存储库中,但这很不方便,如果我要回答一个新用户并希望他以root身份编辑文件,告诉他“首先运行sudo apt-get install gksu”。现在,这是一个难题,至少对我而言。我不能告诉他“利用pkexec”,因为它没有工作,这太冒险了sudo -i,然后gedit。另外,我知道gksudosudo=)之间的区别,这是您可能链接到我的链接是:为什么默认情况下在13.04中不再安装gksu?
Alaa Ali

@Alaa关于的有效点apt-get。实际上,我的第二个评论(带有链接的评论)是针对您给出的答案的,而不是评论中讨论的继续(我认为发帖人可能想知道为什么“使用此工具不安全运行” sudo”)。
IQAndreas

7

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

您将需要编辑*.desktop文件以添加菜单选项,并且您有两个选择:

  • /usr/share/applications/gedit.desktop (需要root用户才能进行编辑) -将为所有用户添加菜单选项。请注意,您可能需要重新编辑此文件,如果gedit发生的更新覆盖了您的更改,则添加该选项。
  • ~/.local/share/applications/gedit.desktop (如果您不能在此处找到它,请复制在中找到的那个/usr/share/applications/,然后将其保存到新位置) -菜单选项仅对指定用户可用,被认为是“更好的实践”。请注意,如果您已经将其停靠在Unity栏中,则需要选择Unlock from Launcher现有的GEdit图标,然后重新添加“自定义”版本。即使GEdit得到更新,这些更改也应保留。

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

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

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

Actions=Window;Document;RootWindow;

现在,右键单击Unity中的文本编辑器窗口,将弹出此便捷的新选项:

Ubuntu Unity:以root身份打开Gedit


我还具有用于以root用户身份打开文件管理器的相同设置,该文件管理器运行gksu nautilus
IQAndreas


2

admin://在文件名前面使用,为您各自的WM / shell弹出标准GUI密码提示。

因此,举例来说,如果你想编辑您的回购协议,而不是打字的sudo gedit /etc/apt/sources.list您可以键入gedit admin:///etc/apt/sources.list。它基本上适用于所有GUI程序,而不仅仅是Gedit。


这个答案是现在正确的方法。可接受的答案对于Ubuntu的早期版本(我认为17.04之前)是正确的。
PJ辛格

0

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


@DavidFoerster不太,imo :-)
guntbert

0

gksudo显然在较新的Ubuntu版本上不可用,并且gksu对我不起作用,但是此答案对我而言非常有用(Ubuntu 17.04)。

用于visudo将以下行添加到您的sudo配置文件中:

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

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.