# Руководство менеджера входа в систему

0.0
2008-09

GDM — сокращение от GNOME Display Manager, программа графического входа в систему.

Martin
K.
Petersen

    mkp@mkp.net

George
Lebl

    jirka@5z.com

Jon
McCann

    mccann@jhu.edu

Ray
Strode

    rstrode@redhat.com

Brian
Cameron

    Brian.Cameron@Sun.COM

1998
1999
Martin K. Petersen
2001
2003
2004
George Lebl
2003
2007
2008
Red Hat, Inc.
2003
2004
2005
2006
2007
2008
Sun Microsystems, Inc.
2008
Nikita Belobrov (qvzqvz@gmail.com)

Разрешается копировать, распространять и/или изменять этот документ на условиях лицензии GNU Free Documentation License (GFDL), версии 1.1 или любой более поздней версии, опубликованной Фондом свободного программного обеспечения (Free Software Foundation), без неизменяемых частей и без текстов на обложках. Вы можете найти копию лицензии GFDL по этой ссылке или в файле COPYING-DOCS, распространяемом с этим документом.

Это руководство — часть документации GNOME, которая распространяется на условиях лицензии GNU FDL. Если вы хотите распространять это руководство отдельно от остальной документации, вам следует приложить к руководству копию лицензии, как описано в разделе 6 лицензии.

Некоторые имена и марки используются компаниями для обозначения их продуктов и услуг и являются торговыми марками. Там, где эти имена присутствуют в документации и где участники проекта документирования GNOME знают об этом, имена выделяются заглавными буквами или начальной заглавной буквой.

ДОКУМЕНТ И ИЗМЕНЁННЫЕ ВЕРСИИ ДОКУМЕНТА ПРЕДОСТАВЛЯЮТСЯ ПОЛЬЗОВАТЕЛЮ НА УСЛОВИЯХ ЛИЦЕНЗИИ GNU FREE DOCUMENTATION LICENSE С УВЕДОМЛЕНИЕМ О ТОМ, ЧТО:

1. ДОКУМЕНТ РАСПРОСТРАНЯЕТСЯ «КАК ЕСТЬ», БЕЗ ВСЯКИХ ГАРАНТИЙ, ЯВНЫХ ИЛИ НЕЯВНЫХ, ВКЛЮЧАЯ, БЕЗ ОГРАНИЧЕНИЙ, ГАРАНТИИ ТОГО, ЧТО ДОКУМЕНТ ИЛИ ИЗМЕНЁННАЯ ВЕРСИЯ ДОКУМЕНТА СВОБОДНА ОТ ДЕФЕКТОВ, ПРИГОДНА К ПРОДАЖЕ, ПРИГОДНА К ИСПОЛЬЗОВАНИЮ В ОПРЕДЕЛЁННЫХ ЦЕЛЯХ ИЛИ НЕ НАРУШАЕТ ЗАКОНЫ. ВЕСЬ РИСК, КАСАЮЩИЙСЯ КАЧЕСТВА, ТОЧНОСТИ ИЛИ ПРАВИЛЬНОСТИ ДОКУМЕНТА ИЛИ ИЗМЕНЁННЫХ ВЕРСИЙ ДОКУМЕНТА, ЛЕЖИТ НА ВАС. ЕСЛИ ДОКУМЕНТ ИЛИ ИЗМЕНЁННАЯ ВЕРСИЯ ДОКУМЕНТА ИМЕЕТ НЕДОСТАТКИ, ВЫ (А НЕ АВТОР ДОКУМЕНТА ИЛИ ЕГО ПОМОЩНИК) БЕРЁТЕ НА СЕБЯ СТОИМОСТЬ ЛЮБОЙ НЕОБХОДИМОЙ ДОРАБОТКИ, КОРРЕКЦИИ ИЛИ ВОССТАНОВЛЕНИЯ. ЭТОТ ОТКАЗ ОТ ГАРАНТИЙ СОСТАВЛЯЕТ ВАЖНУЮ ЧАСТЬ ЛИЦЕНЗИИ. НИКАКОЕ ИСПОЛЬЗОВАНИЕ ДОКУМЕНТА ИЛИ ИЗМЕНЁННОЙ ВЕРСИИ ДОКУМЕНТА НЕ ДОПУСКАЕТСЯ БЕЗ ДАННОГО ПРЕДУПРЕЖДЕНИЯ И

2. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ И НИ ПРИ КАКОМ ЗАКОННОМ СПОСОБЕ, НИ ПО КАКОМУ СОГЛАШЕНИЮ ИЛИ ДРУГОЙ ПРИЧИНЕ, АВТОР, СОЗДАТЕЛЬ, ПОМОЩНИКИ ИЛИ РАСПРОСТРАНИТЕЛИ ДОКУМЕНТА НЕ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ПРЯМОЙ, КОСВЕННЫЙ, СПЕЦИАЛЬНЫЙ, СЛУЧАЙНЫЙ ИЛИ ПРЕДНАМЕРЕННЫЙ УЩЕРБ ЛЮБОГО СВОЙСТВА, ВКЛЮЧАЯ, БЕЗ ОГРАНИЧЕНИЯ, ПОТЕРЮ РЕПУТАЦИИ, РАБОТОСПОСОБНОСТИ, КОМПЬЮТЕРНЫЕ СБОИ ИЛИ ПОЛОМКИ, ИЛИ ЛЮБОЙ ДРУГОЙ УЩЕРБ ИЛИ ПОТЕРИ, ВОЗНИКАЮЩИЕ ВСЛЕДСТВИЕ ИЛИ СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ДОКУМЕНТА ИЛИ ИЗМЕНЁННЫХ ВЕРСИЙ ДОКУМЕНТА, ДАЖЕ ЕСЛИ СТОРОНА БЫЛА УВЕДОМЛЕНА О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.

This manual describes version 2.26.0 of the GNOME Display Manager. It was last updated on 02/10/2009.

## Глоссарий наименований данного руководства

This manual describes version 2.26.0 of the GNOME Display Manager. It was last updated on 02/10/2009.

Программа выбора — программа, используемая для выбора удалённого компьютера, на котором планируется управлять дисплеем при помощи локального дисплея. Запускается командой `gdm-host-chooser`.

FreeDesktop — организация, предоставляющая стандарты рабочего места, например Спецификация содержимого рабочего места.http://www.freedesktop.org

GDM (менеджер дисплеев GNOME) — аббревиатура, используемая для описания всего программного пакета.

Программа приветствия — графическая программа входа в систему, запускается командой `gdm-simple-greeter`.

