使用sudo运行应用程序时无法连接到X Server


29

当我使用sudo命令运行某些软件时,显示错误,例如

cannot connect to X server

例如,如果我运行以下命令:

$ sudo gedit /etc/profile

我正在遵循以下命令

(gedit:6758): WARNING **: Command line `dbus-launch --autolaunch=84b871d735f31ffe014dc9ba00000009 --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.

或者,如果我正在跑步,则会super-boot-manager出现以下错误

buc: cannot connect to X server

请帮忙。


super-boot-manger从哪里跑?
雷神

首先,我尝试super-boot-manager直接从统一午餐者那里逃跑,但没有成功。然后我在终端上尝试了一下,然后得到了那些错误消息。
阿普尔巴(Apurba)2012年

就像在图形用户环境中的终端中一样?是什么:echo $DISPLAY说什么?你应该不运行它sudosuper-boot-manager运行sudo在内部。
雷神

echo $DISPLAY在给:0.0。而且我没有super-boot-managersudo。我正在运行,只是super-boot-manager从终端使用命令。
阿普尔巴(Apurba)2012年

1
终于解决了问题。我刚刚添加了一行:Defaults env_keep="DISPLAY XAUTHORITY"在的末尾visudo。感谢所有人,特别是@Thor的帮助。
阿普尔巴(Apurba)2012年

Answers:


39

您需要允许root用户访问X服务器:

xhost local:root

并将命令指向右边DISPLAY

sudo DISPLAY=$DISPLAY gedit /etc/profile

这解决了这个问题,打开geditsudo,但仍然无法午餐super-boot-manager。它显示了相同的错误
Apurba

15

终于解决了问题。我刚刚添加了这一行:

默认值env_keep =“ DISPLAY XAUTHORITY”

visudo

为此,您必须运行

苏多维苏多

它将打开文件,然后在最后添加上述行。

感谢所有人,特别是@Thor的帮助


1
默认值env_keep =“ DISPLAY”对我有用。
bagustris 2015年

我一直在寻找这个答案的高低。希望我能多次投票给你们两个答案。非常感谢你!:)
Ev-

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.