Bug 52892

Summary: systemd-sysusers не поддерживает /etc/tcb
Product: Sisyphus Reporter: Vitaly Lipatov <lav>
Component: systemdAssignee: Alexey Shabalin <shaba>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: aen, arseny, boria138, egori, gorjachevas, respublica, sem, shaba, sin
Version: unstable   
Hardware: x86_64   
OS: Linux   
URL: https://lore.altlinux.org/devel/3e24c7b0-10fd-4b3b-9c33-b682cf0236f4@ya.ru/
Bug Depends on:    
Bug Blocks: 52893    

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 ошибка не воспроизводится.