PAM — подключаемый механизм аутентификации

XDMCP — протокол управления дисплеями X

Xserver - An implementation of the X Window System. For example the Xorg webserver provided by the X.org Foundation http://www.x.org.

Слова в уголках в путях каталогов заменяются префиксами, указанными при установке. `<share>/pixmaps/` означает `/usr/share/pixmaps`, если GDM был сконфигурирован с ключом `--prefix=/usr`.

## Содержание

### Введение

Менеджер дисплея GNOME (GDM) — это менеджер дисплея, который реализует все необходимое для управления локальными и удалёнными дисплеями. GDM был написан с нуля и не содержит кода из XDM или консорциума X.

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

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

Чтобы узнать больше о GDM посетите сайт проекта: http://www.gnome.org/projects/gdm и Wiki проекта http://live.gnome.org/GDM.

Чтобы задать вопросы или обсудить GDM используйте список рассылки

    gdm-list@gnome.org

. Этот список рассылки имеет архив, где можно найти ответы на множество вопросов. Архив находится по адресу: http://mail.gnome.org/archives/gdm-list/ и позволяет искать сообщения по ключевым словам.

Пожалуйста, все обнаруженные ошибки или предложения направляйте в http://bugzilla.gnome.org в категорию «gdm».

### Стабильность интерфейса

GDM 2.20 and earlier supported stable configuration interfaces. However, the codebase was completely rewritten for GDM 2.22, and is not completely backward compatible with older releases. This is in part because things work differently, so some options just don't make sense, in part because some options never made sense, and in part because some functionality has not been reimplemented yet.

Интерфейсы, которые продолжают поддерживаться в неизменной форме включают в себя сценарии: Init, PreSession, PostSession, PostLogin и Xsession. Некоторые настройки демона в файле `<etc>/gdm/custom.conf` также всё ещё поддерживаются, также как `~/.dmrc` и пути расположения обозревателя изображений пользователей.

GDM 2.20 and earlier supported the ability to manage multiple displays with separate graphics cards, such as used in terminal server environments, login in a window via a program like Xnest or Xephyr, the gdmsetup program, XML-based greeter themes, and the ability to run the XDMCP chooser from the login screen. These features were not added back during the 2.22 rewrite.

### Описание функциональности

GDM отвечает за управление дисплеями в системе, что включает в себя: идентификацию пользователей, запуск и завершение сеанса пользователя. GDM конфигурируется, и способы его настройки описаны в разделе «Конфигурирование GDM». GDM также поддерживает работу людей с ограниченными возможностями.

GDM может управлять как основным консольным дисплеем, так и дисплеями виртуальных терминалов(VT), и XDMCP-дисплеями. Большинство приложений могут работать с несколькими консольными дисплеями при помощи интерфейса виртуального терминала Xserver (Xserver VT), например: Fast User Switch Applet (FUSA) и gnome-screensaver.

Независимо от типа дисплея, GDM при управлении выполнит следующие действия: запустит процесс Xserver, затем выполнит сценарий `Init` от имени администратора системы и запустит программу приветствия на данном дисплее.

The greeter program is run as the unprivileged "gdm" user/group. This user and group are described in the "Security" section of this document. The main function of the greeter program is to authenticate the user. The authentication process is driven by Pluggable Authentication Modules (PAM). The PAM modules determine what prompts (if any) are shown to the user to authenticate. On the average system, the greeter program will request a username and password for authentication. However some systems may be configured to use alternative mechanisms such as a fingerprint or SmartCard reader. GDM and PAM can be configured to not require any input, which will cause GDM to automatically log in and simply start a session, which can be useful for some environments, such as for kiosks.

In addition to authentication, the greeter program allows the user to select which session to start and which language to use. Sessions are defined by files that end in the .desktop suffix and more information about these files can be found in the "GDM User Session and Language Configuration" section of this document. By default, GDM is configured to display a face browser so the user can select their user account by clicking on an image instead of having to type their username. GDM keeps track of the user's default session and language in the user's `~/.dmrc` and will use these defaults if the user did not pick a session or language in the login GUI.

После идентификации пользователя демон запустит сценарий `PostLogin`, затем `PreSession` от имени root. После выполнения этих сценариев запускается сеанс пользователя. Когда пользователь завершает текущий сеанс, выполняется сценарий `PostSession` от имени администратора системы. Эти сценарии используются как перехватчики событий, чтобы дистрибутив или пользователь могли модифицировать управление сеансами. Например, используя эти сценарии можно на лету создавать каталоги пользователей ($HOME) и уничтожать их после выхода пользователя из системы. Разница между `PostLogin` и `PreSession` в том, что первый выполняется до вызова метода pam_open_session, поэтому в `PostLogin` желательно расположить всё то, что необходимо выполнить до инициализации сеанса. Сценарий `PreSession` выполняется после инициализации сеанса пользователя.

### Панель программы приветствия

Программа приветствия GDM показывает панель с дополнительными действиями, присоединённую к нижней части экрана. Если пользователь выбран, то на панели можно указать сеанс, язык и раскладку клавиатуры, которые будут использованы после входа в систему. Можно также сменить раскладку при вводе пароля. На панели также есть место для значков дополнительных сервисов входа в систему, например: индикатор зарядки батарей, значок, позволяющий включить специальные возможности. Программа приветствия показывает кнопки завершения работы и перезагрузки системы, которые можно убрать при помощи настроек GDM. С помощью PolicyKit (или RBAC в Solaris) можно настроить GDM таким образом, что перед выключением или перезагрузки системы будет необходима идентификация пользователя.

Note that keyboard layout features are only available on systems that support libxklavier.

### Специальные возможности

GDM supports "Accessible Login", allowing users to log into their desktop session even if they cannot easily use the screen, mouse, or keyboard in the usual way. Accessible Technology (AT) features such as an on-screen keyboard, screen reader, screen magnifier, and Xserver AccessX keyboard accessibility are available. It is also possible to enable large text or high contrast icons and controls, if needed. Refer to the "Accessibility Configuration" section of the document for more information how various accessibility features can be configured.

В некоторых дистрибутивах учётную запись GDM необходимо сделать членом группы «audio», чтобы программы поддержки специальных возможностей, например программы чтения с экрана, могли нормально функционировать.

### Обозреватель изображений пользователей GDM

