[devel] IA: всеобщая sysuserизация сизифа
Arseny Maslennikov
arseny на altlinux.org
Вс Сен 13 17:24:19 MSK 2026
On Sun, Sep 13, 2026 at 05:21:50PM +0300, Arseny Maslennikov wrote:
> Hi!
>
> Скоро в сизифе очутится rpm, способный сам регистрировать uid и gid в
> соответствии с директивами sysusers.d(5) в пакете, что наконец
> положит начало всеобщей sysuserизации в сизифе.
Сейчас, когда план всеобщей sysuserизации Сизифа достаточно детально ясен,
можно уже о ней говорить.
В достаточно светлом будущем я это вижу так:
* пакеты, ставящие файлы под чем-либо, кроме root, содержат
Requires: user(что-то)
либо сами предоставляют user(что-то) = <директива>; аналогично о группах;
* пакеты, содержащие m-директиву, получают зависимость на группу и
на пользователя, которых туда включают;
* нужда возиться с system ugid в скриптах вообще отпадёт;
* в пакете setup /etc/passwd и /etc/group станут %ghost, их содержимое
обернётся конфигом для sysusers.d(5), и при установке setup этот конфиг
будет применён, а passwd(5) и group(5) возникнут.
* на основании предыдущих пунктов мы принимаем поправку к PseudoUserPolicy;
* у нас появится применялка sysusers.d, зависящая от libc.so и всё. Она
облегчит footprint по кол-ву кода в малых, особенно неинтерактивных,
окружениях, и снимет все возможные вопросы о bloatware.
В обозримом настоящем мы планируем следующее:
* rpm, способный ставить sysusers-директивы в пакетах, отправляется в сизиф.
Если не найдётся причины поступить иначе, это произойдёт к ближайшей
публикации сизифа.
* Вскоре после этого в sisyphus-check мы запрещаем зависимости вида
/^Requires: (user|group|groupmember)\(.*\) [>=<].*$/
Req без версии, Prov с версией и без.
Кроме того, я б запретил упаковку в сизиф директив типа u, которые не u!;
если есть причины так не делать — мы бы хотели их выслушать.
* После этого rpm-build config снимается с ручника, и у пакетов с файлами
в %__sysusersdir после их пересборки начнут появляться провайды.
* Чтобы пакеты с такими провайдами могли не вызывать shadow-utils по старинке,
они, помимо прочего, должны ставиться в hasher. Что касается и тех, которые
hasher распаковывает как образ и потом ставит в режиме --justdb.
Это значит, что в его базовую среду, видимо, попадут sysusers-standalone, и,
вероятно, что-нибудь ещё значит.
* Когда это случится, возникнет отдельный анонс, и мы наконец-то порекомендуем
мейнтейнерам полагаться на sysusers.d(5) и убирать костыли из пакетных
скриптов.
* По мере уменьшения к-ва unmets от /^Requires: (user|group)\(.*\)$/ мы
введём sysusers.req: если в пакете есть файлы под non-root user, то
добавляем Req: user(), аналогично о группах. Скорее всего, это будет даже
не скрипт, а код в rpm-build (он будет проходить по %attr, конечно).
* Что-нибудь ещё, что я забыл.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : signature.asc
Тип : application/pgp-signature
Размер : 833 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20260913/88b19118/attachment.bin>
Подробная информация о списке рассылки Devel