Summary: | control libnss-role status не работает | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Mikhail Efremov <sem> |
Component: | libnss-systemd | Assignee: | Alexey Shabalin <shaba> |
Status: | REOPENED --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | amakeenk, arseny, lav, piastry, shaba, sin |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
Mikhail Efremov
2022-11-30 18:49:04 MSK
Это не бага, а фича. Модуль role должен быть последним в списке модулей. Если он не последний, то состояние не определено, то есть unknown. Код, который добавляет модуль systemd должен быть поправлен, чтобы учитывать это. В каком пакете реализовано добавление systemd в список nss модулей? Скрипт добавляющий nss модуль systemd в стек базы group нужно поправить, чтобы модуль role оставался последним. [sin@base ~]$ rpm -qf /lib64/libnss_systemd.so.2 --scripts postinstall scriptlet (using /bin/sh): if [ -f /etc/nsswitch.conf ] ; then grep -E -q '^(passwd|group):.* systemd' /etc/nsswitch.conf || sed -i.rpmorig -r -e ' s/^(passwd|group):(.*)/\1:\2 systemd/ ' /etc/nsswitch.conf >/dev/null 2>&1 || : fi update_chrooted all postuninstall scriptlet (using /bin/sh): if [ "$1" = "0" ]; then if [ -f /etc/nsswitch.conf ] ; then sed -i.rpmorig -e ' /^(passwd|group):/ !b s/[[:blank:]]\+systemd\>// ' /etc/nsswitch.conf >/dev/null 2>&1 || : fi fi update_chrooted all Наверняка есть и другие пакеты, добавляющие модули в /nsswitch.conf. И я не знаю как гарантировать, что role добавляется последним для всех существующих и будущих скриптов. Единственное системное решение, которое я предлагаю в дальнейшем реализовать - это управление nss-модулями через системный интерфейс. PAM у нас уже управляется через control. Тоже самое можно реализовать и для NSS. Ручная правка конфигов, даже в скриптах, всегда может приводить к коллизиям. В федоре, такой инструмент вообще в монстра генерирующего конфиги превратили. Ну, то есть тоже в системный инструмент. Итого, все модули, которые правят NSS нужно приводить к тому или иному policy. И лучше всего, вместо множества слов на wiki (они тоже полезны, конечно), это policy реализовать в виде соответствующего инструмента. На текущий момент эта идея требует проработки, а решение все равно потребует правки скриптов. Я уже готовлю исправление для libnss-systemd, решающее текущую проблему. Отправил исправления на сборку: #310998 BUILDING #1 [locked] p10 systemd.git=249.13-alt2 #310997 BUILDING #1 [locked] sisyphus systemd.git=251.8-alt2 Кроме совместимости с libnss-role, исправил скрипты вычищающие записи в nsswitch.conf после удаления пакетов. systemd-1:251.8-alt2 -> sisyphus: Fri Dec 02 2022 Evgeny Sinelnikov <sin@altlinux> 1:251.8-alt2 - Fix libnss-systemd postinstall scriptlet for compatibility with libnss-role conflict in order of modules in group NSS database (closes: #44505). - Fix postuninstall scriptlets for cleanup systemd and mymachines NSS modules. (Ответ для Evgeny Sinelnikov на комментарий #5) > Отправил исправления на сборку: > #310998 BUILDING #1 [locked] p10 systemd.git=249.13-alt2 Проверил в p10 (только задание 311286, там версия уже более новая). Похоже, что ошибка не исправлена. Система: ALT Workstation K 10.1 Ситуация до обновления: # control libnss-role; grep ^group /etc/nsswitch.conf; rpm -q libnss-systemd unknown group: files role systemd libnss-systemd-249.13-alt1.x86_64 Ситуация после обновления: # control libnss-role; grep ^group /etc/nsswitch.conf; rpm -q libnss-systemd unknown group: files role systemd libnss-systemd-249.13-alt3.x86_64 Результат не изменился. Проверил на системах ALT Workstation 10 и ALT Education 10, там ошибка не воспроизводится даже без задания (поскольку role прописано в конце строки), после задания результат не меняется: # control libnss-role; grep ^group /etc/nsswitch.conf enabled group: files systemd role Попробовал переместить role в другое положение (group: files role systemd и group: role files systemd), после обновления результат не меняется, control libnss-role возвращает результат unknown systemd-1:249.13-alt3 -> p10: Tue Dec 06 2022 Slava Aseev <ptrnine@altlinux> 1:249.13-alt3 - Provide necessary environment variables to user-managed generators. (backport from sisyphus) Thu Dec 01 2022 Evgeny Sinelnikov <sin@altlinux> 1:249.13-alt2 - Fix libnss-systemd postinstall scriptlet for compatibility with libnss-role conflict in order of modules in group NSS database (closes: #44505). - Fix postuninstall scriptlets for cleanup systemd and mymachines NSS modules. (Ответ для Alexander Makeenkov на комментарий #7) > (Ответ для Evgeny Sinelnikov на комментарий #5) > > Отправил исправления на сборку: > > #310998 BUILDING #1 [locked] p10 systemd.git=249.13-alt2 > > Проверил в p10 (только задание 311286, там версия уже более новая). > Похоже, что ошибка не исправлена. > > Система: ALT Workstation K 10.1 > > Ситуация до обновления: > > # control libnss-role; grep ^group /etc/nsswitch.conf; rpm -q libnss-systemd > unknown > group: files role systemd > libnss-systemd-249.13-alt1.x86_64 > > Ситуация после обновления: > > # control libnss-role; grep ^group /etc/nsswitch.conf; rpm -q libnss-systemd > unknown > group: files role systemd > libnss-systemd-249.13-alt3.x86_64 > > Результат не изменился. > > Проверил на системах ALT Workstation 10 и ALT Education 10, там ошибка не > воспроизводится даже без задания (поскольку role прописано в конце строки), > после задания результат не меняется: > > # control libnss-role; grep ^group /etc/nsswitch.conf > enabled > group: files systemd role > > Попробовал переместить role в другое положение (group: files role systemd и > group: role files systemd), после обновления результат не меняется, control > libnss-role возвращает результат unknown |