Обозреватель изображений пользователей — это интерфейс, позволяющий пользователям ввести своё имя нажатием клавишей мыши на изображении. Эта возможность регулируется параметром /apps/gdm/simple-greeter/disable_user_list в GConf, и по умолчанию включена. Если она выключена, то пользователям необходимо ввести своё имя при помощи клавиатуры, иначе обозреватель показывает всех локальных пользователей, которым разрешен вход в систему (все пользователи из файла /etc/passwd, имеющие работающую командную оболочку (shell) и достаточное большое значение UID), а также всех удалённых пользователей, уже входивших в систему. Обозреватель из GDM 2.20 и меньше попытается показать всех удалённых пользователей, из-за чего может снизится производительность в больших системах.

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

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

Изображения пользователей, которые использует GDM, могут быть установлены глобально системным администратором или располагаться в домашних каталогах пользователей. Глобально они находятся в каталоге `<share>/pixmaps/faces/` и имя файла с изображением должно совпадать с именем пользователя. Изображение должно храниться в формате, который может быть прочтён библиотекой GTK+, например PNG или JPEG. Учётная запись GDM должна иметь права чтения этих файлов.

Общее изображение для всех пользователей установить нельзя. В домашнем каталоге пользователей GDM проверит наличие файла изображения в `~/.face`, затем в `~/.face.icon` и после проверит значение «face/picture=» в файле `~/.gnome2/gdm`. Будет использовано первое найденное изображение в указанном порядке.

Если в каталоге пользователя не найдено изображение, GDM использует указанную в теме GTK+ в параметре «stock_person». Если такого параметра не найдено, то будет использовано стандартное изображение.

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

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

### XDMCP

GDM можно настроить так, что он будет отслеживать и управлять запросами по протоколу управления дисплеями X (XDMCP) от удалённых машин. По умолчанию эта возможность отключена. Если GDM собран с поддержкой TCP Wrapper, то демон разрешит доступ тем машинам, которые перечислены в секции «GDM service» в конфигурационном файле TCP Wrapper.

GDM includes several measures making it more resistant to denial of service attacks on the XDMCP service. A lot of the protocol parameters, handshaking timeouts, etc. can be fine tuned. The default configuration should work reasonably on most systems.

GDM прослушивает UDP порт 177, используемый по умолчанию для XDMCP протокола. И отвечает на запросы QUERY и BROADCAST_QUERY, посылая пакет WILLING источнику.

GDM может быть настроен на обработку запросов INDIRECT и быть диспетчером удалённых менеджеров дисплеев. В этом случае GDM будет запоминать выбор пользователя и перенаправлять дальнейшие запросы указанному менеджеру (например, GDM) на другой машине. GDM также поддерживает расширения протокола, благодаря которым GDM не будет запоминать машину перенаправления после успешного соединения пользователя. Это возможно только если на обоих машинах используется GDM. Другие менеджеры будут игнорировать такую возможность.

Если XDMCP не работает, убедитесь, что все удалённые машины перечислены в файле `/etc/hosts`.

Для получения информации по вопросам безопасности использования XDMCP обратитесь к разделу «Безопасность».

### Журналирование

GDM uses syslog to log errors and status. It can also log debugging information, which can be useful for tracking down problems if GDM is not working properly. Debug output can be enabled by setting the debug/Enable key to "true" in the `<etc>/gdm/custom.conf` file.

Вывод сообщений от большинства X серверов помещается в каталоге журналов GDM, по умолчанию `<var>/log/gdm/`. Любое сообщение X сервера сохраняется в файле с именем по номеру дисплея: `<display>.log`.

Вывод сообщений сеанса проходит через GDM в файл `~/.xsession-errors`, который перезаписывается каждый раз при входе пользователя в систему, поэтому выход и вход в систему одного и того же пользователя приведёт к потере сообщений от предыдущего сеанса.

Если GDM не сможет создать этот файл по какой-либо причине, то будет создан файл `~/.xsession-errors.XXXXXXXX`, где `XXXXXXXX` — набор случайных символов.

### Быстрое переключение пользователей

GDM allows multiple users to be logged in at the same time. After one user is logged in, additional users can log in via the User Switcher on the GNOME Panel, or from the "Switch User" button in Lock Screen dialog of GNOME Screensaver. The active session can be changed back and forth using the same mechanism. Note that some distributions may not add the User Switcher to the default panel configuration. It can be added using the panel context menu.

Note this feature is available on systems that support Virtual Terminals. This feature will not function if Virtual Terminals is not available.

## Безопасность

### Учётные записи пользователя и группы GDM

В целях безопасности, рекомендуется использовать выделенную учётную запись пользователя и группы. В большинстве систем это — «gdm». Но GDM можно настроить на использование любой другой учётной записи. Все графические программы GDM запускаются от имени этой учётной записи и взаимодействие происходит в рамках её прав. Поэтому желательно ограничить права пользователя и группы gdm.

Единственная специальная привелегия учётной записи «gdm», необходимая для работы — это возможность чтения и записи файлов Xauth в каталог `<var>/run/gdm`, который должен иметь владельца root:gdm и права доступа 1777.

You should not, under any circumstances, configure the GDM user/group to a user which a user could easily gain access to, such as the user `nobody`. Any user who gains access to an Xauth key can snoop on and control running GUI programs running in the associated session or perform a denial-of-service attack on it. It is important to ensure that the system is configured properly so that only the "gdm" user has access to these files and that it is not easy to login to this account. For example, the account should be setup to not have a password or allow non-root users to login to the account.

Конфигурация программы приветствия GDM хранится в GConf. Чтобы разрешить GDM записывать конфигурацию, необходимо учётной записи «gdm» дать права записи в свой домашний каталог $HOME. Пользователи могут самостоятельно изменять конфигурацию по умолчанию в GConf, чтобы избежать необходимости обечпечивать учётной записи «gdm» права записи в домашний каталог $HOME. При этом некоторые возможности GDM могут быть недоступны, если у него нет возможности записывать информацию в конфигурацию GConf.

### Модуль аутентификации PAM

GDM использует модуль PAM для аутентификации при входе в систему. PAM означает: подключаемый модуль аутентификации (Pluggable Authentication Module), и используется большинством программ, требующим аутентификацию пользователя. Это позволяет администратору настроить способы аутентификации для разных программ входа в систему (например: ssh, login, хранителей экрана и так далее).

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

PAM configuration has different, but similar, interfaces on different Operating Systems, so check the pam.d or pam.conf man page for details. Be sure you read the PAM documentation and are comfortable with the security implications of any changes you intend to make to your configuration.

