Když jsem přešel z su+bash na su+tmux+zsh Všiml jsem si, že dostávám $XAUTHORITY proměnná definovaná jako /root/.xauthXXXXXX kde XXXXXX je 6 náhodných alfanumerických znaků. S předchozí konfigurací X fungoval s rootem bezchybně, ale teď musím zkopírovat ~username/.Xauthority na $XAUTHORITY .
Proměnná není nikde definována; Zkontroloval jsem .zshrc , /etc/profile* , /etc/profile.d/* atd.
# 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 má alias su - toor a otevře tmux jako skořápka. toor je alias root s jiným shellem.
Právě jsem zjistil, že se objevuje i na normálním su. Před časem to neudělalo.
set-environment nefungovalo.
xhost +localhost nefungovalo, ale xhost + (vypnutí veškeré kontroly) DID work.
Přijatá odpověď:
Zde je to, co si myslím, že se děje.
Když používáte su a bash , su -session zdědí prostředí s výjimkou USER , HOME a SHELL , tedy XAUTHORITY stále ukazuje na ~username/.Xauthority a vše je v pořádku. Nicméně (z manuálové stránky), když tmux server je spuštěn:
… tmux zkopíruje prostředí do globálního
prostředí; navíc má každá relace prostředí relace. Když je vytvořeno
okno, relace a globální prostředí se sloučí s
prostředím relace, které přepíše jakoukoli proměnnou přítomnou v obou.
a mám podezření (aniž bych znal podrobnosti o vyvolání), že když změníte přihlašovací údaje, su pokusí se najít .Xauthority v /root a protože ho nemůže najít, když potřebujete spustit X aplikaci, vytvoří jednu. Napadá mě několik způsobů, jak to zkusit opravit:
- Vyvolejte
supomocísu -. Tím se zkopíruje prostředí skutečného uživatele - Přidejte
set-environment <name> <value>do vašehotmuxkonfigurace.
Bohužel to nemohu otestovat, protože jsem nedávno přešel na i3 (což je úžasné) a nemám náhradní stroj.