gksu:Gtk-WARNING **:ディスプレイを開けません::0


40

突然のgksuのすべてが私のために動作しなくなりました:

~$ gksu gparted

(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0

同じことが起こりgparted-pkexecます:

~$ gparted-pkexec 
No protocol specified

(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0

おそらくこれが原因である可能性がありますか?

これをSSHまたはVNCで実行していません。これは、通常のターミナルウィンドウのローカルホストです。


グラフィカルユーザーインターフェイスで作業したり、グラフィカルインターフェイスが提供しないシステム上でプログラムを実行しようとしない(たとえば、ssh経由)。
AB

1
@ABこれはssh経由ではないことを明確にする必要があります。非常に通常のターミナルウィンドウのローカルホスト上にあります。アプリケーションメニューからgfactedされたInfactの開口部も同じ結果になります。
d_inevitable

gksuGPartedの実行に使用する必要はありません。gpartedpolkitを使用して昇格した特権を取得します。
ムル

取得gpartedせずに実行するgksuRoot privileges are required for running gparted.
@muru

OK、gparted-pkexec(なしgksu)またはを 試してくださいgksu gpartedbin
ムル

回答:


67

Ubuntu 17.10以降を実行している場合、この問題は、Waylandを完全にサポートするようにアプリケーションが更新されていないときに発生する可能性があります。アプリケーションが更新されるまでの回避策として、次を実行できます。

xhost +SI:localuser:root

これにより、rootユーザーはデスクトップにアプリケーションを表示できます。他の考えられる回避策についても、このQ&Aを参照してください。なぜgksu / gksudoを使用しないか、sudoを使用したグラフィカルアプリケーションをWaylandで起動しないのですか?

ソース


編集のための@MDMower Thx、何か新しいことを学びました=)!
カトンアイ

@pomskyリンクを追加するためのThx;)!
カトンアイ

18.04では、X-Orgがデフォルトとして再び使用されます。そのため、この問題は消滅するはずです。参照
カトンアイ

11

xhost +localhostターミナルで実行してから、コマンドを再度実行してください。これにより、システム(つまりルート)上のすべてのユーザーが画面上のウィンドウを開くことができます。単に+ではなく、+ localhostを使用してください。どこからでもよりもlocalhostのみからの接続を許可する方が安全です。

これを永続的にするには、次の~/.xinitrcようにファイルを編集します。

走る gedit ~/.xinitrc

ファイルを次のように編集します(最初は空である必要があります)。

#! /bin/bash
xhost +localhost &

ファイルを保存し、ログアウトしてログインします。これで、すべてがsudoで正常に実行されるはずです。

14.04に問題を再現することはできませんが、過去にsudo / gksuがこのエラーをスローしたときにこれが機能しました。

ソース:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubuntu.com/CustomXSession

1
これは確かに機能します。それはアクセス制御の制限を意味するのでしょうか?これの原因は何でしょうか?
d_inevitable

はい、Xのセキュリティ機能です。そうでないと言われるまで、ユーザーからxserverへの接続のみを許可します。他のアプリではなく一部のアプリに必要な理由がよくわかりません。また、すべてのことをgpartedに行う理由がわかりません。おそらく、あなたはどこかをいじくり回し、セキュリティを強化していたのでしょうか?
マークパスカル

2
これによりエラーが発生します:xhost:ディスプレイ ""を開けません
-IgorGanapolsky

5
のRedis、それは使用に示唆されましたxhost +local:。その後、ターミナルからgpartedを起動できましたが、使用xhost +localhostは機能しませんでした。
rmin

1
確かに! xhost +local:私を修正しました!これは、生成non-network local connections being added to access control listに必要とされるものです。
ロブナー

5

ターミナルで次を実行します。

nano /home/user/.bashrc # user = name of your user

最後に次の行を追加します。

export XAUTHORITY=$HOME/.Xauthority

2
これがどのように問題を解決するのか、それが有害な副作用を持っているかどうかの説明を追加できれば便利でしょうか?
ジェフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.