質問: `$ xauthority`はsu + tmuxの 'nowhere'から表示されます su+bashからsu+tmux+zshに切り替えると、$xauthority変数が/root/.xauthxxxxxxとして定義されていることに気付きました。ここでxxxxxxは6文字のランダムな英数字です。以前の構成では、xはrootで問題なく動作しましたが、今度は~username/.xauthorityを$xauthorityにコピーする必要があります。変数はどこにも定義されていません。 .zshrc、/etc/profile*、/etc/profile.d/*などをチェックしました。# env term=screen shell=/usr/bin/tmux user=toor tmux=/tmp//tmux-0/default,6495,3 path=/sbin:/bin:/usr/sbin:/usr/bin pwd=/root shlvl=2 home=/root logname=toor display=:0.0 xauthority=/root/.xauthuszll4 colorterm=gnome-terminal _=/bin/env oldpwd=/root editor=vim vcs_info_msg_0_= vcs_info_msg_1_= % echo $xauthority /home/mpiechotka/.xauthority % su password: # echo $xauthority /root/.xauthuszll4 # ls $xauthority ls: cannot access /root/.xauthuszll4: no such file or directory # cat .tmux.conf set -g default-command /bin/zsh set -g default-shell /bin/zsh suはsu - toorにエイリアスされ、tmuxをシェルとして開きます。 toorは、異なるシェルを持つルートのエイリアスです。通常のsuにも表示されることを発見しました。それはしばらく前にはしませんでした。set-environmentが機能しませんでした。xhost +localhostは機能しませんでしたが、xhost +(すべての制御を無効にする)didは機能します。
回答: それは私に起こりましたが、今回は$ colorterm変数を使用しました。たとえば、colorterm = terminalを持つターミナルエミュレータでtmuxを起動し、その後、通常はcolorterm = gnome-terminalを持つ別のターミナルクライアントでも別のtmuxセッションを開始すると、この新しいセッションはクロスオーバーしてcolorterm = terminalを継承します。 。これらのアサーションは、残念ながら、異なるターミナルエミュレーターを使用している場合でも、tmuxセッションが互いに分離されていないと結論付けるのに十分です。su sub shellは、おそらく別のtmuxセッション、より具体的には作成された最初のtmuxセッションから$ xauthorityを継承しています。