Написание сценария bash для пересылки X-11 - PullRequest
3 голосов
/ 19 января 2012

У меня были проблемы с переадресацией SSH X-11, когда я использовал sudo.Я нашел решение для этого.

$hostname
server4.a.b.edu

Сначала я делаю:

$ echo $DISPLAY
localhost:10.0

, затем

$ xauth list
server1.a.b.edu/unix:12  MIT-MAGIC-COOKIE-1  6026864294a0e081ac452e8740bcd0fe
server4.a.b.edu/unix:10  MIT-MAGIC-COOKIE-1  f01fbfe0c0d68e30b45afe3829b27e58

Затем мне нужно сделать

$ sudo xauth add server4.a.b.edu/unix:10  MIT-MAGIC-COOKIE-1  f01fbfe0c0d68e30b45afe3829b27e58

для работы sudo, для cookie с моим именем сервера и отображением.

Как мне написать bash-скрипт для автоматизации этого?

Ответы [ 4 ]

4 голосов
/ 08 мая 2013

Одна вещь, которая работала на RHEL6, это экспорт переменной XAUTHORITY перед sudoing, например:

export XAUTHORITY=~/.Xauthority
sudo xclock
3 голосов
/ 19 января 2012

Вам вообще не нужен скрипт;это всего лишь одна команда.

sudo xauth add `xauth list $DISPLAY`
1 голос
/ 19 ноября 2012

Я делаю

sudo su otheruser -c "xauth add $(xauth list :${DISPLAY##*:}); xterm"

Замените xterm на команду GUI, которую вы хотите запустить

0 голосов
/ 11 марта 2015

Я использую это после того, как я вошел в систему с помощью ssh:

echo -n "xauth add `xauth list :${DISPLAY#*:}`" | sudo su - otheruser
sudo su - otheruser
echo -n "xauth remove :${DISPLAY#*:}" | sudo su - otheruser

По сути, он удаляет часть имени узла дисплея. xauth по-прежнему находит его при таком использовании.

Это работает, даже если у вас нет прав sudo для любой другой команды, кроме "su - otheruser". Это также удаляет добавленные куки впоследствии для повышения безопасности и чистоты. :)

Вы можете заменить команду sudo su - otheruser в середине любым вариантом команды sudo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...