Удаленный запуск X-приложений
Поскольку система X Window построена на технологии "клиент — сервер", то X-сервер, выполняющийся на некотором компьютере, способен обслужи- вать X-приложения, выполняющиеся на других компьютерах. Это, в частно- сти, позволяет запускать клиентские X-приложения, требовательные к ресур- сам, на мощных компьютерах, отображая при этом графику с помощью X-сервера, запущенного на рабочей станции.
Один из важнейших моментов во взаимодействии X-сервера с удаленными X-клиентами состоит в авторизации X-клиентов, т. е. в предоставлении прав X-клиентам использовать данный X-сервер. В простейшем случае при отсут- ствии необходимости идентификации пользователей, работающих на уда- ленных компьютерах, авторизация X-клиентов может быть произведена с помощью программы xhost. Вызванная без аргументов, эта команда ото- бражает список имен узлов, с которых разрешен запуск X-приложений на данном сервере (пример 32.33).
Пример 32.33. Команда xhost |
$ xhost
access control enabled, only authorized clients can connect
В этом случае команда xhost сообщила, что контроль доступа включен. Так как данная команда не отобразила ни одного имени узла, с которого разре- шено взаимодействие X-клиентов, то данный X-сервер не будет отображать графику удаленных приложений. Для разрешения доступа X-приложений отовсюду следует выполнить команду xhost +. Эта команда выключает кон- троль доступа к X-серверу. Для его восстановления необходимо выполнить команду xhost –.
Используя команду xhost, можно указывать имена узлов, которые авторизо- ваны для запуска X-приложений, взаимодействующих с данным X-сервером (пример 32.34).
Пример 32.34. Разрешение на доступ к X-серверу указанному хосту |
$ xhost +classfw
classfw being added to access control list
$ xhost
access control enabled, only authorized clients can connect INET:classfw.class.edu
В этом примере в список авторизованных узлов внесен узел classfw. Его имя указано в файле /etc/hosts. Если имя узла не указано в этом файле, то про- грамма xhost сделает попытку обращения к серверу DNS.
Более безопасно воспользоваться средствами авторизации, основанными на шифрованных дайджестах. Такие возможности предоставляет программа xauth, позволяющая обмениваться такими дайджестами (MIT-MAGIC-COOKIE-1). Команда, приведенная в примере 32.35, передает дайджест с компьютера xsrv на компьютер xclnt. В результате этого, компьютер xclnt получает доступ к X-серверу на компьютере xsrv.
Пример 32.35. Команда xauth |
[user1@xsrv]$ xauth generate xsrv:0 [user1@xsrv]$ xauth list xsrv:0
xsrv/unix:0 MIT-MAGIC-COOKIE-1 20aace2a7dfb831f4e2a7828c4f2f7b8 [user1@xsrv]$ xauth extract — xsrv:0 | ssh xclnt xauth merge -
Приведенная в примере 32.36 команда xauth generate генерирует дайджест, который формируется из списка, выданного командой xauth list. Послед- няя команда примера пересылает дайджест посредством SSH на клиентский компьютер.
Запуск X-приложений, взаимодействующих с удаленным X-сервером, тре- бует указания узла, на котором запущен X-сервер. Это может быть осуществ- лено с помощью указания требуемого узла после опции X-приложений
–display (пример 32.36).
Пример 32.36. Запуск X-клиента, работающего с удаленным X-сервером |
$ xterm -display bamboo.class.edu:0.0 &
В этом примере X-приложение xterm, запущенное на узле classfw, будет отображать свои окна в X-сервере, запущенном на узле bamboo.class.edu.
Вместо указания имени узла с помощью опции -display можно воспользо- ваться переменной окружения DISPLAY, которой назначается имя дисплея (пример 32.37).
Пример 32.37. Переменная DISPLAY |
$ DISPLAY="bamboo.class.edu:0.0"
$ export DISPLAY
$ xterm &
После присвоения переменной окружения DISPLAY значения — имени уда- ленного узла X-приложения будут пытаться взаимодействовать с X-сервером на этом узле.
Наиболее безопасно использовать удаленные X-сессии, туннелируя их по- средством SSH. Туннелирование SSH разрешает настройка в файле конфигу- рации /etc/ssh/ssh_config на компьютере с X-сервером, приведенная в приме- ре 32.38.
Пример 32.38. Разрешение туннелирования X11 в /etc/ssh/ssh_config |
X11Forwarding yes
Вместо редактирования конфигурационного файла можно просто использо- вать опцию –X команды ssh (пример 32.39).
Пример 32.39. Туннель X11 в SSH |
workstation$ ssh –X dspless.class.edu netbeans
Команда в примере 32.39 запустит на машине dspless.class.edu приложение netbeans, графические окна которого будут отображаться на дисплее рабочей станции workstation. При этом пакеты протокола X11 будут туннелированы через SSH.
Дата добавления: 2015-06-12; просмотров: 782;