Bug 52892 - systemd-sysusers не поддерживает /etc/tcb
Summary: systemd-sysusers не поддерживает /etc/tcb
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: systemd (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL: https://lore.altlinux.org/devel/3e24c...
Keywords:
Depends on:
Blocks: 52893
  Show dependency tree
 
Reported: 2025-02-01 03:16 MSK by Vitaly Lipatov
Modified: 2025-10-06 17:02 MSK (History)
9 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2025-02-01 03:16:20 MSK
При создании пользователя через systemd-sysusers
он создаёт файл /etc/shadow, вместо /etc/tcb/USER/shadow

Из-за этого, в частности, созданных пользователей нельзя удалить:


sudo userdel nixbld10
userdel: не удалось заблокировать /etc/tcb/nixbld10/shadow; попробуйте ещё раз позже.

Каталога /etc/tcb/nixbld10/ вообще нет

С группами так же

sudo groupdel nixbld

groupdel: не удалось удалить первичную группу пользователя «nixbld01»
Comment 1 Arseny Maslennikov 2025-05-21 19:04:07 MSK
В довольно свежем rpm-s-m реализовали явную поддержку^W супорт:
https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers

Если это бекпортировать, то можно даже не полагаться на %pre, как предлагали в bug 52893.
Comment 2 Arseny Maslennikov 2025-05-21 19:19:22 MSK
Есть два возможных подхода к проблеме.

Один заключается в том, чтобы запатчить systemd-sysusers (иначе говоря, переписать по меньшей мере добрую треть src/sysusers/sysusers.c) и реализовать там поддержку tcb, а далее попробовать заапстримить. (Получилось же заапстримить поддержку passwdqc в homed?)

Второй сводится к тому, чтобы просто написать sysusers.c; по оценке, это 500 строк на Си, если писать под лозунгом worse is better, и до 1500, если вылизывать мелочи.
Для non-systemd установок этот вариант, очевидно, приятнее.
Некоторая доля кода src/sysusers/sysusers.c заключается в синергии с остальным проектом systemd, и её можно не повторять (или повторить не сразу).
Comment 3 Vitaly Lipatov 2025-05-22 09:02:54 MSK
(Ответ для Arseny Maslennikov на комментарий #2)
...
> Второй сводится к тому, чтобы просто написать sysusers.c; по оценке, это 500
Может быть тогда просто вызывать из него useradd, чтобы не дублировать логику?
Comment 4 Алексей Горячев 2025-10-06 17:02:26 MSK
С версии systemd-257.9-alt1 ошибка не воспроизводится.