Открыть сервис

GDM

GDM (сокращение от GNOME Display Manager) — это дисплейный менеджер для оконной системы X Window System (X11) и Wayland, входящий в состав окружения рабочего стола GNOME. GDM отвечает за запуск графического сервера, аутентификацию пользователя и инициализацию его сеанса. Является одним из наиболее распространённых дисплейных менеджеров в дистрибутивах Linux, особенно в тех, где GNOME используется в качестве окружения по умолчанию (например, Fedora, Ubuntu, Debian, CentOS, Astra Linux).

История

Разработка GDM была начата в 1998 году Джорджем Леблом (George Lebl) и Мартином К. Петерсеном (Martin K. Petersen) в рамках проекта GNOME. Первоначально GDM создавался как замена более ранним дисплейным менеджерам, таким как XDM (X Display Manager), который имел ограниченные возможности настройки и устаревший интерфейс. Основной целью было предоставить пользователям более гибкий и визуально привлекательный экран входа в систему, интегрированный с окружением GNOME.

Первая стабильная версия GDM 1.0 была выпущена в 2000 году. В последующие годы GDM развивался параллельно с GNOME, адаптируясь к изменениям в архитектуре X Window System и позднее — к появлению протокола Wayland. Важным этапом стал выпуск GDM 2.20 в 2007 году, который ввёл поддержку быстрого переключения пользователей и улучшенную работу с темами оформления.

С переходом GNOME на версию 3.0 в 2011 году GDM также претерпел значительные изменения. Была переработана архитектура: GDM начал использовать библиотеку GNOME Display Manager Library (libgdm) и перешёл на систему автозапуска systemd. В 2016 году, с выходом GNOME 3.22, GDM получил поддержку Wayland в качестве основного протокола отображения, хотя сохранил обратную совместимость с X11.

Архитектура и компоненты

GDM состоит из нескольких взаимосвязанных процессов, работающих в фоновом режиме:

  • gdm — основной процесс-демон, который запускается при старте системы (или при запуске X-сервера) и управляет всеми остальными компонентами. Он отвечает за инициализацию графического сервера, обработку запросов на вход и завершение сеансов.
  • gdm-simple-greeterпроцесс, отображающий экран входа (greeter). Именно его видит пользователь при загрузке: поле для ввода имени и пароля, список доступных пользователей, меню выбора окружения рабочего стола (сеанса) и настройки доступности.
  • gdm-session-worker — процесс, запускаемый для каждого пользовательского сеанса. Он выполняет аутентификацию (проверку пароля, PIN-кода или биометрических данных через PAM — Pluggable Authentication Modules) и запускает выбранное пользователем окружение рабочего стола.
  • gdm-x-session — вспомогательный процесс, который запускает X-сервер для каждого сеанса (на X11) или управляет сеансом Wayland.

Все компоненты взаимодействуют через D-Bus — межпроцессное взаимодействие в Linux. GDM также использует systemd-logind для управления пользовательскими сессиями и виртуальными терминалами.

Функциональные возможности

GDM предоставляет следующие основные функции:

  • Аутентификация пользователей: поддержка стандартных методов входа (пароль, PIN), а также расширенных механизмов через PAM (например, смарт-карты, биометрия, LDAP-аутентификация).
  • Выбор сеанса: пользователь может выбрать окружение рабочего стола (GNOME, KDE Plasma, Xfce, i3 и другие) или оконный менеджер из списка доступных в системе.
  • Управление сеансами: GDM поддерживает одновременную работу нескольких сеансов разных пользователей (быстрое переключение пользователей). При этом каждый сеанс запускается в отдельном виртуальном терминале.
  • Поддержка Wayland и X11: GDM может работать как с традиционным X-сервером, так и с современным протоколом Wayland. По умолчанию в большинстве дистрибутивов начиная с 2020-х годов используется Wayland, если аппаратное обеспечение поддерживает его.
  • Настройка внешнего вида: экран входа может быть настроен с помощью тем оформления, фоновых изображений, логотипов и текстовых сообщений (например, предупреждений о политике безопасности).
  • Доступность: поддержка специальных возможностей — экранная клавиатура, увеличение шрифтов, настройки для людей с ограниченными возможностями (например, через программу Orca).
  • Интеграция с systemd: GDM использует systemd для управления сервисами, что позволяет корректно завершать сеансы при выключении или перезагрузке системы.

