aad-auth и KDE: Вход работает, но разблокировка не работает

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

У меня установлена и настроена Ubuntu 24.04 (обновленная с 23), на которой установлен aad-auth. Она работала корректно с Gnome как до, так и после обновления, я использую учетную запись MS почти 1 год.

С KDE, однако, все работает, кроме разблокировки сессии.

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

Oct 10 12:56:39 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): aad auth debug enabled
Oct 10 12:56:39 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): PAM AAD DEBUG enabled
Oct 10 12:56:39 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): Loading configuration from /etc/aad.conf
Oct 10 12:56:39 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): Connecting to "https://login.microsoftonline.com/<TENANT_ID>", with clientID "<CLIENT_ID>" for user "[email protected]"
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): Authentication successful even if requiring MFA
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): Cache initialization
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): Opening cache in /var/lib/aad/cache
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): check file permissions on /var/lib/aad/cache/passwd.db
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): check file permissions on /var/lib/aad/cache/shadow.db
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): Shadow db mode: 0
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): getting user information from cache for "[email protected]"
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): encrypt password for user "[email protected]"
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): updating from last online login information for user "[email protected]"
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): couldn't create/open cache for nss database: failed to update user "[email protected]" in local cache: shadow database is not accessible for writing: 0. Denying access.
Oct 10 12:56:41 host1 kscreenlocker_greet[8957]: pam_aad(kde:auth): Close database request

Файлы в /var/lib/aad/cache принадлежат root, вход в sddm осуществляется как root, kscreenlocker_greet запускается от имени вошедшего пользователя.

Я не могу понять, как правильно это исправить. Если я попробую запускать greeter от имени root (не учитывая последствия для безопасности), он полностью перестает работать.

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

Проблема, описанная вами, связана с правами доступа к файлам кэша для модуля аутентификации AAD в KDE. Из сообщения об ошибке видно, что kscreenlocker_greet не может получить доступ к базе данных shadow.db, поскольку у него нет прав на запись. Давайте рассмотрим решение этой проблемы шаг за шагом.

Шаг 1: Проверка прав доступа

Вам нужно убедиться, что директория /var/lib/aad/cache и все файлы внутри неё имеют правильные права доступа и принадлежат правильному пользователю.

  1. Откройте терминал и выполните команду, чтобы проверить права доступа:

    ls -l /var/lib/aad/cache
  2. Вы должны увидеть строки, указывающие владельца и права доступа к файлам, например:

    -rw------- 1 root root     0 Oct 10 12:56 passwd.db
    -rw------- 1 root root     0 Oct 10 12:56 shadow.db

Шаг 2: Изменение прав доступа

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

sudo chown user:user /var/lib/aad/cache/*

Если ваши базы данных нуждаются в открытых правах, выполните:

sudo chmod 600 /var/lib/aad/cache/*

Шаг 3: Перезапуск службы

После изменения прав доступа рекомендуется перезапустить SDDM (Simple Desktop Display Manager), чтобы изменения вступили в силу. Выполните следующую команду:

sudo systemctl restart sddm

Шаг 4: Проверка конфигурации

Убедитесь, что конфигурация /etc/aad.conf настроена правильно. Проверьте параметры, такие как clientID, и убедитесь, что они соответствуют тем, что вы используете при входе в систему.

Шаг 5: Тестирование

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

journalctl -xe | grep aad

Заключение

Если проблема по-прежнему не решена, возможно, стоит рассмотреть возможность обращения к сообществу Ubuntu или разработчикам библиотеки aad-auth для получения дополнительной поддержки. Убедитесь также, что все системные пакеты обновлены, и что у вас установлены последние версии программного обеспечения, прежде чем делать окончательные выводы о проблеме.

Надеюсь, эти шаги помогут вам разрешить проблему с разблокировкой сессии в KDE с использованием aad-auth.

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

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