# Конфигурационные файлы &kdm;

Эта глава описывает файлы, определяющие поведение &kdm;. Некоторые его аспекты, но не все, могут быть настроены через соответствующий модуль Центра управления KDE.

## &kdmrc; — основной конфигурационный файл &kdm;

Формат файла похож на формат INI-файлов. Пары параметр-значение организованы в секции. Все наименования регистрозависимы. Если &kdm; встретит в файле синтаксическую ошибку, непредусмотренный параметр или секцию, будет выведено сообщение о некритической ошибке.

Строки, начинающиеся с символа `#`, являются комментариями. Комментарии и пустые строки игнорируются.

Начало секции отмечается так: `[`имя секции`]`.

Вы можете настроить каждый Х-дисплей отдельно.

Каждый дисплей имеет название, которое состоит из названия хоста сети (у локальных дисплеев, перечисленных в параметре `StaticServers` или `ReserveServers`, оно отсутствует), двоеточия и номера дисплея. Также дисплей принадлежит к одному из дисплейных классов. В большинстве случаев класс не учитывается.

Синтаксис секций, связанных с конкретным дисплеем (под словом «раздел» здесь и далее понимается раздел секции): `[X-` хост [ `:` номер [ `_` класс ] ] `-` раздел `]`

Все секции с одинаковым именем раздела составляют класс секций.

Вы можете использовать шаблон `*` (соответствует любому количеству любых символов) вместо имени хоста, номера и класса. Вы можете опустить эти компоненты, что аналогично их замене на `*`. Часть имени хоста может соответствовать спецификации домена, например, .inf.tu-dresden.de. Вы также можете использовать шаблон `+` (который соответствует непустой строке).

Чтобы выбрать секцию, из которой берётся настройка, программа использует следующие правила:

- Полное совпадение имени имеет большую значимость, чем частичное, значимость которого, в свою очередь, больше, чем у шаблона. Шаблон `+` имеет большую значимость, чем `*`.

- Значимость уменьшается слева направо для равных по предыдущему критерию совпадений.

- В качестве примера возьмём имя дисплея "myhost.foo:0", класс "dpy". Следующие названия секций приведены в порядке убывания значимости:

  - [X-myhost.foo:0_dpy]

  - [X-myhost.foo:0_*] (то же, что и [X-myhost.foo:0])

  - [X-myhost.foo:*_dpy]

  - [X-myhost.foo:*_*] (то же, что и [X-myhost.foo])

  - [X-.foo:*_*] (то же, что и [X-.foo])

  - [X-+:0_dpy]

  - [X-*:0_dpy]

  - [X-*:0_*] (то же, что и [X-*:0])

  - [X-*:*_*] (то же, что и [X-*])

  - Следующие названия секций НЕ соответствуют этому дисплею:

    [X-hishost], [X-myhost.foo:0_dec], [X-*:1], [X-:*]

Стандартные секции файла: [X-*] (относится ко всем дисплеям), [X-:*] (относится ко всем локальным дисплеям) и [X-:0] (относится к первому локальному дисплею).

Формат всех параметров таков: ``параметр`=`значение``. Параметры действительны только в том классе секций, для которого они определены. Некоторые настройки не применяются к определённым дисплеям. В этом случае они игнорируются.

Если настройка не найдена ни в одной из соответствующих монитору секций, используется значение по умолчанию.

Перед специальными символами нужно ставить символ обратной косой черты (начальные и конечные пробелы (`\s`), символ табуляции (`\t`), символ перевода строки (`\n`), символ возврата каретки (`\r`), сам символ обратной косой черты (`\\`)).

В списках поля разделяются запятыми. Вокруг запятой не должно быть пробелов.

Некоторые командные строки подвергаются разбиению на слова (упрощённые правила интерпретатора команд sh): одинарные (`'`) и двойные (`"`) кавычки имеют обычный смысл, символ обратной косой черты включает буквальную интерпретацию любого символа (не только специальных). Следует обратить внимание, что символы обратной косой черты нужно удваивать из-за двух уровней интерпретации.

Исходный файл &kdmrc; очень подробно прокомментирован. Если для настройки kdm будет использован Центр управления KDE, все комментарии будут удалены.

### Секция [General] файла &kdmrc;

Эта секция содержит общие настройки.

`ConfigVersion`

  Этот параметр относится к автоматическому обновлению. НЕ изменяйте его, это может препятствовать будущим обновлениям и привести к тому, что &kdm; не сможет запуститься.

`StaticServers`

  Список дисплеев (X-серверов), которыми &kdm; постоянно управляет. Дисплеи с названием сетевого хоста — удалённые (предполагается, что они уже работают), остальные — локальные (для них &kdm; запускает собственный X-сервер). См. `ServerCmd`. Каждый дисплей может принадлежать классу дисплеев, название которого добавляется к названию дисплея через символ подчёркивания. См. .

  Значение по умолчанию — :0.

`ReserveServers`

  Список дисплеев, активируемых по требованию. Синтаксис описан в `StaticServers`.

  Значение по умолчанию — пустая строка.

`ServerVTs`

  Список виртуальных терминалов, выделяемых X-серверам. Отрицательные числа означают выбор только свободных терминалов с номерами, равными абсолютной величине чисел списка. Если &kdm; исчерпает этот список, он будет выделять свободные терминалы с номерами больше абсолютной величины последнего значения в списке. На данный момент применим только к ОС Linux.

  Значение по умолчанию — пустая строка.

`ConsoleTTYs`

  Данный параметр предназначен для операционных систем (ОС) с поддержкой виртуальных терминалов (VT), поддержкой и со стороны &kdm;, и со стороны самой ОС. На данный момент применим только к ОС Linux.

  Когда &kdm; переходит в консольный режим, он начинает следить за всеми перечисленными здесь линиями TTY (без префикса `/dev/`). Если ни одна из них не активна в течение некоторого времени, &kdm; снова возвращается к графическому диалогу входа в систему.

  Значение по умолчанию — пустая строка.

