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から走りますか?
トール

最初に私はsuper-boot-manager団結したランチャーから直接走ろうとしましたが、うまくいきませんでした。それから私はターミナルからそれを試しました、そして、私はそれらのエラーマッサージを得ました。
アプルバ

グラフィカルユーザー環境内の端末のように?何を言う:echo $DISPLAY言う?sudoas super-boot-managersudo内部で実行せずに実行する必要があります。
トール

echo $DISPLAY与えている:0.0。そして、私はsuper-boot-managerとして実行されていませんsudosuper-boot-managerターミナルからコマンドを使用して実行しています。
アプルバ

1
最後に問題は解決されました。行を追加しました:Defaults env_keep="DISPLAY XAUTHORITY"の最後にvisudo。すべてに感謝します。特に@Thorには親切に助けてくれました。
アプルバ

回答:


39

rootユーザーにXサーバーへのアクセスを許可する必要があります。

xhost local:root

コマンドを右に向けDISPLAYます:

sudo DISPLAY=$DISPLAY gedit /etc/profile

それは開いて問題を解決しgeditsudo、まだ昼食はできませんsuper-boot-manager。同じエラーが表示されています
アプルバ

15

最後に問題は解決されました。次の行を追加しました。

デフォルトenv_keep = "DISPLAY XAUTHORITY"

の終わりにvisudo

それを行うには、実行する必要があります

sudo visudo

ファイルを開き、最後に上記の行を追加します。

すべての人、特に@Thorに感謝します


1
デフォルトenv_keep = "DISPLAY"が機能します。
バグストリス

私はこの答えをずっと探し続けてきました。私はあなたの答えのためにあなたの両方に何度も賛成できることを望みます。本当にありがとうございました!:)
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.