回答:
xauthを選択的に使用するには、user1として次を実行します。
xauth list|grep `uname -n`
これにより、ヘキサキー認証エントリが出力されます。これらのホストに関連付けられた異なるディスプレイを使用することもできます。
user2がディスプレイを設定すると(デフォルトのケースを想定):
DISPLAY=:0; export DISPLAY
次に実行します:
xauth add $DISPLAY . hexkey
$ DISPLAYの後、16進キーの前のドットに注意してください。
アクセスが不要になったら、user2で次を実行できます。
xauth remove $DISPLAY
unset XAUTHORITY
user2の下
hexkey
でxauth add
から同じコマンドxauth list
または私はランダムな新しいものを作成する必要がありますか?
私は私.zshrc
のラインを入れて、export XAUTHORITY=~/.Xauthority
今私は実行することができsudo -E xcommand
ます。多くのグーグルの後、私にとってこれが最も簡単な方法でした。
sudo -E
(-E
ほとんどのデフォルトのインストールでは使用は無効になっています)。sudoers
XAUTHORITY
-E
。渡すことができる変数として設定でき、Red HatまたはDebianが推奨しています。
debianまたはubuntuを前提としています(Red Hat / SUSEでも同様です)。
sudo apt-get install sux
sux user -c 'command'
sux
メンテナンスされていない(およびDebian / Ubuntuのリポジトリから削除されている):packages.qa.debian.org/s/sux/news/20140101T172633Z.html
最初:使用しないでくださいxhost +
。かなり安全ではありません(毛布許可/拒否)。
代わりに、X-Cookieメカニズムを使用します。
su user2
cp /home/user1/.Xauthority /home/user2/.Xauthority
export DISPLAY=:0
あるいは、sux
インストール済みの場合は、それを使用します(ehempelの回答を参照)。
どちらの場合も、user2は.XauthorityのシークレットCookieを使用してXサーバーを認証し、他のユーザーはアクセスできません。
ノート:
.Xauthority
することもできxauth
ます(Randallの回答を参照)。.Xauthority
ファイルに複数のキーがある場合、これはより選択的です。それ以外の場合は、好みの問題です。GNOMEの場合(およびデスクトップ環境がまったくない場合、icewmでのみ使用します)gksu
:
gksu -u username program
.Xauthority
、user2のホームディレクトリにファイルがありません。問題2:どういうわけか、何らかの理由でsu
、XAUTHORITYがuser1のファイルパスを保持した後、理解できません。ただし、そのファイルはuser2で読み取ることはできません。