无法以root身份打开Gedit


15

当我运行时sudo gedit /path/to/some/random/file,出现以下错误

** (gedit:6262): WARNING **: Command line `dbus-launch --autolaunch=7f8731869e1c690b8205727e0000000a --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.
Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

使用gksudo无济于事

Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

任何帮助的人。我需要具有此功能才能以root身份在Gedit中打开文件。
我发现了这个问题,但有相同的错误,但没有解决方案无法使用sudo启动gedit


编辑
我在Ubuntu论坛中找到了这篇文章。
这些是说明:

  1. echo $ DISPLAY#您将需要此值3行
  2. sudo -i#或旧版Slackwares上的“ su-”
  3. xauth merge〜alien / .Xauthority#在这里使用您自己的用户名,而不是“ alien”
  4. export DISPLAY =:0.0#使用您之前看过3行的DISPLAY的值

在执行命令3时,出现此错误
xauth: file /root/.Xauthority does not exist

也许这个新的信息可以揭示更多。


您尝试过gksudo gedit /path/to/the/file/name吗?
AzkerM 2014年

如我的问题所述,@ AzkerMohamed Yah使用gksudogksu返回相同的错误。
Parto


Answers:


13

终于找到了答案。这个问题来自sudo运行应用程序时无法连接到X Server,尤其是这个问题尝试使用sudo或gksudo运行应用程序时出现错误

我将行添加Defaults env_keep+="DISPLAY"visudo文件的末尾/etc/sudoers

sudo gedit是的,我回来了!

编辑

再次出现相同的错误。

做了更多的研究,尤其是这个答案/ubuntu//a/137584/163331并意识到我必须向visudo文件添加更多选项。代替Defaults env_keep+="DISPLAY",我使用了这一行:

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

为什么要将HOME添加到env_keep?
muru

10

以root用户身份运行任何图形界面应用程序都可能导致文件损坏,尤其是在图形界面应用程序是文本编辑器的情况下。除此之外gksu,并gksudo没有对在Ubuntu 17.10开始在Wayland的图形应用程序的根工作:为什么不gksu / gksudo工作,韦兰?并且gksu软件包已从Ubuntu 18.04及更高版本中的默认Ubuntu存储库中删除。

Nautilus Admin(nautilus-admin)是Nautilus文件管理器的简单Python扩展,它在右键菜单上添加了一些管理操作:

  • 以管理员身份打开:在新的Nautilus窗口中打开一个具有管理员(root)特权的文件夹。
  • 以管理员身份编辑:在Gedit窗口中打开一个具有管理员(root)特权的文件。

要在当前所有受支持的Ubuntu版本中安装Nautilus Admin,请打开终端并输入:

sudo apt install nautilus-admin  

尽管有命令以root身份运行图形应用程序,但强烈建议您使用nano文本编辑器(通常从终端运行)来以root身份编辑文件。Nano文本编辑器包含在默认的Ubuntu安装中。

纳米非常易于使用。使用nano编辑器的说明总是在每页的底部。您需要知道的仅有的两个纳米键盘快捷键是WriteOut和Exit。按组合键Ctrl+ O,然后按Enter保存要编辑的文件。按键盘组合键Ctrl+ X退出nano。

如果您习惯以正确的方式以root用户身份编辑文件,则可以减少犯错的可能性,而这些错误可能会非常耗时。


2
nano编辑器+1 。最好的编辑器之一,任何人都可以发现它更易于操作。
AzkerM 2014年

@Karel我终于使用nano进行了更改,但是我需要root Gedit。
Parto 2014年

2
这是一个很好的建议,但这不是答案。Linux的人喜欢终端,但是GUI非常适合复杂的任务,并且具有更好的UX。
azerafati

您可以自定义sudoedit命令的默认编辑器(默认为nano):如何将sudoedit命令的默认编辑器更改为vim?但是以root用户身份启动GUI编辑器可能会在Ubuntu 17.10及更高版本的wayland中引起问题。
karel



1

我正在尝试总结此页面上其他答案中的所有信息:

韦兰:

唯一的选择是使用nanovi/vim

Xorg:

尝试这个

sudo -H env DISPLAY=:0 gedit

如果有效,则可能意味着您需要在sudo配置文件中添加一些选项

sudo visudo

尝试在最后添加此行

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

为什么要将HOME添加到env_keep?
muru

gedit在Wayland可以正常工作。请查看我刚刚发布的答案。
Gunnar Hjalmarsson

0

我只是有类似的问题。我正在使用Debian Jessie并以root身份启动gedit,然后此行终于可以工作了:

sudo -H gedit
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.