Настройка

Настройка GDM осуществляется через несколько конфигурационных файлов и утилит:

  • /etc/gdm/custom.conf — основной файл конфигурации в формате INI. Позволяет задать параметры, такие как автоматический вход пользователя, таймаут сеанса, разрешение экрана, выбор графического сервера (Wayland или X11) и режим отладки.
  • /etc/gdm/PostLogin/Default и /etc/gdm/PreSession/Default — скрипты, выполняемые до и после входа пользователя. Могут использоваться для монтирования сетевых ресурсов, настройки окружения или запуска дополнительных сервисов.
  • gsettings — через dconf (система хранения настроек GNOME) можно изменять параметры внешнего вида экрана входа, например, фоновое изображение или список отображаемых пользователей.
  • Утилита gdmflexiserver — позволяет запустить новый сеанс GDM из командной строки (например, для тестирования или удалённого управления).

Настройка через графический интерфейс обычно недоступна для обычных пользователей; изменения вносятся администратором системы через текстовые файлы или команды.

Критика и недостатки

Несмотря на широкое распространение, GDM подвергается критике по нескольким причинам:

  • Зависимость от GNOME: GDM тесно интегрирован с окружением GNOME и его библиотеками (GTK, GLib, dconf). Это делает его тяжёлым для систем с ограниченными ресурсами или для пользователей, предпочитающих лёгкие оконные менеджеры. Установка GDM в окружении, отличном от GNOME, часто приводит к установке десятков зависимостей GNOME.
  • Сложность настройки: В отличие от более простых дисплейных менеджеров (например, LightDM или SDDM), GDM требует редактирования конфигурационных файлов и использования gsettings, что может быть неудобно для начинающих администраторов.
  • Проблемы с Wayland: На некоторых видеокартах (особенно от NVIDIA с проприетарными драйверами) GDM может некорректно работать под Wayland, вызывая чёрный экран или зависания. В таких случаях требуется принудительное переключение на X11.
  • Безопасность: В прошлом в GDM находили уязвимости, связанные с повышением привилегий или обходом аутентификации (например, CVE-2017-8288, CVE-2020-16125). Разработчики GNOME регулярно выпускают исправления, но критические уязвимости периодически обнаруживаются.

Альтернативы

В экосистеме Linux существуют другие дисплейные менеджеры, которые могут использоваться вместо GDM:

  • LightDM — лёгкий и настраиваемый дисплейный менеджер, используемый в Ubuntu (по умолчанию до 2017 года) и многих других дистрибутивах. Имеет модульную архитектуру и поддерживает различные «greeter» (экран входа).
  • SDDM (Simple Desktop Display Manager) — дисплейный менеджер, написанный на C++ с использованием Qt. Является стандартным для окружения KDE Plasma.
  • XDM (X Display Manager) — классический дисплейный менеджер из состава X.Org, крайне минималистичный и редко используемый в современных дистрибутивах.
  • CDM (Console Display Manager) — текстовый дисплейный менеджер, работающий в консоли, без графического интерфейса.

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

Распространение

GDM является дисплейным менеджером по умолчанию в следующих дистрибутивах Linux:

  • Fedora (начиная с версии 15, после перехода на GNOME 3);
  • Ubuntu (начиная с версии 17.10, когда Unity была заменена на GNOME);
  • Debian (при установке с окружением GNOME);
  • CentOS и RHEL (Red Hat Enterprise Linux) — при использовании GNOME;
  • Astra Linux (в редакциях с графическим окружением);
  • openSUSE (при выборе GNOME во время установки).

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

Источники

  1. GNOME Display Manager — GNOME Developer Documentation (developer.gnome.org/gdm).
  2. GDM Manual Pages (man gdm, man gdm.conf).
  3. «Fedora 15 Release Notes» — раздел о переходе на GNOME 3 и GDM.
  4. «Ubuntu 17.10 Release Notes» — раздел о замене LightDM на GDM.
  5. CVE-2017-8288, CVE-2020-16125 — базы данных уязвимостей (cve.mitre.org).
  6. «Wayland and GDM» — статья на wiki.gnome.org.
  7. «Comparison of Linux display managers» — Arch Linux Wiki (wiki.archlinux.org).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →