июля 10, 2007

Запуск програм X11 через ssh туннель из под root и используя sudo

Существует проблема запуска программ X11 из под другого пользователя (root) через ssh туннель и с помощью sudo в сеансе пользователя. Она связана с аутентификацией сеансов X11 (Например выдается ошибка: Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :0.0). Данная проблема решается указанным далее образом.

  • Подключаемся к удаленному хосту:
  • ssh -Y USER@some.hostname
  • Получаем рутовые привилегии:
  • su -
  • И объединяем файлы Xauthority:
  • xauth merge /home/USER/.Xauthority

Все, можно запускать программы X11 от имени root.

Кстати, можно включить форвардинг X11 глобально, в конфигурации ssh - /etc/ssh/ssh_config ( ForwardX11 yes), тогда не нужно добавлять флаг -Y в командной строке.

Запуск программ X11 используя sudo

Для того, чтобы запускать программы X11 используя sudo достаточно внести изменения в файл конфигурации /etc/sudoers. А именно - добавить в список параметра env_keep значения DISPLAY и XAUTHORITY:

Defaults env_keep = "DISPLAY XAUTHORITY ..."

Все, можно запускать программы X11 через sudo. Например попробуйте запустить - sudo xclock.

Этот способ работает и из под Gnome и из под KDE. Если в sudoers установлен параметр требовать пароль пользователя, то нужно запускать команду sudo из терминала, так как стандартного диалога GTK/KDE для ввода пароля на предусмотрено.

Комментариев нет: