GNU/Linux >> Linux の 問題 >  >> Linux

別のユーザーに「su」または「su -」を指定した後、X11 アプリケーションを起動できない

system-config-date、xclock、vncviewer などの X クライアント アプリケーションにアクセスするには、リモート ホストの DISPLAY 設定をローカル サーバーにエクスポートする必要があります。これは通常、以下のコマンドを使用して行われます。

# ssh root@remotehost

remotehost# export DISPLAY=x.x.x.x:y.y

x.x.x.x:y.y – は、リモート ホストに接続したシステムの表示設定です。

-X オプションを ssh で使用して、DISPLAY をリモート ホストに直接エクスポートすることもできます。

# ssh -X root@remotehost

しかし、リモート システムの別のユーザーに切り替えて、ディスプレイを再度エクスポートしようとすると、「エラー:ディスプレイを開けません:」というエラーが表示されます。

# ssh -X root@remotehost
# su - [username]
# export DISPLAY=x.x.x.x:y.y 
# xclock
Error: Can't open display: x.x.x.x:y.y

sudo ユーザー向けの X11 転送

DISPLAY を設定するだけでは不十分です。 X 認証は Cookie に基づいているため、接続を開始したユーザーが使用する Cookie を設定する必要があります。次の手順では、sudo ユーザーが ssh ベースの X11 トンネルを使用できるようにします:

1. ssh で -X オプションを使用してリモート ホストに接続します。

# ssh -X root@remote-host

2. 現在のユーザーの Cookie セットを一覧表示します。

# xauth list $DISPLAY
node01.thegeekdiary.com/unix:10  MIT-MAGIC-COOKIE-1  dacbc5765ec54a1d7115a172147866aa
# echo $DSIPLAY
localhost:10.0

3. sudo を使用して別のユーザー アカウントに切り替えます。上記のコマンド出力からの Cookie を sudo ユーザーに追加します。

# sudo su - [user]
# xauth add node01.thegeekdiary.com/unix:10  MIT-MAGIC-COOKIE-1  dacbc5765ec54a1d7115a172147866aa

4. sudo ユーザーのステップ 2 からの表示を再度エクスポートします。コマンド xclock を試して、x クライアント アプリケーションが期待どおりに動作しているかどうかを確認してください。

# export DISPLAY=localhost:10.0
# xclock


Linux
  1. Jenkins をインストールした後、ユーザー jenkins に su できません

  2. systemd:起動直後の SIGTERM

  3. Xamarin で Linux アプリケーションを開発できますか?

  1. 非ログイン ユーザーを作成するにはどうすればよいですか?

  2. あるユーザーに属するすべてのファイルを別のユーザーに変更するにはどうすればよいですか?

  3. 起動後にコマンドを実行するにはどうすればよいですか?

  1. 別のユーザーとして ssh する方法

  2. LinuxでIDでユーザー名を検索するにはどうすればよいですか?

  3. root アクセスを許可せずに、あるユーザーが別のユーザーに su できるようにするにはどうすればよいですか?