sudo
ちょうどファイルが処理される方法で奇妙な点を見つけました.Xauthority
。
sudo xauth add $(xauth list | tail -1)
user@server: sudo xauth info
Authority file: /root/.xauthYZ21Nt
File new: no
File locked: no
Number of entries: 1
Changes honored: yes
Changes made: no
Current input: (argv):1
user@server: sudo xauth info
Authority file: /root/.xauth3BFy5d
File new: no
File locked: no
Number of entries: 1
Changes honored: yes
Changes made: no
Current input: (argv):1
user@server: sudo xauth list
server/unix:10 MIT-MAGIC-COOKIE-1 c922ab48defdf43b1092dffb86c06eed
user@server: sudo ls -la /root | grep auth
-rw-r--r-- 1 root root 0 Nov 9 14:40 .Xauthority
-rw------- 1 root root 57 Nov 9 15:23 .xauthsrxzxl
user@server: pkexec xauth info
Authority file: /root/.Xauthority
File new: no
File locked: no
Number of entries: 0
Changes honored: yes
Changes made: no
Current input: (argv):1
したがって、$XAUTHORITY
それぞれの新しい値は異なり、終了時に消える一時sudo
ファイルを指します。sudo
したがって、最後のコマンド(pkexec
代わりに使用sudo
してそこにあると予想/root/.Xauthority
)では、クッキーを見ることはできません。たとえば、うまくsudo gedit
動作しますがpkexec env DISPLAY=$DISPLAY gedit
失敗します。
.Xauthority
データがどこに保存されているのか、そしてもっと重要なのは、どのようにデータにアクセスできるのか、そしてこのような複雑な方法で行われるのですかpkexec
?
ベストアンサー1
オプションを使用してXサーバーを-auth
起動すると(パスワード)を含むファイルが作成されMIT-MAGIC-COOKIE-1
、パスワードを知っているユーザーだけがXウィンドウシステムに自分のウィンドウを表示できます。
MIT-MAGIC-COOKIE-1
複数(ネットワークログインなど)があるかもしれませんが、ssh -X
あなたの場合、このファイルをチェックすると、まったく同じ内容(cmp /root/.xauth1 /root/.xauth2
)を持つことになります。
ただし、別のXサーバーを起動してsudo
(またはsu
)を使用している場合は、新しいパスワードは異なる必要があります。
したがって、ファイルが異なる理由は、他のsudo
インスタンスがどのモニターを使用しているのかわからず、必要な固有のパスワードを取得して保存するための新しいファイルを作成するためです。