GDM — это дисплейный менеджер для GNOME, графическая программа для логина пользователя, использующая Wayland или X Window System.
В дополнение к тому, что GDM — это графическая альтернатива входу через консоль, GDM также обладает следующими преимуществами:
Он предзагружает X Window System (хотя для серверов это может быть и минусом)
- Помогает людям с дополнительными потребностями
- Дает возможность выбрать разный региональные настройки и раскладку для каждого логина
- Неизменный внешний вид, не отличающийся от тем прочих приложений GTK/GNOME
- Все преимущества XDM, включая поддержку XDMCP для управления удаленными дисплеями
По умолчанию, GDM запускается от лица непривилегированного пользователя и вход от имени root запрещен.
Contents
Управление демоном GDM
GDM — это такой же сервис, как и все остальные в системе, и им можно управлять с помощью команды systemctl.
Временно остановить GDM:
$ systemctl stop gdm
Проверить состояние GDM:
$ systemctl status gdm
Запустить GDM вручную:
$ systemctl start gdm
Всегда загружаться в консоль, а не в GDM:
$ systemctl set-default multi-user.target
Отменить предыдущую команду и загружаться напрямую в GDM:
$ systemctl set-default graphical.target
Проверить текущую цель загрузки:
$ systemctl get-default
Создать или отредактировать файл override.conf для GDM:
$ systemctl edit gdm
Далее см. Wiki-страницу systemd.
Настройка
Отключение Wayland
В Debian 10 и новее GDM будет загружать сессию Wayland по умолчанию при условии, что Wayland поддерживается на аппаратном уровне. Это поведение можно переопределить в файле /etc/gdm3/daemon.conf, раскомментировав строку WaylandEnable=false, что заставит GDM использовать X11.
Включение Wayland на NVIDIA
В Debian 12 Wayland отключен по умолчанию для ряда видеокарт. Это поведение контролируется файлом /lib/udev/rules.d/61-gdm.rules.
Введите следующую команду, чтобы сделать Wayland доступным в GDM:
# mv /lib/udev/rules.d/61-gdm.rules{,.bak}после чего перезагрузитесь. Делайте это на свой страх и риск.
Изменение внешнего вида GDM
GDM v3.0+ допускает базовую кастомизацию, такую как смена лого, фона и темы GTK. Чтобы изменить эти параметры:
Отредактируйте файл /etc/gdm3/greeter.dconf-defaults от имени root
- Раскомментируйте или укажите желаемые настройки
- Сохраните файл и закройте редактор
И, наконец, запустите от имени root: dpkg-reconfigure gdm3
Команда 'dpkg-reconfigure gdm3' заставит GDM перезапуститься с учетом изменений в настройках при следующем выходе из сессии или перезагрузке.
Примечание: при смене фона GDM убедитесь, что файл с изображением доступен всем пользователям по указанному пути. Для этого указывайте абсолютный путь к файлу вместо относительного
Отключение автологина в GDM3 и включение более подробного вывода в GDM
Данная секция относится к GDM3 в GNOME 3 и новее.
$ dpkg -S /etc/gdm3/daemon.conf gdm3: /etc/gdm3/daemon.conf
Данная команда позволяет узнать принадлежность файла.
Таким образом, файл должен выглядеть примерно так:-
$ cat /etc/gdm3/daemon.conf
# GDM configuration storage
#
# See /usr/share/gdm/gdm.schemas for a list of available options.
[daemon]
# Enabling automatic login
AutomaticLoginEnable=true
AutomaticLogin=$USERNAME
# Enabling timed login
# TimedLoginEnable = true
# TimedLogin = user1
# TimedLoginDelay = 10
# Reserving more VTs for test consoles (default is 7)
# FirstVT = 9
[security]
[xdmcp]
[greeter]
# Only include selected logins in the greeter
# IncludeAll = false
# Include = user1,user2
[chooser]
[debug]
# More verbose logs
# Additionally lets the X server dump core if it crashes
Enable = falseПри удалении пользователя вы не сможете войти в DE, особенно если включен автоматический вход. Обход данного бага:
$ cat /etc/gdm3/daemon.conf
# GDM configuration storage
#
# See /usr/share/gdm/gdm.schemas for a list of available options.
[daemon]
# Enabling automatic login
AutomaticLoginEnable=false
# Enabling timed login
# TimedLoginEnable = true
# TimedLogin = user1
# TimedLoginDelay = 10
# Reserving more VTs for test consoles (default is 7)
# FirstVT = 9
[security]
[xdmcp]
[greeter]
# Only include selected logins in the greeter
# IncludeAll = false
# Include = user1,user2
[chooser]
[debug]
# More verbose logs
# Additionally lets the X server dump core if it crashes
Enable = true
