Ubuntu 16.04を実行すると、host
次のように設定されます。
- a
user1
でGUIログインを行った人host
。 - a
user2
、彼はasudoer
であり、ログインしていますただ文字()でssh
つなぎますssh user2@host
。
user2
たとえば、モニターでXアプリケーションを実行したいxclock
とします。user1
観点から見ると、これはそれuser1
自体が実行されるのと同じでなければなりません。user1
xclock
プロセスの所有者はプロセスを開始したユーザーであるためですxclock
。user2
重要ではない。
編集する:使用できますsudo
が、パスワードは使用できませんuser1
。パスワードがわからない。
どうすればいいですか?
私は読んだこの回答そしてこの回答しかし、これの直接的な例は含まれていません。また、クッキーのリストを読んで受信しましたが、~/.Xautority
使用できません。MIT-MAGIC-COOKIE-1
xauth list
接続プロンプトでssh
次のように試しましたuser2
。
$ env DISPLAY=:0 XAUTHORITY=/home/user1/.Xauthority xclock
ただし、これによりプロンプトは返されません。のようになることもありますのでご注意くださいsudoer
。user2
有能な.Xauthority
ホームディレクトリのファイルの読み取り/コピー/書き込み。ただし、とが同じでも上記のuser1
コマンドは機能しません。user2
user1
ベストアンサー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 -