По умолчанию GDM использует сервисы PAM с именем «gdm» для обычного входа и «gdm-autologin» для автоматического входа. Если эти сервисы не определены в конфигурационных файлах «pam.d» или «pam.conf», то GDM будет использовать обычное поведение PAM. На большинстве систем это сработает, но автоматический вход в систему может не работать, если не определен сервис PAM «gdm-autologin».

Сценарий `PostLogin` выполняется перед вызовом метода pam_open_session, а сценарий `PreSession` после, что позволяет системному администратору добавить любые сценарии до или после того, как PAM инициализирует сеанс.

Если вы хотите использовать с GDM другие типы аутентификации (например, сканирование отпечатков пальцев или карты SmartCard), то это реализовывается с помощью соответствующих сервисных модулей PAM, а не изменением кода GDM. За дополнительной информацией обращайтесь к документации PAM. То как использовать такие механизмы часто обсуждается в списке рассылки

    gdm-list@gnome.org

, за дополнительной информацией можно обратиться в архив рассылки.

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

Если не работает автоматический вход в систему проверьте наличие сервиса «gdm-autologin» в конфигурации PAM. Для включения этой возможности необходимо использовать модуль PAM, который не производит аутентификации или возвращает PAM_SUCCESS со всех интерфейсов, например модуль pam_allow.so, с использованием которого конфигурация PAM с включённым сервисом «gdm-autologin» будет выглядеть следующим образом:

           gdm-autologin auth  required    pam_unix_cred.so.1
           gdm-autologin auth  sufficient  pam_allow.so.1
           gdm-autologin account  sufficient  pam_allow.so.1
           gdm-autologin session  sufficient  pam_allow.so.1
           gdm-autologin password  sufficient  pam_allow.so.1

The above setup will cause no lastlog entry to be generated. If a lastlog entry is desired, then use the following for the session:

           gdm-autologin сеанс требует  pam_unix_session.so.1

If the computer is used by several people, which makes automatic login unsuitable, you may want to allow some users to log in without entering their password. This feature can be enabled as a per-user option in the users-admin tool from the gnome-system-tools; it is achieved by checking that the user is member a Unix group called "nopasswdlogin" before asking for a password. For this to work, the PAM configuration file for the "gdm" service must include a line such as:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### Базы utmp и wtmp

GDM создает записи в базах данных utmp и wtmp учёта пользователей во время входа и выхода пользователей из системы. База данных utmp содержит информацию о пользователе и его правах доступа, которая доступна с помощью команд: `finger`, `last`, `login` и `who`. База данных wtmp содержит историю базы utmp. Для получения дополнительной информации обратитесь к страницам man utmp и wtmp.

### Xserver Authentication Scheme

Xserver authorization files are stored in a newly created subdirectory of `<var>/run/gdm` at start up. These files are used to store and share a "password" between X clients and the Xserver. This "password" is unique for each session logged in, so users from one session can't snoop on users from another.

GDM only supports the MIT-MAGIC-COOKIE-1 Xserver authentication scheme. Normally little is gained from the other schemes, and no effort has been made to implement them so far. Be especially careful about using XDMCP because the Xserver authentication cookie goes over the wire as clear text. If snooping is possible, then an attacker could simply snoop your authentication password as you log in, regardless of the authentication scheme being used. If snooping is possible and undesirable, then you should use ssh for tunneling an X connection rather then using XDMCP. You could think of XDMCP as a sort of graphical telnet, having the same security issues. In most cases, ssh -Y should be preferred over GDM's XDMCP features.

### Безопасность XDMCP

Не смотря на то, что дисплей защищен аутентификационной информацией (в cookies), события XEvents и соответствующие нажатия клавиш при вводе пароля будут переданы по сети в открытом виде и их легко перехватить.

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

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

Контроль доступа XDMCP реализован с использованием библиотеки TCP Wrappers. В некоторых операционных системах GDM собран без поддержки TCP Wrappers, поэтому подобные возможности могут быть недоступны.

Необходимо использовать имя демона `gdm` в файлах `<etc>/hosts.allow` и `<etc>/hosts.deny`. Например, чтобы запретить машинам из домена `.evil.domain` входить в систему, необходимо добавить следующее:

    gdm: .evil.domain

в файл `<etc>/hosts.deny`. Возможно, также необходимо добавить

    gdm: .your.domain

в файл `<etc>/hosts.allow`, если по умолчанию запрещены все сервисы со всех машин. За деталями обратитесь к станицам man hosts.allow(5).

### Безопасность сетевого экрана

Even though GDM tries to outsmart potential attackers trying to take advantage of XDMCP, it is still advised that you block the XDMCP port (normally UDP port 177) on your firewall unless really needed. GDM guards against denial of service attacks, but the X protocol is still inherently insecure and should only be used in controlled environments. Also each remote connection takes up lots of resources, so it is much easier to do a denial of service attack via XDMCP than attacking a webserver.

It is also wise to block all of the Xserver ports. These are TCP ports 6000+ (one for each display number) on your firewall. Note that GDM will use display numbers 20 and higher for flexible on-demand servers.

X is not a very safe protocol when using it over the Internet, and XDMCP is even less safe.

### Средство PolicyKit

GDM можно настроить на использование средства PolicyKit, чтобы позволить системному администратору управлять видимостью кнопок выключения и перезагрузки системы на экране программы приветствия.

Видимость этих кнопок регулируется действиями:`org.freedesktop.consolekit.system.stop-multiple-users` и `org.freedesktop.consolekit.system.restart-multiple-users` соответственно. Политика этих действий может быть установлена с помощью утилиты polkit-gnome-authorization или консольной программой polkit-auth.

### RBAC: управление доступом по ролям

GDM may be configured to use RBAC instead of PolicyKit. In this case the RBAC configuration is used to control whether the login screen should provide the shutdown and restart buttons on the greeter screen.

Например, в системе Solaris для этого используется авторизация «solaris.system.shutdown». Достаточно изменить файл `/etc/user_attr` так, чтобы учётная запись «gdm» осуществляла эту авторизацию.

## Поддержка ConsoleKit

GDM включает поддержку публикации информации учётной записи пользователя с помощью системы учёта сеансов пользователей ConsoleKit, которая может отслеживать вошедших пользователей и в этой роли заменять файлы utmp и utmpx, которые существуют в большинстве UNIX подобных системах.

