В системе X Window менеджер отображения X представляет собой графический менеджер входа в систему , который запускает сеанс входа на X-сервер с того же или другого компьютера .
Менеджер отображения представляет пользователю экран входа в систему . Сеанс начинается, когда пользователь успешно вводит правильную комбинацию имени пользователя и пароля .
Когда дисплейный менеджер работает на компьютере пользователя, он запускает X-сервер перед тем, как показать пользователю экран входа в систему, опционально повторяя его при выходе пользователя из системы. В этом состоянии DM реализует в X Window System функциональность getty и login на терминалах с символьным режимом . Когда дисплейный менеджер работает на удаленном компьютере, он действует как сервер telnet , запрашивая имя пользователя и пароль и запуская удаленный сеанс.
X11 Release 3 представила менеджеры дисплеев в октябре 1988 года с целью поддержки автономных X-терминалов , которые только что появились на рынке. Различные менеджеры дисплеев продолжают использоваться в повседневной работе для предоставления графического приглашения на вход в систему на автономных рабочих станциях с X. X11R4 представила протокол управления X-дисплеем ( XDMCP ) в декабре 1989 года для устранения проблем в реализации X11R3.
XDM (X Window Display Manager) появился в X11R3. Эта первая версия, написанная Кейтом Паккардом из MIT X Consortium, имела несколько ограничений, наиболее заметным из которых было то, что она не могла определить, когда пользователи выключали и включали X-терминалы. В X11R3 XDM знал о X-терминале только из его записи в файле Xservers , но XDM обращался к этому файлу только при запуске. Таким образом, каждый раз, когда пользователь выключал и включал терминал, системный администратор должен был отправлять сигнал SIGHUP в XDM, чтобы дать ему команду повторно сканировать Xservers .
XDMCP появился с введением X11R4 (декабрь 1989 г.). С XDMCP X-сервер должен активно запрашивать соединение с диспетчером дисплеев у хоста. Поэтому X-сервер, использующий XDMCP, больше не требует записи в Xservers .
Диспетчер отображения может работать на том же компьютере, где находится пользователь, запуская один или несколько X-серверов, отображая экран входа в систему в начале и (опционально) каждый раз, когда пользователь выходит из системы, или на удаленном компьютере, работая по протоколу XDMCP.
Протокол XDMCP предписывает, чтобы X-сервер запускался автономно и подключался к менеджеру дисплея. В парадигме X Window System сервер работает на компьютере, предоставляющем дисплей и устройства ввода. Сервер может подключиться, используя протокол XDMCP, к менеджеру дисплея, работающему на другом компьютере, запрашивая его на запуск сеанса. В этом случае X-сервер действует как графический клиент telnet , в то время как менеджер дисплея действует как сервер telnet: пользователи запускают программы с компьютера, на котором запущен менеджер дисплея, в то время как их ввод и вывод происходят на компьютере, где находится сервер (и пользователь).
Администратор обычно может настроить программу XDMCP Chooser , запущенную на локальном компьютере или X-терминале, для подключения к X-дисплею определенного хоста или для отображения списка подходящих хостов, из которых пользователь может выбирать. Большинство реализаций позволяют такому списку содержать:
Когда пользователь выбирает хост из списка, XDMCP Chooser, работающий на локальной машине, отправляет сообщение диспетчеру отображения выбранного удаленного компьютера и дает ему команду подключиться к X-серверу на локальном компьютере или терминале.
Протокол управления X Display Manager (XDMCP) использует порт UDP 177. X-сервер запрашивает запуск сеанса диспетчером дисплеев, отправляя пакет . Если диспетчер дисплеев разрешает доступ для этого X-сервера, он отвечает отправкой пакета обратно на X-сервер. (X-сервер также может отправлять или пакеты для запуска сеанса — этот механизм запроса сеанса напоминает использование DHCP для запроса IP-адреса.)Query
Willing
BroadcastQuery
IndirectQuery
Диспетчер дисплеев должен аутентифицировать себя на сервере. Для этого X-сервер отправляет Request
пакет диспетчеру дисплеев, который возвращает Accept
пакет. Если Accept
пакет содержит ответ, который ожидает X-сервер, диспетчер дисплеев аутентифицируется. Для создания правильного ответа диспетчеру дисплеев может потребоваться, например, доступ к секретному ключу . Если аутентификация прошла успешно, X-сервер отправляет Manage
пакет, чтобы информировать диспетчер дисплеев. Затем диспетчер дисплеев отображает свой экран входа, подключаясь к X-серверу как обычный X-клиент.
В течение сеанса сервер может отправлять KeepAlive
пакеты менеджеру дисплеев с интервалами. Если менеджер дисплеев не отвечает пакетом Alive
в течение определенного времени, X-сервер предполагает, что менеджер дисплеев прекратил работу, и может разорвать соединение.
Одна из проблем с XDMCP заключается в том, что, как и в случае с telnet , аутентификация происходит без шифрования. Если возможен слежка, система остается уязвимой для атак. Для X-трафика безопаснее использовать туннель ssh . [1]
X Window System использует XDM в качестве стандартного менеджера дисплеев.
Программисты разработали другие X-дисплейные менеджеры, как коммерческие, так и бесплатные, предлагающие дополнительные функции по сравнению с базовым управлением дисплеями:
В некоторых дистрибутивах Unix менеджер отображения по умолчанию выбирается в файле $PREFIX/etc/X11/default-display-manager.