sudo로 앱을 실행할 때 X 서버에 연결할 수 없습니다


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에서 출발합니까?
Thor

먼저 나는 super-boot-manager화합 점심 식사에서 직접 실행하려고했지만 작동하지 않았습니다. 그런 다음 터미널에서 시도한 다음 오류 마사지를 받았습니다.
Apurba

그래픽 사용자 환경 내의 터미널에서와 같이? 무엇을 echo $DISPLAY말합니까? 내부적 sudo으로 super-boot-manager실행 하지 않고 실행해야합니다 sudo.
Thor

echo $DISPLAY주고있다 :0.0. 그리고 실행하고 있지 않다 super-boot-manager으로 sudo. super-boot-manager터미널에서 명령 을 사용하여 실행 중 입니다.
Apurba

1
마지막으로 문제가 해결되었습니다. 난 그냥 라인을 추가 : Defaults env_keep="DISPLAY XAUTHORITY"visudo. 친절한 도움을 위해 특별히 @Thor에게 감사합니다.
Apurba

답변:


39

루트 사용자가 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

나는이 대답에 대해 영원히 높고 낮은 검색을 해왔다. 답변을 위해 두 사람을 여러 번 공표 할 수 있기를 바랍니다. 너무 감사합니다! :)
Ev-

4

@Thor의 답변 보완 :

xhost local:root전에 실행하십시오 sudo gedit. 이것을 영구적으로 만들려면 줄을 추가하십시오.

xhost local:root

~ / .xinitrc 파일로 1 . 파일이 없으면 작성하십시오.


[1] https://askubuntu.com/a/720120/452398


비 영구적 인 솔루션을 제공하는 답변을 제공해 주셔서 감사합니다.
2NinerRomeo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.