他のユーザーに訴訟を提起すると、X11 転送は機能しません。

他のユーザーに訴訟を提起すると、X11 転送は機能しません。

XVncを実行しているRed Hat 7.3サーバーがあります。 Windows 10デスクトップにPuttyとXmingをインストールしました。 PuttyはX11配信用に設定されています。 SSHを介して標準/権限のないユーザーとしてログインしてXアプリケーションを実行すると、Windows 10デスクトップに問題なく表示されます。

同じセッション内でより高い権限を持つアカウントを使用してXアプリケーションを実行しようとすると、「エラー:ディスプレイを開けません」というメッセージで失敗します。

標準ユーザーセッションで$ DISPLAYをエコーすると、自動的に「IP_ADDRESS:10.0」に設定されます。私のsuセッションでは$ DISPLAYが空です。 DISPLAY変数を同じ値にエクスポートしようとしましたが、「PuTTY X11プロキシ:サポートされていない認証プロトコルエラー:ディスプレイを開けませんでした:server_IP:10.0」という別のエラーが発生しました。

他のユーザーのコンテキストで動作するようにX11転送を設定するにはどうすればよいですか?

答え1

次の手順に従って問題を解決する必要があります。

動作user1していて使いたいと言ってください。user2

のためuser1

$ xauth list $DISPLAY
<output1>
$ echo $DISPLAY
<outoput2>

別のユーザーに切り替えます。user2

$ xauth add <output1> 
$ export DISPLAY=<output2>

努力する:

$ xclock

答え2

X11 は、接続がユーザーに属していることを示すためです。SSH経由でログインX11Forwardingこのメカニズムは、他の人がディスプレイを使用することを許可しません。

幸いにも解決策があります。別のユーザーを使用して変更しsuたら、次のコマンドを実行します。

xauth add $(xauth -f ~username/.Xauthority list | tail -1)

元のユーザー~username、つまりサーバーに接続したユーザーはどこにありますか?

明らかに、新しいユーザーに十分な読み取り権限がある場合~username/.Xauthority(つまり、これsuroot問題がなく、他のユーザーにとってこれが機能する場合)可能機能しない場合は、権限を確認/変更する必要があります)。

答え3

Danieleのソリューションが少し変更されました。

xauth add $(xauth -i -f ~username/.Xauthority list | tail -1)

この-iオプションはロックを無視するため、コマンドはxauth list中断されません。

関連情報