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


10

オンラインのときに次のエラーが表示され、ツールが起動しません。

[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"

これは定番です。あなたは行うことができますexport $(dbus-launch)または使用xhost [+]Xとあなたのスーパーユーザーアカウントを使用してプログラムを起動できるようにします。
41754 2014年

両方を
やりました

それはかもしれ$ xhost現在のアクセスを確認すると、$ xhost +任意のホストからのアクセスを可能にします。あなたは、多くの場合、Xを使用してプログラムを起動できることを確認するためにあなたが知っている仮想端末からこれを行う
41754

@galegosimpatico:dbusサーバーを起動するとこの問題が解決するのはなぜですか?
Bananguin 2014年

スーパーユーザーでない場合、何がecho $DISPLAY表示されますか?使用したいxserverプロセスはどのユーザーに属していますか?(例を使用して後者を見つけることができますps faux
Bananguin '31年

回答:


12

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

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

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

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

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

場合はXAUTHORITY、あなたのセッションで設定されていないsu設定HOMErootのホームディレクトリに環境変数を、あなたは設定する必要XAUTHORITY/home/msz/.Xauthorityどこ/home/mszあなたのホームディレクトリです。

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

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

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

1
シンボリックリンクを作成し、それも機能しました。ここにある:ln -s /home/otheruser/.Xauthority ~
缶Geliş

私にとってXAUTHORITYはもはや存在しないことをファイルとして設定された:
pbhj

4

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

通常のユーザーとしてxhostを実行し、xhost +rootになってから再試行してください。

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


最近のシステムの多くは、xhost機能しないように設定されています。動作する場合は、少なくとも実行xhost +localhostしてくださいxhost +
Gilles「SO-悪をやめる」14年

わかりました、それは良い点です。アドバイスをしてくれてありがとう。
X Tian

0

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

$ echo $XAUTHORITY

/tmp/xauth-1000-_0

だから私はやった

unset XAUTHORITY

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


0

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

xhost + localhost

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

sudo su 

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

cd /usr/local/Ampps

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

2020年に感謝します


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.