Почему GDM отказывает в доступе?

Вопрос или проблема

Каждый раз, когда я пытаюсь войти в свою Linux-сессию через интерфейс GNOME, где я ввожу свое имя пользователя lmo и пароль oo, это не удается. (Это виртуальная среда.)

Если я делаю то же самое на TTY или используя su(1) от другого пользователя, вход в систему успешен.

Я проверил ошибки, используя ausearch(1). Вот выделенные файлы журналов, то есть те, которые содержат ключевое слово failed.

...
type=CRED_ACQ msg=audit(1737801799.154:899): pid=43453 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='op=PAM:setcred grantors=? acct="lmo" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
...
type=CRED_ACQ msg=audit(1737802267.477:1172): pid=44664 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='op=PAM:setcred grantors=? acct="lmo" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
...

SELinux установлен в разрешающем режиме.

Какова причина этого поведения? Как я могу это исправить?

Ответ или решение

Если рассматривать вопрос, почему GDM (GNOME Display Manager) отказывает в доступе к вашему Linux-сеансу, то стоит разобрать несколько аспектов, ввиду которых может возникать данная проблема, особенно в контексте предоставленных логов и системы SELinux, работающей в режиме permissive.

Теория: Возможные причины отказа доступа

Одной из главных ролей в процессе аутентификации в Linux играет модуль Pluggable Authentication Modules (PAM). На основе логов, которые вы предоставили, видно, что ошибка связана с операцией PAM:setcred, что подразумевает неудачу на этапе установки учетных данных пользователя. Это может означать, что в цепочке PAM возникла проблема, возможно, связанная с правами пользователя или с отсутствием необходимых модулей в конфигурации PAM.

Приведем основные потенциальные причины ошибки:

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

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

  3. Конфликты SELinux: Хотя SELinux установлен в режим permissive, он всё равно может логировать и иногда косвенно влиять на некоторые операции. Однако в этом режиме он не должен блокировать выполняющиеся действия.

  4. Ошибки в конфигурации GDM: Файлы конфигурации GDM могут быть повреждены или неправильно настроены, что может препятствовать корректной аутентификации.

Пример: Расшифровка логов

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

type=CRED_ACQ msg=audit(...) pid=43453 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='op=PAM:setcred grantors=? acct="lmo" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'

Здесь видно, что нет grantors – модули или пользователи, предоставляющие доступ, что уже является серьёзным индикатором наличия пробела в конфигурации PAM.

Применение: Шаги по устранению проблемы

Чтобы устранить проблему, следуйте приведенным действиям:

  1. Проверка конфигураций PAM:

    • Удостоверьтесь, что файлы конфигурации PAM, находящиеся в /etc/pam.d/, правильно настроены. Обратите особое внимание на файлы, такие как gdm-password и gdm-autologin.
    • Убедитесь, что в них прописаны все необходимые процессы аутентификации и нет опечаток.
  2. Проверка иерархической структуры разрешений:

    • Убедитесь, что ваш пользователь lmo имеет необходимые права и не заблокирован в /etc/passwd или /etc/shadow.
    • Выполните команды для пересмотра прав доступа: sudo chmod и sudo chown для проверки прав на директории, если необходимо.
  3. Оценка конфигурации GDM:

    • Проверьте конфигурации GDM, которые находятся в /etc/gdm/. Убедитесь, что все пути и параметры указаны правильно, и в них нет конфликтов.
  4. Проверка логов SELinux:

    • Хотя SELinux в режиме permissive, все же полезно проверить логи, например, с помощью sealert -a, чтобы убедиться в отсутствии предупреждений, которые могут намекнуть на скрытые проблемы.
  5. Обновление и восстановление пакетов:

    • Возможно, стоит восстановить или обновить пакеты PAM и GDM, чтобы исключить записанные баги или несовместимости. Это можно сделать с помощью пакетного менеджера, например, sudo apt-get install --reinstall gdm3 или заменой на другой дисплейный менеджер временно.

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

Оцените материал
Добавить комментарий

Капча загружается...