When GDM is about to create a new login process for a user it will call a privileged method of ConsoleKit in order to open a new session for this user. At this time GDM also provides ConsoleKit with information about this user session such as: the user ID, the X11 Display name that will be associated with the session, the host-name from which the session originates (useful in the case of an XDMCP session), whether or not this session is attached, etc. As the entity that initiates the user process, GDM is in a unique position to know about the user session and to be trusted to provide these bits of information. The use of this privileged method is restricted by the use of the D-Bus system message bus security policy.

In case a user with an existing session has authenticated at GDM and requests to resume that existing session, GDM calls a privileged method of ConsoleKit to unlock that session. The exact details of what happens when the session receives this unlock signal are undefined and session-specific. However, most sessions will unlock a screensaver in response.

Когда пользователь начинает выход из системы или GDM или сеанс неожиданно завершается, регистрация сеанса пользователя в ConsoleKit будет отменена.

## Конфигурирование

GDM имеет множество интерфейсов конфигурирования: точки подключения сценариев, конфигурация демона, конфигурация программы приветствия, глобальные параметры сеанса, интеграцию с конфигурацией gnome-settings-daemon и параметры сеанса. Подробнее это рассмотрено далее.

### Точки подключения сценариев

Точки подключения сценариев GDM находятся в каталоге `<etc>/gdm/`:

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

Работа сценариев `Init`, `PostLogin`, `PreSession` и `PostSession` описана далее.

Для каждого типа есть сценарий c именем «Default», который будет выполнен по умолчанию и располагается в каталоге, соответствующем типу сценария. Так сценарий по умолчанию для типа `Init` — `<etc>/gdm/Init/Default`. Если существует сценарий для дисплея, то он будет выполнен вместо сценария по умолчанию. Такие сценарии находятся в тех же каталогах, но их названия совпадают со значением DISPLAY X сервера для нужного дисплея. Например, если существует файл сценария `<Init>/:0`, то он будет выполнен для дисплея «:0».

All of these scripts are run with root privilege and return 0 if run successfully, and a non-zero return code if there was any failure that should cause the login session to be aborted. Also note that GDM will block until the scripts finish, so if any of these scripts hang, this will cause the login process to also hang.

When the Xserver for the login GUI has been successfully started, but before the login GUI is actually displayed, GDM will run the `Init` script. This script is useful for starting programs that should be run while the login screen is showing, or for doing any special initialization if required.

После успешной аутентификации пользователя GDM выполнит сценарий `PostLogin`, но до того, как выполнена установка сеанса, в том числе перед вызовом pam_open_session. Этот сценарий полезен для инициализации сеанса перед его стартом, например тут можно создавать домашние каталоги пользователей $HOME.

После инициализации сеанса GDM запустит сценарий `PreSession`, который полезен для проведения дополнительной инициализации сеанса. Например, для учёта сеансов.

When a user terminates their session, GDM will run the `PostSession` script. Note that the Xserver will have been stopped by the time this script is run, so it should not be accessed.

Внимание! Сценарий `PostSession` будет выполнен, даже если дисплей недоступен из-за ошибок ввода-вывода и подобных. Поэтому не гарантируется нормальная работа приложений X во время исполнения сценария.

Во время выполнения всех указанных сценариев переменная окружения `$RUNNING_UNDER_GDM` установлена в `yes`. Если сценарий используется совместно с другими менеджерами дисплеев, то это поможет определить, что сценарий вызван из GDM для выполнения специфичного кода.

### Autostart Configuration

The `<share>/gdm/autostart/LoginWindow` directory contains files in the format specified by the "FreeDesktop.org Desktop Application Autostart Specification". Standard features in the specification may be used to specify programs that should auto-restart or only be launched if a GConf configuration value is set, etc.

Any `.desktop` files in this directory will cause the associated program to automatically start with the login GUI greeter. By default, GDM is shipped with files which will autostart the gdm-simple-greeter login GUI greeter itself, the gnome-power-manager application, the gnome-settings-daemon, and the metacity window manager. These programs are needed for the greeter program to work. In addition, desktop files are provided for starting various AT programs if the configuration values specified in the Accessibility Configuration section below are set.

### Сценарий Xsession

There is also an `Xsession` script located at `<etc>/gdm/Xsession` which is called between the `PreSession` and the `PostSession` scripts. This script does not support per-display like the other scripts. This script is used for actually starting the user session. This script is run as the user, and it will run whatever session was specified by the Desktop session file the user selected to start.

### Конфигурация демона

The GDM daemon is configured using the `<etc>/gdm/custom.conf` file. Default values are stored in GConf in the `gdm.schemas` file. It is recommended that end-users modify the `<etc>/gdm/custom.conf` file because the schemas file may be overwritten when the user updates their system to have a newer version of GDM.

Внимание! Ранние версии GDM содержат дополнительные параметры, которые более не поддерживаемые GDM.

