su - user
suxを必要とせずに他のユーザーのために実行してX11にアクセスできるvncセッションがあります。
sudo sux - user
また、ユーザーを使用または切り替えようとすると、sudo su - user
X11にアクセスできなくなり、次のエラーが発生します。
認証エラーのため X11 接続が拒否されました。
sux
しかし、他の人も努力していますsu
。
もちろん、私はまだsuxが表示するメッセージを見て混乱しています。
Value of TERM has been set to "xauth -q remove localhost:100.0 2>/dev/null; xauth -q remove localhost/unix:100.0;"
古いキーを削除するのはなぜですか?必要性は何ですか?
suとsuxはほぼ同じように動作します。どちらも古いキーを削除し、両方が機能します。どうやってなぜ?
sudo su
そしてその理由は何ですか/sudo sux
動作しませんか?
ベストアンサー1
答え(sux
)はスクリプトのコメントにあります。 Xディスプレイクッキーを元のユーザー権限からrootユーザー権限に転送し、送信された権限を使用してXディスプレイを開くことができます。
読む価値がある部分は次のとおりです。
# We highjack the TERM environment variable to transfer the cookies to the
# other user. We do this so that they never appear on any command line, and
# because TERM appears to be the only environment variable that is not
# reset by su. Then, as long as 'echo' is a shell builtin, these cookies
# will never appear as command line arguments which means noone will be
# able to intercept them (assuming they were safe in the first place).
sux_term="TERM='$TERM'"
# now we can store the script that will restore the cookies on the other
# side of the su, in TERM!
# Remove the old cookies. They may cause trouble if we transfer only one
# cookie, e.g. an MIT cookie, and there's still a stale XDM cookie hanging
# around.
export TERM="xauth -q remove $DISPLAY 2>/dev/null;"
if [ -n "$sux_unix_display" ]
then
TERM="$TERM xauth -q remove $sux_unix_display;"
fi