`PidFile`

  В файле с указанным именем будет сохраняться идентификатор основного процесса (PID) &kdm;. Если имя не задано, PID сохраняться не будет.

  Значение по умолчанию — пустая строка.

`LockPidFile`

  Этот параметр определяет, будет ли &kdm; использовать файл блокировки для того, чтобы не было запущено более одного экранного менеджера.

  Значение по умолчанию — `true`.

`AuthDir`

  В указанном каталоге &kdm; будет хранить файлы авторизации Х-сервера во время запуска сеанса. &kdm; требует, чтобы при перезагрузке система удаляла устаревшие файлы.

  Файл авторизации для конкретного дисплея можно указать через параметр `AuthFile` секции [X-*-Core].

  Значение по умолчанию — /var/run/xauth.

`AutoRescan`

  Параметр определяет, будет ли &kdm; перечитывать файлы настроек при их изменении. Возможные значения — true (да) и false (нет).

  Значение по умолчанию — `true`.

`ExportList`

  Дополнительные переменные окружения. Они будут доступны всем программам, которые запускает &kdm;. Желательно, хотя не обязательно, указать `LD_LIBRARY_PATH` и `XCURSOR_THEME`.

  Значение по умолчанию — пустая строка.

`RandomFile`

  Если в системе нет источника энтропии (псевдослучайных данных), такого, как /dev/urandom (см. параметр `RandomDevice`) и не запущен какой-либо демон (пример, EGD), способный возвращать случайные числа (см. параметры `PrngdSocket` и `PrngdPort`), &kdm; будет использовать собственный генератор псевдослучайных чисел. Кроме всего прочего, этот генератор будет использовать значение контрольной суммы файла kdmrc.

  Если программа выполняется на Linux или ОС семейства BSD, этот параметр отсутствует.

  Значение по умолчанию — /dev/mem.

