GNU/Linux >> Belajar Linux >  >> Linux

`$xauthority` Muncul Dari 'nowhere' Di Su+tmux?

Ketika saya beralih dari su+bash ke su+tmux+zsh Saya perhatikan bahwa saya mendapatkan $XAUTHORITY variabel didefinisikan sebagai /root/.xauthXXXXXX dimana XXXXXX adalah 6 karakter alfanumerik acak. Dengan konfigurasi sebelumnya, X bekerja dengan root dengan sempurna, tetapi sekarang saya perlu menyalin ~username/.Xauthority ke $XAUTHORITY .

Variabel tidak didefinisikan di mana pun; Saya memeriksa .zshrc , /etc/profile* , /etc/profile.d/* dll.

# 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 alias su - toor dan membuka tmux sebagai cangkang. toor adalah alias root dengan shell yang berbeda.

Saya baru saja menemukan bahwa itu muncul di su normal juga. Itu tidak dilakukan beberapa waktu lalu.

set-environment tidak berhasil.

xhost +localhost tidak berfungsi, tetapi xhost + (menonaktifkan semua kontrol) BERHASIL.

Jawaban yang Diterima:

Inilah yang menurut saya sedang terjadi.

Saat Anda menggunakan su dan bash , su -session mewarisi lingkungan dengan pengecualian USER , HOME dan SHELL , jadi XAUTHORITY masih menunjuk ke ~username/.Xauthority dan semuanya baik-baik saja. Namun (dari halaman manual), ketika tmux server dimulai:

… tmux menyalin lingkungan ke dalam lingkungan
global; selain itu, setiap sesi memiliki lingkungan sesi. Saat
jendela dibuat, sesi dan lingkungan global digabungkan dengan
lingkungan sesi yang menggantikan variabel apa pun yang ada di keduanya.

dan saya menduga (tanpa mengetahui detail permintaan) bahwa ketika Anda mengganti kredensial, su mencoba menemukan .Xauthority di /root dan karena tidak dapat menemukannya saat Anda perlu menjalankan X aplikasi, itu menciptakan satu. Saya dapat memikirkan beberapa cara yang dapat Anda coba untuk memperbaikinya:

  1. Aktifkan su dengan menggunakan su - . Ini akan menyalin lingkungan pengguna sebenarnya
  2. Tambahkan set-environment <name> <value> ke tmux . Anda konfigurasi.

Sayangnya, saya tidak dapat menguji ini karena saya baru saja beralih ke i3 (yang luar biasa) dan saya tidak memiliki mesin cadangan.


Linux
  1. Cara Mempercepat Proses Kompilasi Saat Menginstal Paket Dari AUR

  2. Windows – Bagaimana Mencegah Windows Menimpa Grub Saat Menggunakan Mesin Dual-boot?

  3. Kapan Seseorang Harus Mengkompilasi Dan Menginstal Dari Sumber?

  1. Cegah Panel/jendela Dari Menutup Saat Perintah Selesai – Tmux?

  2. Tingkatkan Ubuntu 16.04.1 Dari 14.04, Tidak Ada Desktop yang Muncul?

  3. Pertimbangan pascamigrasi saat bermigrasi dari Amazon Web Services

  1. Percepat rsync saat memigrasi server Linux dari baris perintah

  2. Kesalahan 1312 dari penggunaan bersih saat memetakan berbagi samba

  3. Edit menu boot saat mem-boot dari live CD