
Обычно я делаю это по ssh для получения X-приложения с помощьюsudo su
ssh -X server
OKI-логин
xauth list $DISPLAY
который возвращается ко мне
server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla
Тогда я делаю
sudo su
xauth add server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla
И после запуска приложения X... Я понимаю, это правильно.
Проблема на Centos7, я делаю
xauth list $DISPLAY
И ничего не возвращает. Я пытаюсь добавить MIT magic cookies, предоставленные
xauth list
Но, конечно, это не работает. Обычный X-forwarding через ssh, без sudo, работает.
Настройки sshd одинаковы на 3 серверах:
- слаквареРАБОТАЕТ
- hpux РАБОТАЕТ
- centos7 НЕ РАБОТАЕТ
решение1
Другое решение — объединить файл .Xauthority текущего пользователя с файлом пользователя root.
ssh user@host
- измените права доступа к файлу .Xauthority так, чтобы root также имел к нему доступ.
sudo su - root
xauth merge /home/users/user/.Xauthority
Тест
gedit somefile.log
Должно открыться окно gedit.
решение2
Чтобы сделать решение постоянным, вы можете изменить .bashrc
файл пользователя, добавив
if [ -z "$XAUTHORITY" ]; then
export XAUTHORITY=$HOME/.Xauthority
fi
более того, вам придется обновить свой sudoers
файл, добавив строку
Defaults env_keep+="DISPLAY XAUTHORITY"
Если у пользователя root есть права на чтение файла пользователя, .Xauthority
вы сможете использовать X-приложения.
решение3
Решение найдено. Альтернативный метод скопирован из этогоблог Используя этот скрипт
userfirst=sshloginuser
usersecond=sudoorsuuser
$usersecond@host$
su - $userfirst -c 'xauth list' |\
grep `echo $DISPLAY |\
cut -d ':' -f 2 |\
cut -d '.' -f 1 |\
sed -e s/^/:/` |\
xargs -n 3 xauth add
Или просто войдите как пользователь1
xauth list
su или sudo su пользователь2
xauth add OUTPUTOFXAUTHLIST
решение4
Очень простая общая команда:
sudo xauth merge /home/$USER/.Xauthority
Это активирует среду root и объединяет информацию xauth текущего (не root) пользователя.
Другая альтернатива должна предотвратить проблему с владением, о которой сообщалось в комментариях к Slackware:
cat ~/.Xauthority | sudo xauth merge -