`PrngdSocket`

  Если в системе нет источника энтропии, такого, как /dev/urandom (см. параметр `RandomDevice`), kdm будет получать случайные данные от демона генерации псевдослучайных чисел (пример такого демона — EGD, http://egd.sourceforge.net) через указанный сокет UNIX.

  Если программа выполняется на Linux или ОС семейства BSD, этот параметр отсутствует.

  Значение по умолчанию — пустая строка.

`PrngdPort`

  Задаёт сокет TCP на локальной машине. Функция та же, что и у `PrngdSocket`.

`RandomDevice`

  Путь к символьному устройству, с которого &kdm; будет считывать случайные данные. Если он пуст, будет использоваться системный источник псевдослучайных чисел.

  Если программа работает под OpenBSD, параметр отсутствует, так как используется функция arc4_random.

  Значение по умолчанию — пустая строка.

`FifoDir`

  В указанном каталоге будут создаваться управляющие каналы FiFo. Если значение не указано, каналы не используются.

  Значение по умолчанию — /var/run/xdmctl.

`FifoGroup`

  Определяет, какой группе пользователей принадлежит файл, соответствующий глобальному управляющему каналу FiFo. Вы можете указать как имя, так и идентификатор группы.

`DataDir`

  В указанном каталоге &kdm; будет хранить данные, требующиеся для работы. К таким данным относится, например, имя последнего пользователя, вошедшего в систему на каком-либо дисплее.

  Значение по умолчанию — /var/lib/kdm.

`DmrcDir`

  В указанном каталоге &kdm; будет хранить пользовательские файлы `.dmrc`. Параметр используется, только если домашний каталог становится доступными для чтения только после входа пользователя в систему (пример — файловая система AFS).

  Значение по умолчанию — пустая строка.

### Параметры секции [Xdmcp] файла &kdmrc;

Параметры этой секции определяют, как &kdm; будет обрабатывать запросы &XDMCP;.

`Enable`

  Определяет, будет ли &kdm; принимать запросы &XDMCP;. Значение по умолчанию — `true`.

  Значение по умолчанию — `true`.

`Port`

  Номер порта UDP, через который &kdm; будет принимать запросы &XDMCP;. Изменение может потребоваться только при отладке системы.

  Значение по умолчанию — `177`.

`KeyFile`

  Метод аутентификации &XDMCP; XDM-AUTHENTICATION-1 требует, чтобы &kdm; связывал с каждым терминалом ключ доступа. Этот параметр задаёт путь к файлу, содержащему ключи. Каждая запись в файле должна состоять из имени дисплея и ключа.

  Значение по умолчанию — пустая строка.

`Xaccess`

  Для того, чтобы предотвратить несанкционированный доступ к &XDMCP;, но разрешить перенаправление запросов &XDMCP; (IndirectQuery), система использует файл, содержащий базу данных имён машин, которым разрешён прямой доступ к компьютеру, или на которых содержится список машин, на которые будут перенаправляться запросы. Формат этого файла описан в документе .

  Значение по умолчанию — ${`kde_confdir`}/kdm/Xaccess.

`ChoiceTimeout`

  Определяет время (в секундах), в течение которого программа будет ждать ответа от дисплея после того, как пользователь указал машину в окне выбора. Если в этот срок от дисплея был получен непрямой запрос &XDMCP; (IndirectQuery), он перенаправляется выбранной машине, иначе он рассматривается как связанный с другим сеансом, и окно выбора машины выводится снова.

  Значение по умолчанию — 15.

`RemoveDomainname`

  Обычно при определении имени дисплея для клиентов &XDMCP; возвращается полное имя машины. Поскольку это может привести к ошибкам, &kdm; удаляет часть, соответствующую доменному имени, если оно совпадает с именем локальной машины (если параметр включен).

  Значение по умолчанию — `true`.

`SourceAddress`

  Использовать IP-адрес компьютера, который подключается к системе вместо имени машины. Это используется, чтобы предотвратить попытки подключения к незапущенному интерфейсу.

  Значение по умолчанию — `false`.

`Willing`

  Задаёт программу, которая запускается (от имени root), когда система получает широковещательный или прямой запрос &XDMCP; (DirectQuery/BroadcastQuery) и должна предоставить возможность управления дисплеем через &XDMCP;. Вывод этой программы может показываться в окне выбора машины. Если программа не указана, посылается строка Willing to manage.

  Значение по умолчанию — пустая строка.

### Параметры секции [Shutdown] файла &kdmrc;

Секция содержит параметры, связанные с выключением системы.

`HaltCmd`

  Команда останова/выключения системы.

  По умолчанию установлено значение, подходящее для системы, на которой был собран &kdm;, например, `/sbin/shutdown `-h` `now``.

`RebootCmd`

  Команда перезагрузки системы.

  По умолчанию установлено значение, подходящее для системы, на которой был собран &kdm;, например, `/sbin/shutdown `-r` `now``.

`AllowFifo`

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

  Значение по умолчанию — `false`.

`AllowFifoNow`

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

  Если параметр `AllowFifo` отключен, этот параметр ни на что не влияет.

  Значение по умолчанию — `true`.

`BootManager`

  Менеджер загрузки системы, который будет использоваться для вывода параметров загрузки в диалоге завершения работы.

  `None`

    Нет менеджера загрузки

  `Grub`

    Загрузчик Grub

  `Lilo`

    Загрузчик Lilo (только Linux i386 и x86-64)

  Значение по умолчанию — None.

### Параметры класса секций [X-:*-Core] файла &kdmrc;

Секции этого класса содержат настройки ядра &kdm;.

`OpenDelay`

  См. параметр `OpenRepeat`.

  Значение по умолчанию — 15.

`OpenTimeout`

  См. параметр `OpenRepeat`.

  Значение по умолчанию — `120`.

`OpenRepeat`

  Эти параметры определяют поведение &kdm; при установке соединения с Х-сервером. `OpenDelay` задаёт задержку (в секундах) между попытками, `OpenRepeat` — количество попыток, `OpenTimeout` — время, в течение которого система будет пытаться установить соединение. Если было сделано количество попыток, указанное в `OpenRepeat`, или прошло время, указанное в `OpenTimeout`, подключение считается неудавшимся.

  Значение по умолчанию — `5`.

`StartAttempts`

  Определяет количество попыток пуска «чужих» дисплеев из списка `StaticServers` перед их отключением. Для локальных дисплеев число попыток — 1. Для дисплеев, работающих по протоколу &XDMCP;, это число зависит от программы-клиента (если Х-сервер не был запущен с параметром `-once`).

  Значение по умолчанию — `4`.

`ServerAttempts`

  Определяет количество попыток запуска Х-сервера.Под запуском понимается выполнение программы и ожидание её завершения.

  Значение по умолчанию — `1`.

`ServerTimeout`

  Определяет время (в секундах), в течение которого &kdm; будет ожидать запуска Х-сервера.

  Значение по умолчанию — 15.

`ServerCmd`

  Командная строка запуска X-сервера без номера дисплея и указания виртуального терминала (VT).

  По умолчанию установлено значение, имеющее смысл для системы, на которой был собран &kdm;, например, `/usr/X11R6/bin/X`.

`ServerArgsLocal`

  Дополнительные параметры X-серверов локальных сеансов.

  Значение по умолчанию — пустая строка.

`ServerArgsRemote`

  Дополнительные параметры X-серверов удалённых сеансов.

  Значение по умолчанию — пустая строка.

`ServerVT`

  Виртуальный терминал, на котором должен работать X-сервер. Вместо данного параметра должен использоваться `ServerVTs`. Если параметру не присваивать значение, &kdm; сделает это автоматически. Значение `-1` запрещает назначение виртуального терминала (это требуется при наличии нескольких физических консолей). На данный момент применим только к ОС Linux.

`ServerTTY`

  Данный параметр используется в случае, когда &kdm; или ОС не поддерживают виртуальные терминалы (VT). На данный момент применим ко всем ОС, кроме Linux.

  Когда &kdm; переходит в консольный режим, он начинает следить за данной линией TTY (указывается без префикса `/dev/`). Если линия неактивна в течение некоторого времени, &kdm; снова возвращается к графическому диалогу входа в систему.

  Значение по умолчанию — пустая строка.

`PingInterval`

  См. параметр `PingTimeout`.

  Значение по умолчанию — `5`.

`PingTimeout`

  Чтобы определить, доступны ли удалённые дисплеи, &kdm; периодически опрашивает их. Параметр `PingInterval` определяет интервал между запросами (в минутах), `PingTimeout` задаёт время (в минутах), в течение которого &kdm; будет ожидать ответа. Если ответ не был получен, сеанс считается неработающим и прерывается.

  Если вы часто используете Х-терминалы, связь которых с управляющей машиной может прерываться, возможно, следует увеличить время ожидания. Однако при этом, если произойдёт выключение терминала, сеанс некоторое время будет существовать.

  Значение по умолчанию — `5`.

`TerminateServer`

  Определяет, будет ли &kdm; заново запускать локальный Х-сервер после завершения сеанса. Используйте этот параметр, если при работе Х-сервера происходит утечка памяти или сбой системы.

  Значение по умолчанию — `false`.

`ResetSignal`

  Номер системного сигнала, который будет использоваться для перезапуска локального Х-сервера.

  Значение по умолчанию — 1 (SIGHUP).

`TermSignal`

  Номер системного сигнала, который будет использоваться для остановки локального Х-сервера.

  Значение по умолчанию — 15 (SIGTERM).

`Authorize`

  Определяет, будет ли &kdm; использовать авторизацию при подключениях к локальным Х-серверам. Дисплеи &XDMCP; сами определяют, будет ли использована авторизация; удалённые дисплеи, работающие не через &XDMCP;, авторизацию не поддерживают.

  Значение по умолчанию — `true`.

`AuthNames`

  Если параметр `Authorize` установлен в «true», kdm будет использовать механизмы авторизации, перечисленные здесь. Авторизацию по методу MIT-MAGIC-COOKIE-1 можно использовать всегда, доступность методов XDM-AUTHORIZATION-1, SUN-DES-1 и MIT-KERBEROS-5 определяется параметрами, заданными при сборке программы.

  Значение по умолчанию — DEF_AUTH_NAME.

`ResetForAuth`

  Некоторые старые версии Х-серверов перечитывают файл авторизации при перезапуске, а не во время подключения. Так как &kdm; создаёт информацию об авторизации перед подключением к дисплею, такой Х-сервер будет работать с, возможно, устаревшей информацией. Если используется этот параметр, &kdm; будет отправлять Х-серверу сигнал SIGHUP. При этом Х-сервер перезапустится и считает обновлённую информацию.

  Значение по умолчанию — `false`.

`AuthFile`

  Через указанный файл &kdm; и Х-сервер будут обмениваться информацией о авторизации (если Х-сервер был запущен с параметром `-auth`). Право записи в каталог с этим файлом должно быть ограничено, так как при удалении файла механизм авторизации Х-сервера отключается. Если значение не указано, файл со случайно сгенерированным именем будет создан в каталоге `AuthDir`. Имя файла будет содержать имя дисплея.

  Значение по умолчанию — пустая строка.

`Resources`

  Задаёт файл, который программа `xrdb` будет применять в качестве файла ресурсов к корневому окну экрана с номером 0. Под словом «ресурсы» понимаются специфические настройки, с помощью которых можно определить поведение Х-сервера в мельчайших деталях. Обычно файлы ресурсов Х-сервера не влияют на программы KDE, так что этот параметр может понадобиться только в случае, когда ресурсы использует программа, указанная в параметре `Setup`.

  Значение по умолчанию — пустая строка.

`Xrdb`

  Программа `xrdb` для считывания и анализа файла X-ресурсов, указанного в параметре `Resources`.

  Значение по умолчанию — ${`x_bindir`}/xrdb.

`Setup`

  Команда, выполняемая (под учётной записью root) перед выводом окна приветствия. Она может использоваться для изменения оформления вокруг окна приветствия или открытия других окон (например, `xconsole`). Её общепринятое название — `Xsetup`. См. .

  Значение по умолчанию — пустая строка.

`Startup`

  Команда, выполняемая (под учётной записью root) после удачного прохождения пользователем аутентификации. Её общепринятое название — `Xstartup`. См. .

  Значение по умолчанию — пустая строка.

`Reset`

  Команда, выполняемая (под учётной записью root) после завершения сеанса. Её общепринятое название — `Xreset`. См. .

  Значение по умолчанию — пустая строка.

`Session`

  Команда сеанса. Выполняется под учётной записью пользователя — владельца сеансом. Её общепринятое название — `Xsession`. См. .

  Значение по умолчанию — ${`x_bindir`}/xterm -ls -T.

`FailsafeClient`

  Если программа, указанная в параметре `Session`, завершается с кодом ошибки, &kdm; запускает заданную здесь программу. Она запускается без аргументов; при этом ей доступны переменные окружения, определённые для незапустившегося сеанса (см. ).

  Значение по умолчанию — ${`x_bindir`}/xterm.

`UserPath`

  Значение переменной окружения `PATH` для сеансов всех пользователей, кроме root.

  Значение по умолчанию зависит от того, на какой системе был собран &kdm;.

`SystemPath`

  Значение переменной `PATH` для программ, запущенных не в сеансах root. По соображениям безопасности советуем вам не включать в этот список `.` (соответствует текущему каталогу).

  Значение по умолчанию зависит от того, на какой системе был собран &kdm;.

`SystemShell`

  Значение переменной окружения `SHELL`, относящееся ко всем программам, кроме указанной в параметре `Session`.

  Значение по умолчанию — /bin/sh.

`UserAuthDir`

  Если &kdm; не может создать обычный файл авторизации пользователя, в указанном здесь каталоге создаётся файл с уникальным именем. При этом значение переменной окружения `XAUTHORITY` будет изменено на путь к этому файлу.

  Значение по умолчанию — /tmp.

`AutoReLogin`

  Если используется этот параметр, при сбое Х-сервера (или при его выключении комбинацией клавиш Alt+Ctrl+BackSpace) &kdm; будет автоматически запускать новый сеанс. Обратите внимание, что использование этой возможности создаёт брешь в политике безопасности: злоумышленник может обойти программу, блокирующую экран (если не используется программа блокирования &kde;).

  Значение по умолчанию — `false`.

`AllowRootLogin`

  Пользователь с номером (UID) 0 (обычно его имя — root) может входить в систему через kdm, только если параметр включен.

  Значение по умолчанию — `true`.

`AllowNullPasswd`

  Если параметр отключен, пользователи с пустыми паролями не смогут войти в систему.

  Значение по умолчанию — `true`.

`AllowShutdown`

  Определяет, каким пользователям разрешено выключать систему. Это относится к выключению, как через окно приглашения, так и через канал FiFo.

  `None`

    меню Выключить... вообще не доступно

  `Root`

    чтобы выключить компьютер, пользователь должен ввести пароль root

  `All`

    любой пользователь может выключить компьютер

  Значение по умолчанию — `All`.

`AllowSdForceNow`

  Определяет, каким пользователям разрешено выключать компьютер при наличии активных сеансов.

  `None`

    отключать систему при наличии активных сеансов нельзя никому

  `Root`

    чтобы выключить компьютер при наличии активных сеансов, пользователь должен ввести пароль root

  `All`

    любой пользователь может выключать компьютер при наличии активных сеансов

  Значение по умолчанию — `All`.

`DefaultSdMode`

  Выбор условий/времени выключения системы по умолчанию.

  `Schedule`

    выключать после завершения всех сеансов

  `TryNow`

    выключать, только если не запущено ни одного сеанса

  `ForceNow`

    выключать без всяких условий

  Значение по умолчанию — `Schedule`.

`ScheduledSd`

  Определяет, как будут выводится уведомления при отключении по расписанию:

  `Never`

    выводиться не будут

  `Optional`

    в простых диалоговых окнах уведомления будет показываться кнопка

  `Always`

    вне зависимости от простых диалоговых окон

  Значение по умолчанию — `Never`.

`NoPassEnable`

  Включить вход в систему пользователей без пароля через этот дисплей. Используйте с особой осторожностью!

  Значение по умолчанию — `false`.

`NoPassUsers`

  Список пользователей, которым разрешён вход в систему без пароля. Пункты, начинающиеся с `@`, соответствуют группе пользователей. Символ `*` соответствует всем пользователям, кроме пользователя с номером (UID) = 0 (обычно это root). Ни в коем случае не включайте в этот список пользователя root.

  Значение по умолчанию — пустая строка.

`AutoLoginEnable`

  Разрешить автоматический вход в систему через этот дисплей. Используйте с особой осторожностью!

  Значение по умолчанию — `false`.

`AutoLoginAgain`

  Если значение — true, после выхода из среды выполняется автоматический вход. Если false, автоматический вход выполняется только во время запуска сеанса дисплея.

  Значение по умолчанию — `false`.

`AutoLoginDelay`

  Задержка (в секундах) перед автоматическим входом.

`AutoLoginUser`

  Имя пользователя, под которым будет осуществляться автоматический вход в систему. Ни в коем случае не указывайте здесь root.

  Значение по умолчанию — пустая строка.

`AutoLoginPass`

  Автоматический вход в систему будет осуществляться с указанным паролем. Используется, только если пользователь входит в домен NIS или Kerberos. Если вы включили этот параметр, выполните команду `chmod `600` `kdmrc``.

  Значение по умолчанию — пустая строка.

`AutoLoginLocked`

  Если значение — true, автоматически запущенный сеанс сразу же блокируется. Работает только с сеансами KDE.

  Значение по умолчанию — `false`.

`SessionsDirs`

  Список каталогов, которые содержат определения типов сеансов.

  Значение по умолчанию — ${`kde_datadir`}/kdm/sessions.

`ClientLogFile`

  Путь (относительно домашнего каталога пользователя) к файлу, в который будет перенаправляться вывод программы, обеспечивающей работу сеанса. Вместо символов `%s` будет подставлено имя дисплея. Чтобы указать символ `%`, введите `%%`.

  Значение по умолчанию — .xsession-errors.

`UseSessReg`

  Определяет должен ли &kdm; использовать встроенную регистрацию через utmp/wtmp/lastlog. Если нет, в сценариях `Startup` и `Reset` должна использоваться команда `sessreg`, а в системах с PAM — модуль pam_lastlog.

  Значение по умолчанию — `true`.

### Переменные секции [X-*-Greeter] файла &kdmrc;

Этот класс секций содержит настройки интерфейса &kdm; (приглашения).

`GUIStyle`

  Определяет стиль графических элементов, которые будут использоваться в окне приглашения. Если значение не задано, будет применена тема `Plastik`.

  Значение по умолчанию — пустая строка.

`ColorScheme`

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

  Значение по умолчанию — пустая строка.

`LogoArea`

  Определяет, что будет находиться в области окна справа от полей ввода (если параметр `UserList` отключен) или над ними (если параметр `UserList` включен).

  `None`

    область будет пустой

  `Logo`

    изображение, путь к которому задаётся параметром `LogoPixmap`

  `Clock`

    аналоговые часы

  Значение по умолчанию — Clock.

`LogoPixmap`

  Если `LogoArea`=`Logo`, то в окне приглашения будет выводиться указанное здесь изображение.

  Значение по умолчанию — пустая строка.

`GreeterPos`

  Определяет положение (в процентах от размера экрана, в порядке X,Y) центра окна приглашения.

  Значение по умолчанию — 50,50.

`GreeterScreen`

  Определяет, на каком дисплее будет выводится приглашение в многоэкранных системах. Нумерация, начинающаяся с `0`, соответствует порядку перечисления в используемом разделе ServerLayout файла `XF86Config`. Если установлено значение `-1`, будет использоваться верхний левый экран, если `-2`, верхний правый экран.

`GreetString`

  Заголовок окна приглашения. Если значение не указано, заголовок будет пустым.

  Следующие комбинации символов система меняет на указанные значения:

  `%d`

    текущий дисплей

  `%h`

    имя компьютера, возможно, с именем домена

  `%n`

    имя компьютера, скорее всего, без имени домена

  `%s`

    операционная система

  `%r`

    версия операционной системы

  `%m`

    архитектура компьютера

  `%%`

    символ `%`

  Значение по умолчанию — Welcome to %s at %n (в русифицированной версии — Добро пожаловать в %s на %n).

`AntiAliasing`

  Определяет, будут ли сглажены шрифты надписей окна входа в систему.

  Значение по умолчанию — `false`.

`GreetFont`

  Шрифт заголовка окна приглашения.

  Значение по умолчанию — Serif, 20, bold.

`StdFont`

  Шрифт текста окна приглашения.

  Значение по умолчанию — Sans Serif, 10.

`FailFont`

  Шрифт текста окна Ошибка входа в систему.

  Значение по умолчанию — Sans Serif, 10, bold.

`NumLock`

  Определяет состояние индикатора Num Lock при выводе окна входа в систему. Возможные значения:

  `Off`

    выключить

  `On`

    включить

  `Keep`

    не изменять

  Значение по умолчанию — Keep.

`Language`

  Язык, используемый в окне приглашения. Формат значения соответствует формату переменной $`LC_LANG`.

  Значение по умолчанию — en_US (в русифицированной версии — ru).

`UserCompletion`

  Если параметр включен, вводимое имя пользователя будет автоматически дополняться.

  Значение по умолчанию — `false`.

`UserList`

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

  Значение по умолчанию — `true`.

`ShowUsers`

  Данный параметр определяет содержание списка пользователей (параметр `UserList`) окна входа в систему и/или имена пользователей, подлежащие автодополнению (параметр `UserCompletion`). Если его значение — `Selected`, список берётся из параметра `SelectedUsers`. Если — `NotHidden`, в список попадают все пользователи системы, исключая перечисленных в параметре `HiddenUsers` и пользователей с UID > `MaxShowUID` и 0 < UID < `MinShowUID`. Элементы списков `SelectedUsers` и `HiddenUsers`, имеющие префикс `@`, обозначают группу пользователей. Если включен параметр `SortUsers`, список упорядочивается по алфавиту.

  Значение по умолчанию — NotHidden.

`SelectedUsers`

  См. комментарий к параметру `ShowUsers`.

  Значение по умолчанию — пустая строка.

`HiddenUsers`

  См. комментарий к параметру `ShowUsers`.

  Значение по умолчанию — пустая строка.

`MinShowUID`

  См. комментарий к параметру `ShowUsers`.

`MaxShowUID`

  См. комментарий к параметру `ShowUsers`.

  Значение по умолчанию — 65535.

`SortUsers`

  См. комментарий к параметру `ShowUsers`.

  Значение по умолчанию — `true`.

`FaceSource`

  Если включен параметр `UserList`, то этот параметр определяет, откуда &kdm; будет считывать изображения пользователей:

  `AdminOnly`

    из файла `<`FaceDir`>/$`USER`.face[.icon]`

  `PreferAdmin`

    из <`FaceDir`>, если попытка завершилась неудачей, то из $`HOME`

  `PreferUser`

    как в предыдущем пункте, но в обратном порядке

  `UserOnly`

    из файла `$`HOME`/.face[.icon]`

  Вы можете указать файл в любом формате из тех, которые способен распознать Qt, но имя файла должно соответствовать требованиям &kdm;: `.face.icon` — значок 48x48 пикселей, файл `.face` — изображение 300x300. Пока большие изображения используются в качестве «запасного варианта» значка (при этом их размер уменьшается), однако в будущем они, возможно, будут показываться в области логотипа.

  Значение по умолчанию — AdminOnly.

`FaceDir`

  См. комментарий к `FaceSource`.

  Значение по умолчанию — ${`kde_datadir`}/kdm/faces.

`PreselectUser`

  Определяет, будет ли заранее выбран какой-либо пользователь для входа в систему, и если да, то какой.

  `None`

    не выбирать пользователя заранее

  `Previous`

    последний пользователь, успешно вошедший в систему

  `Default`

    имя пользователя определяется значением параметра `DefaultUser`

  Если параметр `FocusPasswd` включен и пользователь выбирается автоматически, курсор устанавливается в поле ввода пароля.

  Автоматический выбор имени пользователя является брешью в безопасности, так как потенциальный взломщик получает действительное имя пользователя, и ему остаётся только подобрать пароль. С другой стороны, в `DefaultUser` вы можете указать имя пользователя, которого нет в системе.

  Значение по умолчанию — None.

`DefaultUser`

  См. комментарий к параметру `PreselectUser`.

  Значение по умолчанию — пустая строка.

`FocusPasswd`

  См. комментарий к параметру `PreselectUser`.

  Значение по умолчанию — `false`.

`EchoMode`

  Здесь вы можете указать, что будет выводится в поле ввода пароля вместо введённого текста:

  `OneStar`

    Каждый вводимый символ меняется на `*`.

  `ThreeStars`

    Каждый вводимый символ меняется на `***`.

  `NoEcho`

    ничего не выводится, курсор не перемещается

  Значение по умолчанию — OneStar.

`UseBackground`

  Если параметр включен, &kdm; будет автоматически запускать `krootimage`, чтобы сформировать фоновое изображение, иначе фон устанавливает программа `Setup`.

  Значение по умолчанию — `true`.

`BackgroundCfg`

  Задаёт конфигурационный файл `krootimage`. Как и `kdesktoprc`, он содержит секцию `[Desktop0]`. Если вы не нашли описания параметров, попытайтесь угадать их значение или используйте Центр управления KDE.

  Значение по умолчанию — ${`kde_confdir`}/kdm/backgroundrc.

`GrabServer`

  Чтобы увеличить безопасность системы, при выводе окна приглашения KDM не позволяет другим программам получать данные от Х-сервера и с клавиатуры. Если этот параметр включен, получение данных от Х-сервера другими программами будет невозможно до запуска сеанса, иначе оно становится доступным при блокировании чтения с клавиатуры.

  Если этот параметр включен, `UseBackground` и `Setup` считаются отключёнными.

  Значение по умолчанию — `false`.

`GrabTimeout`

  Этот параметр определяет максимальное время, в течение которого &kdm; будет пытаться заблокировать чтение данных с клавиатуры другими программами. Эти попытки могут закончиться неудачей, если клавиатура или Х-сервер уже заблокирован другим Х-клиентом, или задержки при ответах других компьютеров из сети слишком высоки. Будьте осторожны, увеличивая значение этого параметра: в это время может быть выведено «поддельное» окно, похожее на окно приглашения, но принадлежащее другой программе. Если блокирование не удалось, &kdm; перезапускает Х-сервер (если это возможно) и сеанс пользователя.

  Значение по умолчанию — `3`.

`AuthComplain`

  Предупреждать, если Х-сервер не авторизовал дисплей. Возможные причины:

  - локальный Х-сервер не может создать файл авторизации,

  - удалённый дисплей, соединённый по &XDMCP;, не требует авторизации, или

  - дисплей в списке `StaticServers` указан как «чужой».

  Значение по умолчанию — `true`.

`LoginMode`

  Задаёт, в каком режиме выводится окно входа в систему: в режиме выбора машины (удалённый доступ) или в режиме входа в систему (локально), и способ переключения режимов.

  `LocalOnly`

    доступен только вход в локальную систему

  `DefaultLocal`

    запускается в локальном режиме, но возможен переход в режим удалённого доступа

  `DefaultRemote`

    как в предыдущем пункте, но в обратном порядке

  `RemoteOnly`

    возможен только выбор удалённой машины

  Значение по умолчанию — LocalOnly.

`ChooserHosts`

  Список имён машин, которые будут автоматически добавлены в меню удалённого доступа. Если указан специальный символ `*`, в список будут добавлены все машины, которые ответили на широковещательный запрос. Если значение параметра `LoginMode` установлено в `LocalOnly`, не имеет значения.

  Значение по умолчанию — *.

`ForgingSeed`

  Указанное число будет использоваться в качестве начального значения («seed») генератора случайных чисел при искажении сохранённых типов сеансов и т.п., принадлежащих неизвестным пользователям. Это сделано для того, чтобы помешать взломщику выяснить имена пользователей системы. Число должно быть случайным, но одним для всего домена.

`ShowLog`

  Если параметр включен, будет использоваться встроенное приложение &kdm;, `xconsole`. Обратите внимание, что программа не может работать на нескольких дисплеях одновременно. Параметр доступен только если &kdm; был собран с параметром `--enable-kdm-xconsole`.

  Значение по умолчанию — `false`.

`LogSource`

  Источник данных встроенного приложения &kdm; `xconsole`. Если значение не указано, происходит перенаправление журнала консоли из `/dev/console`. Работает только при включённом параметре `ShowLog`.

  Значение по умолчанию — пустая строка.

`PluginsLogin`

  Задаёт подключаемые модули окна входа в систему, обеспечивающие взаимодействие с пользователем. Вначале выбирается первая запись. Каждый модуль имеет имя. Полный путь к модулю: `$`kde_modulesdir`/kgreet_имя_модуля`.

  Функция модулей состоит в получении данных, авторизирующих пользователя (имени и пароля). С &kde; поставляется только один модуль — `classic`; его внешний вид (форма для ввода имени пользователя и пароля) вам, скорее всего, хорошо известен.

  Значение по умолчанию — classic.

`PluginsShutdown`

  То же, что `PluginsLogin`, но для диалогового окна выключения системы.

  Значение по умолчанию — classic.

`PluginOptions`

  Список параметров в формате параметр`=`значение. Сведения о настройке модулей выходят за пределы этого руководства.

  Значение по умолчанию — пустая строка.

`AllowConsole`

  Показывает команду Консольный вход меню программы приветствия (если настроены параметры `ServerTTY`/`ConsoleTTYs`).

  Значение по умолчанию — `true`.

`AllowClose`

  Если включено, при входе в систему будет доступна возможность Перезапустить Х-сервер/Закрыть соединение.

  Значение по умолчанию — `true`.

`Preloader`

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

  Значение по умолчанию — пустая строка.

`UseTheme`

  Определяет, будет ли к окну приглашения применена какая-либо тема.

  Значение по умолчанию — `false`.

`Theme`

  Указанная тема будет применена к окну приглашения. Значение — путь к каталогу или к файлу XML.

  Значение по умолчанию — пустая строка.

## Как указать программе на постоянные Х-серверы

Список `StaticServers` содержит дисплеи, которые управляются без &XDMCP;. Обычно этот метод управления используется только для локальных X-серверов, запускаемых &kdm;. В то же время &kdm; может управлять отдельно работающими («чужими») X-серверами: как локальными, так и удалёнными.

Cинтаксис для всех X-серверов следующий:

    Имя дисплея [_Класс дисплея]

. Удалённые дисплеи отличаются наличием названия узла сети в своём названии, возможно `localhost`.

Имя дисплея должно быть строкой, которую можно указать после параметра `-display` программы Х. Эта строка используется при формировании названий секций, специфичных для дисплеев. Имена дисплеев &XDMCP; получается путём обработки адреса, полученного при разрешении имени узла. Префикс `localhost` не удаляется из имён локальных дисплеев &XDMCP;, чтобы их можно было отличить от Х-серверов, запущенных &kdm;.

Значение Класса дисплея также используется в секциях, специфических для дисплея. Это может быть полезным, если программе доступно большое количество похожих дисплеев, и вы хотите применить какие-либо параметры к группе дисплеев. При использовании &XDMCP; класс дисплея указывать необходимо, поэтому вам следует узнать класс терминала Х в его руководстве. Также вы можете запустить &kdm; в режиме отладки и найти в его выводе строку, в которой указан класс дисплея (`grep` class).

Дисплеи, перечисленные в списке `ReserveServers`, будут запускаться не при старте &kdm;, а по запросу через сокет или именованный канал (FiFo). Если список не пуст, меню &kdm; будет содержать в конце команду Начать новый сеанс. С помощью неё можно активировать зарезервированный дисплей с новый сеансом. В этом случае монитор переключится на выбранный дисплей, и в течение минуты будет доступен вход в систему. При отсутствии доступных дисплеев, команда меню становится неактивной.

Во время запуска сеанса &kdm; устанавливает данные авторизации X-сервера. Локальным серверам они передаются в командной строке запуска X-сервера: ``-auth` `filename``. Серверам, работающим по протоколу &XDMCP;, — сообщением Accept этого протокола.

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

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

Записи Direct включают имя машины или шаблон. Указанная строка будет сравниваться с именем машины, которой принадлежит дисплей. Шаблоны отличаются от имён наличием одного или нескольких спецсимволов: `*` — любая последовательность символов (возможно, пустая), `?` — один символ (любой). Если запись является именем машины, происходит сравнение с сетевыми адресами, так что вы можете использовать любое имя, которое может быть переведено в корректный сетевой адрес. Обратите внимание, что используется только первый сетевой адрес, соответствующий имени машины. Имена машин, возвращаемые по запросам &XDMCP;, всегда содержат имя локального домена, даже если обратный поиск возвращает короткое имя. Поэтому при задании локального домена вы можете использовать шаблоны. Если запись начинается с символа `!`, соответствующие ей машины будут исключены из списка. Если вы хотите, чтобы программа отвечала только на прямые запросы, добавьте в конец записи ключевое слово `NOBROADCAST`. При этом сервер &kdm; не будет появляться в меню программ выбора машины, которые формируются на основе широковещательных запросов.

Записи, содержащие ключевое слово 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`.

## Дополнительные программы

Следующие программы запускаются &kdm; на различных этапах сеанса. Чаще всего они являются скриптами оболочки.

Скрипты, указанные в скриптах Setup, Startup и Reset, выполняются с правами root, так что позаботьтесь об их безопасности. Если сеанс запущен после автоматического входа в систему, им передаётся аргумент `auto`, иначе никаких аргументов не передаётся.

### Программа Setup

Программа `Xsetup` выполняется после запуска (перезапуска) Х-сервера, но перед выводом окна приглашения. С её помощью вы можете изменить фон корневого окна (если параметр `UseBackground` отключен) или вывести на экран какие-либо окна (они будут доступны наряду с окном входа в систему).

В дополнение к переменным окружения, заданным параметром `ExportList`, устанавливаются следующие переменные:

DISPLAY

  имя дисплея, который будет использоваться

PATH

  значение параметра `SystemPath`

SHELL

  значение параметра `SystemShell`

XAUTHORITY

  пустая строка или содержит путь к файлу авторизации

DM_CONTROL

  значение параметра `FifoDir`

Обратите внимание, что &kdm; не позволяет другим программам считывать ввод с клавиатуры. Однако вы сможете управлять ими с помощью мыши; опасайтесь возможных уязвимостей в безопасности. Если включен параметр `GrabServer`, `Xsetup` вообще не сможет подключиться к дисплею. Эта программа использует ресурсы, указанные в файле, имя которого задаётся параметром `Resources`.

### Программа Startup

Программа `Xstartup` выполняется с правами root при входе пользователя в систему. Она может добавлять записи в журнал `utmp` (например, вы можете использовать программу `sessreg`), подключать (монтировать) домашние каталоги пользователей или завершать сеанс при невыполнении некоторых условий (на современных системах эту функцию выполняют модули PAM).

В дополнение к переменным окружения, заданным параметром `ExportList`, устанавливаются следующие переменные:

DISPLAY

  имя дисплея, который будет использоваться

HOME

  домашний каталог пользователя

LOGNAME

  имя пользователя

USER

  имя пользователя

PATH

  значение параметра `SystemPath`

SHELL

  значение параметра `SystemShell`

XAUTHORITY

  пустая строка или содержит путь к файлу авторизации

DM_CONTROL

  значение параметра `FifoDir`

&kdm; ожидает завершения программы и после этого запускает сеанс пользователя. Если программа возвратила ненулевое значение, &kdm; завершает сеанс и предлагает ещё раз войти в систему.

### Программа Session

Программа `Xsession` собственно обеспечивает работу пользователя с компьютером (то есть сам сеанс). Она запускается с правами вошедшего в систему пользователя. В качестве первого аргумента передаётся ключевое слово `failsafe`, `default`,`custom` или (на оболочках, совместимых с bash) строка `eval`.

В дополнение к переменным окружения, заданным параметром `ExportList`, устанавливаются следующие переменные:

DISPLAY

  имя дисплея, который будет использоваться

HOME

  домашний каталог пользователя

LOGNAME

  имя пользователя

USER

  имя пользователя

PATH

  значение параметра `UserPath` (для root — `SystemPath`)

SHELL

  оболочка, используемая пользователем по умолчанию

XAUTHORITY

  с помощью этой переменной можно указать путь к файлу авторизации

KRBTKFILE

  имя кэша авторизационных файлов Kerberos4

KRB5CCNAME

  имя кэша авторизационных файлов Kerberos5

DM_CONTROL

  значение параметра `FifoDir`

XDM_MANAGED

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

DESKTOP_SESSION

  выбранный пользователем тип сеанса

### Программа Reset

Программа `Xreset` запускается с правами root во время завершения сеанса. Файл должен содержать команды, отменяющие действие `Xstartup`: удаляющие записи из `utmp` или отключающие домашние каталоги пользователей.

Программе `Xreset` передаются те же параметры, что и `Xstartup`.