Файл `<etc>/gdm/custom.conf` записан в формате `keyfile` (параметр-значение). Слова в квадратных скобках [ ] определяют названия секций, строки до знака равно (=) являются наименованиями параметров а после — значениями. Пустые и начинающиеся на октоторп (#) строки игнорируются.

The file `<etc>/gdm/custom.conf` supports the "[daemon]", "[security]", and "[xdmcp]" group sections. Within each group, there are particular key/value pairs that can be specified to modify how GDM behaves. For example, to enable timed login and specify the timed login user to be a user named "you", you would modify the file so it contains the following lines:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=you

Далее приведён полный список поддерживаемых параметров конфигурации:

#### [chooser]

Multicast

      Multicast=false

  If true and IPv6 is enabled, the chooser will send a multicast query to the local network and collect responses from the hosts who have joined multicast group.

MulticastAddr

      MulticastAddr=ff02::1

  This is the Link-local multicast address.

#### [daemon]

TimedLoginEnable

      TimedLoginEnable=false

  Автоматический вход в систему произойдёт под учётной записью `TimedLogin` по истечении `TimedLoginDelay` секунд неактивности на экране входа в систему. Это полезно для общедоступных терминалов и домашних систем. Если пользователь нажал клавишу на клавиатуре или использовал меню на экране, то время ожидания сбрасывается в `TimedLoginDelay` или 30 секунд, но не более. Если пользователь не ввёл имя учётной записи, а просто нажал ENTER при запросе имени пользователя, то GDM произведет автоматический вход в систему. При этом пароль не будет запрошен. За подробной информацией обращайтесь к подразделу «Безопасность-> Модуль PAM».

TimedLogin

      TimedLogin=

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

  If the value ends with a vertical bar | (the pipe symbol), then GDM will execute the program specified and use whatever value is returned on standard out from the program as the user. The program is run with the DISPLAY environment variable set so that it is possible to specify the user in a per-display fashion. For example if the value is "/usr/bin/getloginuser|", then the program "/usr/bin/getloginuser" will be run to get the user value.

TimedLoginDelay

      TimedLoginDelay=30

  Задержка в секундах перед автоматическим входом под учётной записью `TimedLogin`.

AutomaticLoginEnable

      AutomaticLoginEnable=false

  If true, the user given in `AutomaticLogin` should be logged in immediately. This feature is like timed login with a delay of 0 seconds.

AutomaticLogin

      AutomaticLogin=

  Учётная запись под именем которой произойдет немедленный вход в систему, если `AutomaticLoginEnable` установлено в истину.

  If the value ends with a vertical bar | (the pipe symbol), then GDM will execute the program specified and use whatever value is returned on standard out from the program as the user. The program is run with the DISPLAY environment variable set so that it is possible to specify the user in a per-display fashion. For example if the value is "/usr/bin/getloginuser|", then the program "/usr/bin/getloginuser" will be run to get the user value.

User

      User=gdm

  Учётная запись под которой выполняется программа приветствия и другие графические приложения. Смотрите также описание параметра `Group` и раздел «Безопасность->Учётная запись пользователя и группы GDM».

Group

      Group=gdm

  Имя группы, под которой программа приветствия и другие графические приложения будут запущены. Смотрите также описание параметра `User` и раздел этого документа «Безопасность-> Учётные записи пользователя и группы GDM».

#### Debug Options

##### [debug]

Enable

      Enable=false

  To enable debugging, set the debug/Enable key to "true" in the `<etc>/gdm/custom.conf` file and restart GDM. Then debug output will be sent to the system log file (`<var>/log/messages` or `<var>/adm/messages` depending on your Operating System).

#### Greeter Options

##### [greeter]

IncludeAll

      IncludeAll=true

  If true, then the face browser will show all users on the local machine. If false, the face browser will only show users who have recently logged in.

  When this key is true, GDM will call fgetpwent() to get a list of local users on the system. Any users with a user id less than 500 (or 100 if running on Solaris) are filtered out. The Face Browser also will display any users that have previously logged in on the system (for example NIS/LDAP users). It gets this list via calling the `ck-history` ConsoleKit interface. It will also filter out any users which do not have a valid shell (valid shells are any shell that getusershell() returns - /sbin/nologin or /bin/false are considered invalid shells even if getusershell() returns them).

  If false, then GDM more simply only displays users that have previously logged in on the system (local or NIS/LDAP users) by calling the `ck-history` ConsoleKit interface.

Include

      Include=

  Set to a list of users to always include in the Face Browser. This value is set to a list of users separated by commas. By default, the value is empty.

Exclude

      Exclude=bin,root,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,nobody4,noaccess,postgres,pvm,rpm,nfsnobody,pcap

  Set to a list of users to always exclude in the Face Browser. This value is set to a list of users separated by commas. Note that the setting in the `custom.conf` overrides the default value, so if you wish to add additional users to the list, then you need to set the value to the default value with additional users appended to the list.

#### Параметры безопасности

##### [security]

DisallowTCP

      DisallowTCP=true

  Если истина, то к параметрам запуска локального X сервера всегда добавляется `-nolisten tcp`, что запрещает TCP соединения. Это более безопасная настройка при использовании удалённых соединений.

#### Поддержка XDCMP

##### [xdmcp]

DisplaysPerHost

      DisplaysPerHost=1

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

  Внимание! Количество допустимых локальных дисплеев не ограничивается. Эта опция ограничивает только удалённые соединения через протокол XDMCP.

Enable

      Enable=false

  Установка в истину включает поддержку XDMCP протокола, разрешая GDM управлять удалёнными дисплеями и X терминалами.

  Запросы прослушиваются на UDP порту 177. См. описание параметра «Port» для дополнительных сведений.

  Если GDM собран с соответствующими опциями, то управление удалёнными дисплеями может быть осуществлено через библиотеку TCP Wrappers. Имя сервиса — `gdm`

  В зависимости от конфигурации TCP Wrappers, возможно, следует добавить

      gdm:.my.domain

  в файл `<etc>/hosts.allow`. Обратитесь к страницам man hosts.allow за подробностями.

  Внимание! XDMCP - небезопасный протокол, и на сетевом экране следует заблокировать UDP порт 177 до тех пор, пока он действительно не понадобится.

HonorIndirect

      HonorIndirect=true

  Разрешает XDMCP INDIRECT выбор (т.е. удалённое исполнение программы `gdmchooser`) для X терминалов, не имеющих собственных обозревателей дисплеев.

MaxPending

      MaxPending=4

  GDM фиксирует длину очереди ожидающих соединений для предотвращения атак на сервис. Одновременно могут стартовать только MaxPending дисплеев.

  Этот параметр не ограничивает количество управляемых удалённых соединений. Он ограничивает только количество дисплеев инициирующих соединение одновременно.

MaxSessions

      MaxSessions=16

  Определяет максимальное количество одновременно обслуживаемых соединений удалённых дисплеев. То есть общее количество удалённых дисплеев на данной машине.

MaxWait

      MaxWait=30

  Когда GDM готов обслужить дисплей, он отправляет пакет ACCEPT, содержащий уникальный идентификатор сеанса, который в дальнейшем будет использован в протоколе XDMCP.

  Затем GDM поместит идентификатор сеанса в очередь ожидающих соединений для дисплея в ответ на запрос MANAGE.

  Если ответ не был получен в течение MaxWait секунд, GDM объявит дисплей недоступным и удалит из очереди, освободив место для других дисплеев.

MaxWaitIndirect

      MaxWaitIndirect=30

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

PingIntervalSeconds

      PingIntervalSeconds=15

  Interval in which to ping the Xserver in seconds. If the Xserver does not respond before the next time we ping it, the connection is stopped and the session ended. This is a combination of the XDM PingInterval and PingTimeout, but in seconds.

  Note that GDM in the past used to have a `PingInterval` configuration key which was also in minutes. For most purposes you'd want this setting to be lower than one minute. However since in most cases where XDMCP would be used (such as terminal labs), a lag of more than 15 or so seconds would really mean that the terminal was turned off or restarted and you would want to end the session.

Port

      Port=177

  Порт UDP, который `gdm` прослушивает на XDMCP запросы. Изменяйте его, только если вы уверены в ваших действиях.

Willing

      Willing=<etc>/gdm/Xwilling

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

### Настройка простой программы приветствия (Simple Greeter)

По умолчанию GDM использует программу приветствия «Simple Greeter» и она настраивается через GConf. Значения по умолчанию находятся в файле `gdm-simple-greeter.schemas`. Эти значения можно переопределить если учётная запись «gdm» имеет домашний каталог $HOME с правом записи, чтобы сохранять настройки GConf. Значения можно редактировать с помощью программ: `gconftool-2` или `gconf-editor`. Допустимы следующие настройки:

#### Параметры конфигурации программы приветствия

/apps/gdm/simple-greeter/banner_message_enable

      false (boolean)

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

/apps/gdm/simple-greeter/banner_message_text

      NULL (string)

  Содержит текстовое сообщения приветствия.

/apps/gdm/simple-greeter/disable_restart_buttons

      false (boolean)

  Отражать ли кнопку перезагрузки системы на экране входа в систему.

/apps/gdm/simple-greeter/disable_user_list

      false (boolean)

  If true, then the face browser with known users is not shown in the login window.

/apps/gdm/simple-greeter/logo_icon_name

      computer (string)

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

/apps/gdm/simple-greeter/recent-languages

      [] (string list)

  Set to a list of languages to be shown by default in the login window. Default value is "[]". With the default setting only the system default language is shown and the option "Other..." which pops-up a dialog box showing a full list of available languages which the user can select.

  Users are not intended to change this setting by hand. Instead GDM keeps track of any languages selected in this configuration key, and will show them in the language combo box along with the "Other..." choice. This way, commonly selected languages are easier to select.

/apps/gdm/simple-greeter/recent-layouts

      [] (string list)

  Set to a list of keyboard layouts to be shown by default in the login panel. Default value is "[]". With the default setting only the system default keyboard layout is shown and the option "Other..." which pops-up a dialog box showing a full list of available keyboard layouts which the user can select.

  Users are not intended to change this setting by hand. Instead GDM keeps track of any keyboard layouts selected in this configuration key, and will show them in the keyboard layout combo box along with the "Other..." choice. This way, commonly selected keyboard layouts are easier to select.

/apps/gdm/simple-greeter/wm_use_compiz

      false (boolean)

  Использовать ли менеджер окон compiz вместо metacity.

### Accessibility Configuration

This section describes the accessibility configuration options available in GDM.

#### GDM Accessibility Dialog And GConf Keys

The GDM greeter panel at the login screen displays an accessibility icon. Clicking on that icon opens the GDM Accessibility Dialog. In the GDM Accessibility Dialog, there is a list of checkboxes, so the user can enable or disable the associated assistive tools.

The checkboxes that correspond to the on-screen keyboard, screen magnifier and screen reader assistive tools act on the three GConf keys that are described in the next section of this document. By enabling or disabling these checkboxes, the associated GConf key is set to "true" or "false". When the GConf key is set to true, the assistive tools linked to this GConf key are launched. When the GConf key is set to "false", any running assistive tool linked to this GConf key are terminated. These GConf keys are not automatically reset to a default state after the user has logged in. Consequently, the assistive tools that were running during the last GDM login session will automatically be launched at the next GDM login session.

The other checkboxes in the GDM Accessibility Dialog do not have corresponding GConf keys because no additional program is launched to provide the accessibility features that they offer. These other options correspond to accessibility features that are provided by the Xserver, which is always running during the GDM session.

#### Accessibility GConf Keys

GDM offers the following GConf keys to control its accessibility features:

##### GDM Configuration Keys

/desktop/gnome/interface/accessibility

      false (boolean)

  Controls whether the Accessibility infrastructure will be started with the GDM GUI. This is needed for many accessibility technology programs to work.

/desktop/gnome/applications/at/screen_magnifier_enabled

      false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is a screen magnifier application.

/desktop/gnome/applications/at/screen_keyboard_enabled

      false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is an on-screen keyboard application.

/desktop/gnome/applications/at/screen_reader_enabled

      false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is a screen reader application.

#### Linking GConf Keys to Accessbility Tools

For the screen_magnifier_enabled, the screen_keyboard_enabled, and the screen_reader_enabled GConf keys, the assistive tool which gets launched depends on the desktop files located in the GDM autostart directory as described in the "Autostart Configuration" section of this manual. Any desktop file in the GDM autostart directory can be linked to these GConf key via specifying that GConf key in the AutostartCondition value in the desktop file. So the exact AutostartCondition line in the desktop file could be one of the following:

    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_magnifier_enabled
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_reader_enabled

When an accessibility key is true, then any program which is linked to that key in a GDM autostart desktop file will be launched (unless the Hidden key is set to true in that desktop file). A single GConf key can even start multiple assistive tools if there are multiple desktop files with this AutostartCondition in the GDM autostart directory.

#### Example Of Modifying Accessibility Tool Configuration

For example, if GNOME is distributed with GOK as the default on-screen keyboard, then this could be replaced with a different program if desired. To replace GOK with the on-screen keyboard application "onboard" and additionally activate the assistive tool "mousetweaks" for dwelling support, then the following configuration is needed.

Create a desktop file for onboard and a second one for mousetweaks; for example, onboard.desktop and mousetweaks.desktop. These files must be placed in the GDM autostart directory and be in the format as explained in the "Autostart Configuration" section of this document.

The following is an example `onboard.desktop` file:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Onboard Onscreen Keyboard
    Comment=Use an on-screen keyboard
    TryExec=onboard
    Exec=onboard --size 500x180 -x 20 -y 10
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

The following is an example `mousetweaks.desktop` file:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Software Mouse-Clicks
    Comment=Perform clicks by dwelling with the pointer
    TryExec=mousetweaks
    Exec=mousetweaks --enable-dwell -m window -c -x 20 -y 240
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Note the line with the AutostartCondition that links both desktop files to the GConf key for the on-screen keyboard.

To disable GOK from starting, the desktop file for the GOK on-screen keyboard must be removed or deactivated. Otherwise onboard and GOK would simultaneously be started. This can be done by removing the gok.desktop file from the GDM autostart directory, or by adding the "Hidden=true" key setting to the gok.desktop file.

After making these changes, GOK will no longer be started when the user activates the on-screen keyboard in the GDM session; but onboard and mousetweaks will instead be launched.

### Глобальные настройки сеанса

Программа приветствия GDM использует некоторые механизмы, что и сеанс рабочего места. Поэтому они используют многие общие параметры в GConf. Для всех таких параметров программа приветствия использует значения по умолчанию, пока они не будут переопределены: 1) установленной обязательной политикой GDM; 2) обязательной системной политикой. GDM устанавливает собственную обязательную политику, чтобы усилить безопасность.

