web-dev-qa-db-ja.com

Xサーバーに接続できません:0.0スーパーユーザーとして

オンラインのときに次のエラーが発生し、ツールが起動しません。

[root@dhcppc9 lin64]# ./ise
No protocol specified
_pn: cannot connect to X server :0.0

しかし、私がスーパーユーザーでなくても、すべてが大丈夫です。どうして?

編集

[root@dhcppc9 lin64]# export $(dbus-launch)
No protocol specified

なにか提案を?

また

[root@dhcppc9 lin64]# xhost [+]
No protocol specified
xhost:  unable to open display ":0.0"
10
msz

XプログラムがXディスプレイに接続するには、2つの情報が必要です。

  • ディスプレイのアドレスが必要です。これは通常、ローカルにログインしている場合は:0、リモートでログインしている場合は:10:11などです(ただし、アクティブなX接続の数に応じて数は変化します)。ディスプレイのアドレスは通常、DISPLAY環境変数で示されます。

  • ディスプレイのパスワードが必要です。 Xディスプレイのパスワードはmagic cookiesと呼ばれます。マジックCookieは直接指定されていません。これらは常にX権限ファイルに格納されます。これは、「display :42 has cookie 123456」という形式のレコードのコレクションです。 X権限ファイルは通常、XAUTHORITY環境変数で示されます。 $XAUTHORITYが設定されていない場合、プログラムは~/.Xauthorityを使用します。

詳細は リモートXディスプレイでウィンドウを開く(「ディスプレイを開けない」理由)? を参照してください。

あなたの場合、DISPLAYが設定されていますが、プログラムは明らかにcookieファイルを見つけることができません。セッションのXAUTHORITYの下のsuの値を確認します。

セッションでXAUTHORITYが設定されておらず、suHOME環境変数をルートのホームディレクトリに設定している場合、XAUTHORITY/home/msz/.Xauthorityに設定する必要があります。ここで/home/mszホームディレクトリです。

suが環境からXAUTHORITYを削除した場合は、それを戻すか、suがこれを行わないように構成します。

ホームディレクトリがNFSのようないくつかのファイルシステム上にある場合、ルートはそれを直接読み取ることができない場合があります。その場合は、.Xauthorityファイルを非NFSファイルシステムの別の場所にコピーできます。

XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY

ルートとしてxhostを実行しています!

通常のユーザーとしてxhostを実行しますxhost +、次にrootになり、再試行してください。

ところで他の人が指摘したようにxhost +は、任意のホストからの任意のユーザーを許可します

4
X Tian

これはFedora 30で私のために働きました

xhost local:root
Sudo QT_X11_NO_MITSHM=1 /usr/bin/unetbootin
0
Gang

私のXAUTHORITYは、存在しないファイルとして設定されました。

$ echo $XAUTHORITY

/tmp/xauth-1000-_0

だから私はやった

unset XAUTHORITY

そして、kdesudoを使用してrootとして私のアプリに接続することができました(この場合はkdesudo bleachbit

0
pbhj

通常のユーザーとして実行

xhost + localhost

次にスーパーユーザーを有効にします

Sudo su 

最後にサーバーの例に行きます

cd /usr/local/Ampps

最後に./Amppsを実行します

2020年に感謝します

0
Mr Mash