Управление доступом через XDMCP

В файле, имя которого передаётся через опцию AccessFile, находится информация, которую kdm использует для управления подключениями дисплеев, использующих XDMCP. Файл содержит записи четырёх типов: записи, управляющие ответами на «прямые» (Direct) и «широковещательные» (Broadcast) запросы, управляющие ответами на «непрямые» (Indirect) запросы, макроопределения записей предыдущего типа и записи, определяющие, через какие сетевые интерфейсы kdm будет принимать запросы XDMCP. Пустые строки и строки, которые начинаются с символа # (комментарии) игнорируются. Строка, следующая за символами \, также будет проигнорирована. Благодаря этому, список узлов, запрашивающих подключение, может занимать несколько строчек.

The format of the «Direct» entries is simple, either a host name or a pattern, which is compared against the host name of the display device. Alternatively, a macro may be used to make the entry match everything the macro expands to. Patterns are distinguished from host names by the inclusion of one or more meta characters; * matches any sequence of 0 or more characters, and ? matches any single character. If the entry is a host name, all comparisons are done using network addresses, so any name which converts to the correct network address may be used. Note that only the first network address returned for a host name is used. For patterns, only canonical host names are used in the comparison, so ensure that you do not attempt to match aliases. Host names from XDMCP queries always contain the local domain name even if the reverse lookup returns a short name, so you can use patterns for the local domain. Preceding the entry with a ! character causes hosts which match that entry to be excluded. Preceding it with an = has no effect but is required when specifying a macro to distinguish the entry from a macro definition. To only respond to «Direct» queries for a host or pattern, it can be followed by the optional NOBROADCAST keyword. This can be used to prevent a kdm server from appearing on menus based on «Broadcast» queries.

Записи, содержащие ключевое слово «Indirect» (настраивают реакцию на непрямые запросы) также содержат имя машины, шаблон или макрос, но за ним следует список имён машин, на которые будут перенаправлены запросы, или макрос, который задаёт эти имена. Перед этими записями вы также можете указать символ ! (исключить машины, соответствующие указанной строке). При этом вам следует добавить синтаксически верное имя машины, чтобы программа могла отличить такие записи от настраивающих реакцию на «прямые» запросы. Если программа была собрана с поддержкой IPv6, вы можете указывать группу сетевых адресов. Если запись содержит ключевое слово CHOOSER, kdm не перенаправляет запросы, а выводит диалоговое окно выбора машины. Программа выбора машины отправляет прямой запрос на каждую машину из списка, и отображает меню всех машин, ответивших на запрос. Если список машин содержит ключевое слово BROADCAST, программа выбора машины отправит широковещательный запрос. Обратите внимание, что на некоторых системах нельзя делать широковещательные запросы по протоколу UDP. На таких системах эта техника работать не будет.

При проверке наличия в списке конкретной машины, все записи проверяются по очереди, и первая соответствующая запись определяет возвращаемое значение. При поиске записи, задающей реакцию на запрос какого-либо типа, записи других типов игнорируются.

Определение макроса содержит имя макроса, список машин, и имя другого (добавляемого) макроса. Имена макросов, в отличие от имён машин, начинаются с символа %.

Последний тип записи -- директива LISTEN. Синтаксис:

 LISTEN [интерфейс [список адресов]]
. Если указана хотя бы одна запись этого типа, kdm будет принимать запросы XDMCP только через указанные интерфейсы. Интерфейс -- имя машины или IP-адрес, представляющий сетевой интерфейс на этой машине, или шаблон * (соответствует всем доступным сетевым интерфейсам). Если указан список адресов, kdm добавляет их к указанному интерфейсу. Для групп адресов IPv6 в качестве диапазона адресов стандарты IANA задают ff0X:0:0:0:0:0:0:12b для XDMCP. X -- префикс, соответствующий действительному идентификатору группы (см. IETF RFC 2373 или аналогичный документ по определениям групп). По умолчанию kdm прослушивает адрес ff02:0:0:0:0:0:0:12b, что наиболее похоже на поведение подсети, работающей на протоколе IPv4. Если в файле не указано ни одной строки LISTEN, kdm (если он собран с поддержкой IPv6) прослушивает все интерфейсы и присоединяется к группе XDMCP IPv6 по умолчанию. Чтобы выключить прослушивание запросов XDMCP, вы можете ввести строку LISTEN без адресов, но лучше использовать опцию секции [Xdmcp] Enable.