2012-01-18 5 views
2

私はsudoを使っている間にSSH X-11フォワーディングに問題がありました。私はそれのための解決策を見つけた。X-11フォワーディングのためのbashスクリプトの作成

$hostname 
server4.a.b.edu 

まず私が行います。その後、

$ echo $DISPLAY 
localhost:10.0 

$ xauth list 
server1.a.b.edu/unix:12 MIT-MAGIC-COOKIE-1 6026864294a0e081ac452e8740bcd0fe 
server4.a.b.edu/unix:10 MIT-MAGIC-COOKIE-1 f01fbfe0c0d68e30b45afe3829b27e58 

それから私は、sudoが機能するためには、私のサーバー名とクッキーのために、

$ sudo xauth add server4.a.b.edu/unix:10 MIT-MAGIC-COOKIE-1 f01fbfe0c0d68e30b45afe3829b27e58 

行う必要があります表示します。

これを自動化するためのbashスクリプトの作成方法を教えてください。

答えて

1

スクリプトは一切必要ありません。それはただのコマンドです。

sudo xauth add `xauth list $DISPLAY` 
+0

xauth:(argv):1:悪い "add"コマンドライン – Bruce

+0

'xauth list $ DISPLAY'はあなたのディスプレイの1行だけを与えますか?あなたが私とは違うバージョンのものを持っているのだろうかと思っています。 –

+0

それは何も表示されません... – Bruce

1

私は

sudo su otheruser -c "xauth add $(xauth list :${DISPLAY##*:}); xterm" 

を行うあなたはRHEL6に取り組ん

2

ことの一つは、例えば、sudoing前にXAUTHORITY変数をエクスポートして実行するGUIコマンドでのxtermを置き換えます

export XAUTHORITY=~/.Xauthority 
sudo xclock 
0

私はsshでログインした後でこれを使用します:

echo -n "xauth add `xauth list :${DISPLAY#*:}`" | sudo su - otheruser 
sudo su - otheruser 
echo -n "xauth remove :${DISPLAY#*:}" | sudo su - otheruser 

基本的には、ディスプレイのホスト名部分を削除します。 xauthは、このように使用してもそれを見つけます。

"su - otheruser"以外のコマンドに対してsudoの権限がない場合でも動作します。また、後で追加されたクッキーを削除してセキュリティとクリーン性を向上させます。 :)

真ん中のsudo su - otheruserコマンドを好きなsudoコマンドの亜種に置き換えることができます。

関連する問題