GNU/Linux >> Linux Esercitazione >  >> Linux

`$xauthority` appare da 'nowhere' su Su+tmux?

Quando sono passato da su+bash a su+tmux+zsh Ho notato che ottengo il $XAUTHORITY variabile definita come /root/.xauthXXXXXX dove XXXXXX sono 6 caratteri alfanumerici casuali. Con la configurazione precedente, X ha funzionato perfettamente con root, ma ora devo copiare ~username/.Xauthority a $XAUTHORITY .

La variabile non è definita da nessuna parte; Ho controllato .zshrc , /etc/profile* , /etc/profile.d/* ecc.

# 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 di su - toor e si apre tmux come conchiglia. toor è un alias di root con shell diversa.

Ho appena scoperto che appare anche su su normale. Non l'ha fatto qualche tempo fa.

set-environment non ha funzionato.

xhost +localhost non ha funzionato, ma xhost + (disabilitando tutti i controlli) ha funzionato.

Risposta accettata:

Ecco cosa penso stia succedendo.

Quando utilizzi su e bash , il su -session eredita l'ambiente con l'eccezione di USER , HOME e SHELL , quindi XAUTHORITY punta ancora a ~username/.Xauthority e va tutto bene. Tuttavia (dalla pagina man), quando tmux il server è avviato:

… tmux copia l'ambiente nell'ambiente globale
; inoltre, ogni sessione dispone di un ambiente di sessione. Quando viene creata una finestra
, la sessione e gli ambienti globali vengono uniti con
all'ambiente della sessione che sovrascrive qualsiasi variabile presente in entrambi.

e sospetto (senza conoscere i dettagli di chiamata) che quando cambi le credenziali, su cerca di trovare .Xauthority in /root e poiché non riesce a trovarne uno quando devi eseguire una X app, ne crea una. Mi vengono in mente un paio di modi in cui puoi provare a risolvere questo problema:

  1. Richiama su utilizzando su - . Questo copierà l'ambiente dell'utente reale
  2. Aggiungi set-environment <name> <value> al tuo tmux config.

Sfortunatamente, non posso testarlo da quando sono passato di recente a i3 (che è fantastico) e non ho una macchina di riserva.


Linux
  1. Fai in modo che vim segua i collegamenti simbolici quando apri i file dalla riga di comando

  2. Impossibile scollegare il processo figlio quando il processo principale viene avviato da systemd

  3. Errore 1312 da net use durante la mappatura della condivisione samba

  4. Modifica il menu di avvio durante l'avvio da un CD live

  5. È possibile simulare l'assenza di accesso esterno da una macchina Linux durante lo sviluppo?

Linux:recupero dati da un formato accidentale su partizione Ext4?

Schermo incasinato quando riprende dalla sospensione?

Effettua il provisioning delle risorse cloud durante la migrazione da Amazon Web Services

Il classico Path.DirectorySeparatorChar ottiene risultati quando si passa da .NET Core su Windows a Linux

Come impedire la disconnessione delle connessioni SSH a causa dell'inattività quando si utilizza MobaXterm

GLIBCXX_3.4.9 non trovato durante l'esecuzione di ffmpeg da php nel server lampp