### Демон параметров GNOME

GDM включает следующие подключаемые модули gnome-settings-daemon: a11y-keyboard, background, sound, xsettings.

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

С помощью GConf подключаемые модули можно отключить. Например, чтобы отключить звуковой модуль, следует использовать параметр `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### Параметры сеанса GDM

Сеансы GDM определяются в соответствии со спецификациями рабочего пространства FreeDesktop.org, которые можно получить по адресу: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

By default, GDM will install desktop files in the `<share>/xsessions` directory. GDM will search the following directories in this order to find desktop files: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/xsessions`, and `<share>/gdm/BuiltInSessions`. By default the `<dmconfdir>` is set to `<etc>/dm/` unless GDM is configured to use a different directory via the "--with-dmconfdir" option.

A session can be disabled by editing the desktop file and adding a line as follows: `Hidden=true`.

GDM desktop files support a GDM-specific extension, a key named "X-GDM-BypassXsession". If the key is not specified in a desktop file, the value defaults to "false". If this key is specified to be "true" in a desktop file, then GDM will launch the program specified by the desktop file "Exec" key directly when starting the user session. It will not run the program via the `<etc>/gdm/Xsession` script, which is the normal behavior. Since bypassing the `<etc>/gdm/Xsession` script avoids setting up the user session with the normal system and user settings, sessions started this way can be useful for debugging problems in the system or user scripts that might be preventing a user from being able to start a session.

