Вопрос или проблема
У меня установлена и настроена 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
и все файлы внутри неё имеют правильные права доступа и принадлежат правильному пользователю.
-
Откройте терминал и выполните команду, чтобы проверить права доступа:
ls -l /var/lib/aad/cache
-
Вы должны увидеть строки, указывающие владельца и права доступа к файлам, например:
-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
.