GNU/Linux >> Tutoriales Linux >  >> Linux

¿`$xauthority` aparece de 'ninguna parte' en Su+tmux?

Cuando cambié de su+bash a su+tmux+zsh Noté que obtengo el $XAUTHORITY variable definida como /root/.xauthXXXXXX donde XXXXXX son 6 caracteres alfanuméricos aleatorios. Con la configuración anterior, X funcionaba con la raíz sin problemas, pero ahora necesito copiar ~username/.Xauthority a $XAUTHORITY .

La variable no está definida en ninguna parte; Revisé .zshrc , /etc/profile* , /etc/profile.d/* etc.

# 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 tiene el alias de su - toor y abre tmux como concha toor es un alias de root con diferente shell.

Acabo de descubrir que también aparece en su normal. No hacía eso hace algún tiempo.

set-environment no funcionó.

xhost +localhost no funcionó, pero xhost + (deshabilitando todos los controles) FUNCIONÓ.

Respuesta aceptada:

Esto es lo que creo que está sucediendo.

Cuando estás usando su y bash , el su -session hereda el entorno con la excepción de USER , HOME y SHELL , por lo tanto XAUTHORITY todavía apunta a ~username/.Xauthority y todo está bien Sin embargo (desde la página man), cuando tmux se inicia el servidor:

… tmux copia el entorno en el entorno global
; además, cada sesión tiene un entorno de sesión. Cuando se crea una ventana
, la sesión y los entornos globales se fusionan con
el entorno de la sesión anulando cualquier variable presente en ambos.

y sospecho (sin conocer los detalles de la invocación) que cuando cambia las credenciales, su intenta encontrar .Xauthority en /root y dado que no puede encontrar uno cuando necesita ejecutar un X aplicación, crea una. Se me ocurren un par de formas en las que puedes intentar arreglar esto:

  1. Invocar su usando su - . Esto copiará el entorno del usuario real
  2. Agregar set-environment <name> <value> a su tmux configuración.

Desafortunadamente, no puedo probar esto porque recientemente me cambié a i3 (que es increíble) y no tengo una máquina de repuesto.


Linux
  1. Consideraciones posteriores a la migración al migrar desde Amazon Web Services

  2. Acelere rsync al migrar un servidor Linux desde la línea de comandos

  3. GLIBCXX_3.4.9 no encontrado al ejecutar ffmpeg desde php en el servidor lampp

  4. ¿Es posible simular ningún acceso externo desde una máquina Linux durante el desarrollo?

  5. En Linux, ¿desde cuándo comienza a contar el tiempo de actividad?

¿La pantalla se desordenó cuando se reanuda desde la suspensión?

Aprovisione recursos en la nube al migrar desde Amazon Web Services

Errores clásicos de Path.DirectorySeparatorChar al pasar de .NET Core en Windows a Linux

Cómo evitar que las conexiones SSH se desconecten por inactividad al usar MobaXterm

Error 1312 del uso de la red al mapear el recurso compartido de samba

Edite el menú de inicio al iniciar desde un CD en vivo