`$ XAUTHORITY` появляется из 'нигде' на su + tmux

Когда я переключился с 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_= по # 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 to su - toor и открывает tmux качестве оболочки. toor – это псевдоним корня с другой оболочкой.

PS. Я просто обнаружил, что он тоже появляется на нормальном su. Это было не так давно …

Изменить 2 set-enviroment не помогло ни

Редактировать 3 xhost +localhost не помогло, но xhost + (отключив все управление) DID помог.

3 Solutions collect form web for “`$ XAUTHORITY` появляется из 'нигде' на su + tmux”

Вот что я думаю, что происходит.

Когда вы используете su и bash , su session наследует среду, за исключением USER , HOME и SHELL , поэтому XAUTHORITY прежнему указывает на ~username/.Xauthority и все в порядке. Однако (с man- страницы), когда запущен сервер tmux :

… tmux копирует среду в глобальную среду; кроме того, каждый сеанс имеет среду сеанса. Когда создается окно, сеансовые и глобальные среды объединяются с средой сеанса, переопределяя любую переменную, присутствующую в обоих.

и я подозреваю (не зная сведений о вызове), что при переключении учетных данных su пытается найти .Xauthority в /root и, поскольку он не может найти его, когда вам нужно запустить приложение X , он создает его. Я могу придумать пару способов, которые вы можете исправить:

  1. Вызовите su , используя su - . Это скопирует содержимое реального пользователя
  2. Добавьте set-environment <name> <value> в конфигурацию tmux .

К сожалению, я не могу проверить это, так как я недавно переключился на i3 (что удивительно), и у меня нет запасной машины.

Это может быть связано с неправильно сконфигурированным модулем PAM_xauth PAM. Предполагается скопировать ваши ключи во временный файл при запуске su . Поведение, которое вы описываете, согласуется с созданием временного файла pam_xauth, но каким-то образом не копированием ключей (возможно, потому, что у вас есть ~/.xauth/export или /root/.xauth/import ).

Это случилось со мной, но на этот раз с переменной $ COLORTERM.

Если вы запускаете tmux на эмуляторе терминала, который имеет, например, COLORTERM = terminus, и после этого вы запускаете еще один сеанс tmux даже на другом терминальном клиенте, который обычно имеет COLORTERM = gnome-terminal, этот новый сеанс будет кроссовером и наследовать COLORTERM = terminus ,

Эти утверждения достаточно, чтобы сделать вывод о том, что, к сожалению, сеансы tmux не изолированы друг от друга, даже если вы используете разные терминальные эмуляторы.

Ваша su-оболочка, вероятно, наследует $ XAUTHORITY из другого сеанса tmux, точнее, самого первого сеанса tmux.

  • Как связать Ctrl-Alt- в Tmux?
  • Возможно ли запустить сеанс видимости tmux
  • Отправить переменную через привязку tmux
  • Установите переменную окружения для всех оболочек tmux при перезапуске gnome-сессий
  • Выполнить команду в нескольких активных оболочках одновременно
  • убедитесь, что все сеансы tmux прекращаются, когда сеанс SSH заканчивается
  • Прокрутка текста при использовании tmux?
  • В tmux можно ли перечислить все окна во всех окнах?
  • Tmux-logging: zle reset-prompt причина войти в файл журнала
  • Имитация оболочки оболочки GNU в tmux
  • Получение 256 цветов для работы в терминальном мультиплексоре
  • Interesting Posts

    Без терминала в режиме резервного копирования Mint Linux

    Почему убийство процесса печатается в консоли

    Как получить кодовое имя Debian без lsb-release

    Почему «find -exec cmd {} +« нужно положить в конец »{} + '?

    Как расшифровать зашифрованный контейнер через ssh без ввода парольной фразы, требуя некоторой проверки подлинности клиента?

    Как я могу определить, какие команды выполняются на процессоре?

    Как получить только определенные поля из данного файла?

    Как заменить разделитель определенного столбца

    В состоянии Bash if, как проверить, существуют ли какие-либо файлы, соответствующие простому шаблону?

    для цикла для сравнения пар файлов

    Как установить WPS Презентация программы Powerpoint по умолчанию в Debian?

    Linux-рейд собрал «сам» с неисправным приводом. Зачем?

    Отказ от доступа к MySQL (CentOS)

    Выполните команду после 10 минут загрузки

    Что лучше для веб-сервера уровня продукта: RHEL / Ubuntu Server / Debian / CentOS

    Linux и Unix - лучшая ОС в мире.