Summary: | Не отображается список пользователей при запуске системы | экран приветствие [GDM] | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Олег Щавелев <oleg> | ||||||||
Component: | accountsservice | Assignee: | Alexey Shabalin <shaba> | ||||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||||
Severity: | normal | ||||||||||
Priority: | P5 | CC: | aen, antohami, aris, fomchenkovsv, iqqator, ldv, nickel, rider, ruslandh, shaba, sin, toxblh | ||||||||
Version: | unstable | ||||||||||
Hardware: | all | ||||||||||
OS: | Linux | ||||||||||
See Also: |
https://bugzilla.altlinux.org/show_bug.cgi?id=47499 https://bugzilla.altlinux.org/show_bug.cgi?id=47726 https://bugzilla.altlinux.org/show_bug.cgi?id=35210 |
||||||||||
Bug Depends on: | |||||||||||
Bug Blocks: | 46625 | ||||||||||
Attachments: |
|
Исследуйте проблему, найдите правильный компонент. (Ответ для Олег Щавелев на комментарий #0) > Дополнительно: > ============== > Для отображения списка пользователей, необходимо завести нового > пользователя. Мы можем завести нового пользователя, как через ЦУС, так и > через настройки рабочего окружения GNOME. Проблема гораздо интереснее. 17 ноября обновился fwupd 1.9.5-alt1 -> 1.9.8-alt1 После этого все создаваемые пользователи подвержены проблеме. В gdm скрывается первый пользователь, зарегистрированный уже после того, как в системе установлен fwupd >= 1.9.8-alt1. Если скрытого пользователя удалить, то скроется следующий за ним пользователь. Пользователи, созданные до обновления fwupd, проблеме не подвержены. (Ответ для Антон Мидюков на комментарий #2) > (Ответ для Олег Щавелев на комментарий #0) > > Дополнительно: > > ============== > > Для отображения списка пользователей, необходимо завести нового > > пользователя. Мы можем завести нового пользователя, как через ЦУС, так и > > через настройки рабочего окружения GNOME. > > Проблема гораздо интереснее. > 17 ноября обновился fwupd 1.9.5-alt1 -> 1.9.8-alt1 > После этого все создаваемые пользователи подвержены проблеме. > В gdm скрывается первый пользователь, зарегистрированный уже после того, как > в системе установлен fwupd >= 1.9.8-alt1. Если скрытого пользователя > удалить, то скроется следующий за ним пользователь. Пользователи, созданные > до обновления fwupd, проблеме не подвержены. Но так как даунгрейд fwupd проблему не решает, мне сложно предположить, что происходит, и что с этим сделать можно. Пока на регулярку. (Ответ для Антон Мидюков на комментарий #2) > (Ответ для Олег Щавелев на комментарий #0) > > Дополнительно: > > ============== > > Для отображения списка пользователей, необходимо завести нового > > пользователя. Мы можем завести нового пользователя, как через ЦУС, так и > > через настройки рабочего окружения GNOME. > > Проблема гораздо интереснее. > 17 ноября обновился fwupd 1.9.5-alt1 -> 1.9.8-alt1 > После этого все создаваемые пользователи подвержены проблеме. > В gdm скрывается первый пользователь, зарегистрированный уже после того, как > в системе установлен fwupd >= 1.9.8-alt1. Если скрытого пользователя > удалить, то скроется следующий за ним пользователь. Пользователи, созданные > до обновления fwupd, проблеме не подвержены. Антон, протестировал, ровно так и происходит. fwupd-efi-1.4-alt2.x86_64 fwupd-1.9.10-alt1.x86_64 В результате изысканий причины ошибки обнаружил следующее: - `accounts-daemon` определяет заблокированность пользователя через структуру `spent`которая в свою очередь в поле `passwd` имеет последний элемент из файла `/etc/shadow` - в файле `/etc/shadow` последним элементом стоит `fwupd-refresh:!*:` что возвращает значение `!*` (заблокирован) - именно fwupd принес нового пользователя в `/etc/shadow` - в сравнении с системой в котором использовался старый пакет `fwupd` - удивительно что accountsservice либо не знает что используется TCB либо чего-то не видит. Проверки гипотезы о том что данный пользователь все ломает: - Если добавить свою запись вида `username:*:...` то все начинает работать как ожидается и даже лучше ) появляется возможность смены login name, и автовход. - Если просто удалить (на время) эту запись или просто убрать ! (блок), то просто появляется наш пользователь в списке пользователей на экране входа. (Ответ для iQQator на комментарий #6) > - Если просто удалить (на время) эту запись или просто убрать ! (блок), то > просто появляется наш пользователь в списке пользователей на экране входа. Очень здорово, посмотреть в рамках обсуждения проблемы, репорт по ссылке: https://bugzilla.altlinux.org/47499, и возможно перевесить репорт на компонент accountsservice? fwupd 1.9.8-alt1 получил новый файл /lib/sysusers.d/fwupd.conf: u fwupd-refresh - "Firmware update daemon" /var/lib/fwupd Тем не менее пользователь fwupd-refresh при установке пакета не создаётся. В /etc/tcb/ каталога пользователя нет. В результате появляется странная запись в /etc/shadow: fwupd-refresh:!*:19717:::::: т.е. заблокированный пользователь. У всех пакетов с конфигами в /lib/sysusers.d/ при установке создаётся пользователь. Поэтому делаю вывод, что нужно исправить fwupd, создавать при установке пользователя fwupd-refresh. Перевешиваю на мантейнера Egor Ignatov, собирающего пакет fwupd последний год. https://bugzilla.altlinux.org/show_bug.cgi?id=47499#c7 (Ответ для Toxblh на комментарий) > По итогу багу нашлась в коде, завёл issue в upstream: > https://gitlab.freedesktop.org/accountsservice/accountsservice/-/issues/121 > > До исправления, можно сделать временное решение - отсортировать passwd, > подняв пользователя на самый верх или сортировку по убыванию uid. Подписываю Евгения Синельникова. Отчёт о тестировании: Стенд с ошибкой: ================= alt-server 10.1 - обновленный до Sisyphus на момент 26.01.24 Шаги, приводящие к ошибке: ========================== 1) Установить пакет gnome-default 2) Перезагрузить систему Результат: ========== В интерфейсе LightDM отсутствует список пользователей, требуется ввести логин и пароль для авторизации. Ожидаемый результат: ==================== При запуске системы, на экране приветствия LightDM отображается список доступных для входа пользователей. Created attachment 15570 [details]
патч
Патч которым починил поведение на ожидаемое. Больше shadow пользователи предыдущие перед нашим, не влияют на него.
Ну и тесты пофиксил, а то не проходили при сборке
Comment on attachment 15570 [details] патч >diff --git a/src/daemon.c b/src/daemon.c >index aa9d050..d51be4d 100644 >--- a/src/daemon.c >+++ b/src/daemon.c >@@ -304,7 +304,8 @@ entry_generator_fgetpwent (Daemon *daemon, > pwent = fgetpwent (generator_state->fp); > if (pwent != NULL) { > shadow_entry_buffers = g_hash_table_lookup (generator_state->shadow_users, pwent->pw_name); >- >+ *spent = NULL; >+ > if (shadow_entry_buffers != NULL) { > *spent = &shadow_entry_buffers->spbuf; > } >diff --git a/tests/test-libaccountsservice.py b/tests/test-libaccountsservice.py >index 723ab51..69b9083 100644 >--- a/tests/test-libaccountsservice.py >+++ b/tests/test-libaccountsservice.py >@@ -115,8 +115,8 @@ class TestAccountsServicePreExistingUser(AccountsServiceTestBase): > self.assertTrue(user_objects[instance].is_loaded()) > > for user in user_objects: >- self.assertEquals(user.get_user_name(), 'pizza') >- self.assertEquals(user.get_uid(), 2001) >+ self.assertEqual(user.get_user_name(), 'pizza') >+ self.assertEqual(user.get_uid(), 2001) > > @unittest.skipUnless(have_accounts_service, > 'AccountsService gi introspection not available') Created attachment 15571 [details]
патч
Здравствуйте Алексей. Я проверил таск 341187 по ссылке https://git.altlinux.org/tasks/341187/ Стенды ================= * Sisyphus 20240122 * Kernel: 6.6.17-un-def-alt1 * GNOME 45.4 Версия программы: ================= accountsservice-23.13.9-alt2 Шаги: ================= * Установить ALT Regular Gnome, ветка tested * Обновить пакет по таску 341187 * Запустить операционную систему, экран входа в GDM Результат: ========== При запуске системы, на экране входа отображается список пользователей. Дополнительно: ============== Скриншоты экрана входа до и после установки пакета по заданию 341187 https://disk.yandex.ru/d/4r8D8fFRaxekjQ |
Created attachment 15219 [details] экран приветствие после установки ALT Regular Gnome Стенды с ошибкой: ================= * Sisyphus 20230819 * Kernel: 6.6.6-un-def-alt1 * GNOME 45.2 Версия программы: ================= Sisyphus 20230819 Шаги, приводящие к ошибке: ================= * Установить ALT Regular Gnome, ветка tested * Запустить операционную систему, экран приветствие в GDM Результат: ========== Отсутствует список пользователей. Для авторизации необходимо вести пользователя, как системного. Ожидаемый результат: ========== При запуске системы, на экране приветствия отображается список пользователей. Дополнительно: ============== Для отображения списка пользователей, необходимо завести нового пользователя. Мы можем завести нового пользователя, как через ЦУС, так и через настройки рабочего окружения GNOME.