他のユーザーのモニターでXプログラムを実行する

他のユーザーのモニターでXプログラムを実行する

Ubuntu 16.04を実行すると、host次のように設定されます。

  • auser1でGUIログインを行った人host
  • a user2、彼はasudoerであり、ログインしていますただ文字()でsshつなぎますssh user2@host

user2たとえば、モニターでXアプリケーションを実行したいxclockとします。user1観点から見ると、これはそれuser1自体が実行されるのと同じでなければなりません。user1xclock

プロセスの所有者はプロセスを開始したユーザーであるためですxclockuser2重要ではない

編集する:使用できますsudoが、パスワードは使用できませんuser1。パスワードがわからない。

どうすればいいですか?


私は読んだこの回答そしてこの回答しかし、これの直接的な例は含まれていません。また、クッキーのリストを読んで受信しましたが、~/.Xautority使用できません。MIT-MAGIC-COOKIE-1xauth list

接続プロンプトでssh次のように試しましたuser2

$ env DISPLAY=:0 XAUTHORITY=/home/user1/.Xauthority xclock

ただし、これによりプロンプトは返されません。のようになることもありますのでご注意くださいsudoeruser2有能な.Xauthorityホームディレクトリのファイルの読み取り/コピー/書き込み。ただし、とが同じでも上記のuser1コマンドは機能しません。user2user1

ベストアンサー1

私はそれを使用したことがありませんが、sudoモニターに他のユーザーを置く標準的な手順は、認証情報をxauth(1)手動で使用する代わりにエクスポートを使用することです~/.Xauthority

したがって、user1モニターにログインしている場合、guest(user2)は次のコマンドを実行する必要があります。

user2$ export DISPLAY=:0
user2$ ssh user1@localhost "xauth extract - $DISPLAY" | xauth merge -
user2$ xclock

su次の代わりに使用できますssh

user2$ su - user1 -c "xauth extract - $DISPLAY" | xauth merge -

おすすめ記事