### Параметры языка пользовательских сеансов GDM

Сеанс пользователя по умолчанию и выбор языка находятся в файле `~/.dmrc`. Этот файл создается при первом входе пользователя в соответствии с выбранными значениями. В дальнейшем значения могут быть изменены при последующем входе в систему. GDM запомнит последний выбор пользователя для следующего входа.

Файл `~/.dmrc` записан в стандартном формате `INI`, имеет одну секцию `[Desktop]` и два параметра: `Session` и `Language`.

Параметр `Session` определяет базовое имя файла сеанса `.desktop`. Имя указывается без расширения `.desktop`. Параметр `Language` определяет язык по умолчанию. Если любой из этих параметров отсутствует, то используются общие значения по умолчанию. Обычно файл выглядит следующим образом:

    [Desktop]
    Session=gnome
    Language=cs_CZ.UTF-8

## Команды GDM

### Команды GDM для пользователя root

пакет GDM содержит следующие команды, предназначенные для пользователя root в каталоге `sbindir`:

#### `gdm` и `gdm-binary` Параметры командной строки

Команда `gdm` это всего лишь сценарий, который запускает `gdm-binary` вместе с любыми параметрами. Перед запуском `gdm-binary`, сценарий gdm использует данные из файла `<etc>/profile` для установки стандартных переменных окружения. Для лучшей поддержки интернационализации он также установит переменную LC_MESSAGES в значение переменной LANG, если ни LC_MESSAGES, ни LC_ALL не определены. Файл `gdm-binary` является самим демоном.

##### `gdm` и `gdm-binary` Параметры командной строки

-?, --help

  Кратка справка по параметрам командной строки.

--fatal-warnings

  Завершать работу GDM при возникновении любых предупреждений.

--timed-exit

  Завершить работу демона после 30 секунд. Полезно для отладки.

--version

  Вывести версию демона.

#### `gdm-restart` Параметры командной строки

`gdm-restart` останавливает и перезапускает демон GDM, посылая сигнал HUP. Это вызовет немедленное завершение всех сеансов и выход всех пользователей вошедших через GDM.

#### `gdm-safe-restart` Параметры командной строки

`gdm-safe-restart` останавливает и перезапускает демон GDM, посылая его сигнал USR1. GDM будет перезапущен как только все пользователи выйдут из системы.

#### `gdm-stop` Параметры командной строки

`gdm-stop` останавливает демон GDM, посылая сигнал TERM.

## Разрешение проблем

Этот раздел содержит полезные советы как заставить GDM работать. Если у вас проблемы с GDM, вы можете сообщить об ошибке или написать письмо в лист рассылки (как это сделать описано ранее во введении).

If GDM is failing to work properly, it is always a good idea to include debug information. To enable debugging, set the debug/Enable key to "true" in the `<etc>/gdm/custom.conf` file and restart GDM. Then use GDM to the point where it fails, and debug output will be sent to the system log file (`<var>/log/messages` or `<var>/adm/messages` depending on your Operating System). If you share this output with the GDM community via a bug report or email, please only include the GDM related debug information and not the entire file since it can be large. If you do not see any GDM syslog output, you may need to configure syslog (refer to the syslog man page).

### GDM не запускается

Существует множество проблем из-за которых GDM не запускается, в этой секции описаны лишь общие проблемы и способы их отслеживания при старте GDM. Достаточно непросто отследить проблемы, из-за которых GDM «тихо» завершает работу.

Во-первых, убедитесь, что сервер X правильно настроен. Файл конфигурации GDM содержит секцию [server-Standard], используемую для запуска X сервера. Проверьте, что эта команда запускается в вашей системе в командной строке консоли и запускает X сервер, в противном случае, вероятно, проблема в параметрах X сервера. Обратитесь к журналу ошибок X сервера. Возможно, X сервер требует других параметров командной строки. Если это так, измените конфигурацию GDM, чтобы тот запускал X сервер с параметрами корректными для вашей системы.

Также проверьте, что каталог `/tmp` имеет корректные права доступа и владельца, а также что системный диск не переполнен, иначе это приведет к невозможности запустить GDM.

## Лицензия

Эта программа ― свободное программное обеспечение. Вы можете распространять или изменять его при условиях соответствия GNU General Public License опубликованной Free Software Foundation; либо версии 2 лицензии, либо (на ваше усмотрение) любой более поздней версии.

Эта программа распространяется в надежде на то, что приложение будет полезно, но БЕЗ ВСЯКИХ ГАРАНТИЙ; не гарантируется даже ПРИГОДНОСТЬ или СООТВЕСТВИЕ КАКИМ-ЛИБО ТРЕБОВАНИЯМ. Для получения дополнительной информации ознакомьтесь с GNU General Public License.

Копия лицензии GNU General Public License включена как приложение к документу Руководство пользователя GNOME. Также копию GNU General Public License можно получить от Free Software Foundation, посетив веб-сайт организации или направив письмо по адресу:

     Free Software Foundation, Inc. 51 Franklin Street, Fifth FloorBoston, MA02110-1301USA