Bug 2623

Summary: %postun script calls userdel
Product: Sisyphus Reporter: Sergey Vlasov <vsu>
Component: webalizerAssignee: Michael Shigorin <mike>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P5 CC: ldv, mike
Version: unstable   
Hardware: all   
OS: Linux   

Description Sergey Vlasov 2003-05-30 18:15:04 MSD
Безусловно вызывать userdel из %postun нельзя, и дело тут даже не в политике (удалять/оставлять пользователей при удалении пакета). %postun вызывается при обновлении пакета, причём после скриптов из новой версии (см. /usr/share/doc/rpm-*/triggers - там в конце расписан порядок выполнения скриптов). В результате при обновлении пользователь будет снесён (да ещё и вместе с данными из-за -r), однако файлы, принадлежащие ему, останутся как минимум в /var/www/webalizer.

Исправить это обычным способом - через %triggerpostun на старые версии - в данном случае нельзя, так как нет гарантии, что заново созданный пользователь получит тот же идентификатор. Придётся громко выругаться в %triggerpostun и попросить переустановить пакет заново.
---

---

Comment 1 Michael Shigorin 2003-07-31 14:33:33 MSD
Если там будет такой фрагмент -- это примелемо?

# fix awful user/group deletion in previous spec versions :(
%triggerpostun -- webalizer &lt; 2.01.10-alt3
echo \&quot;Fixing permissions after faulty previous package:\&quot;
/usr/sbin/groupadd -r -f %webalizer_group 2&gt;/dev/null ||:
/usr/sbin/useradd -g %webalizer_group -G %apache_group -c \'The Webalizer\' \\
        -d %webalizer_home -s /dev/null -r %webalizer_user 2&gt;/dev/null || :
%__chown -Rv root.%webalizer_group %webalizer_home %webalizer_html
Comment 2 Michael Shigorin 2003-07-31 14:33:33 MSD
Если там будет такой фрагмент -- это примелемо?

# fix awful user/group deletion in previous spec versions :(
%triggerpostun -- webalizer &lt; 2.01.10-alt3
echo \&quot;Fixing permissions after faulty previous package:\&quot;
/usr/sbin/groupadd -r -f %webalizer_group 2&gt;/dev/null ||:
/usr/sbin/useradd -g %webalizer_group -G %apache_group -c \'The Webalizer\' \\
        -d %webalizer_home -s /dev/null -r %webalizer_user 2&gt;/dev/null || :
%__chown -Rv root.%webalizer_group %webalizer_home %webalizer_html
Comment 3 Sergey Vlasov 2003-07-31 14:59:19 MSD
Похоже, это не годится - файлы внутри этих каталогов в нормальной ситуации имеют права 644 webalizer:webalizer; возникнут проблемы с их обновлением. Ну и надо использовать \':\', а не \'.\'.

Видимо, стоит спросить в devel - как бы дыру не создать при таком обновлении.
Comment 4 Sergey Vlasov 2003-07-31 14:59:19 MSD
Похоже, это не годится - файлы внутри этих каталогов в нормальной ситуации имеют права 644 webalizer:webalizer; возникнут проблемы с их обновлением. Ну и надо использовать \':\', а не \'.\'.

Видимо, стоит спросить в devel - как бы дыру не создать при таком обновлении.
Comment 5 Michael Shigorin 2003-10-18 20:50:06 MSD
что бум делать?
Comment 6 inger@altlinux.org 2004-06-17 16:44:24 MSD
наверное просто не делать userdel 
 
Comment 7 Michael Shigorin 2004-06-17 16:48:14 MSD
помнится, приходилось рисовать триггеры... ok, постараюсь добраться
Comment 8 Michael Shigorin 2004-06-28 16:46:49 MSD
2 ldv: что скажешь про #2 и #3?
Comment 9 Dmitry V. Levin 2004-06-28 16:50:38 MSD
Не могу прочесть #2, перешли скрипт снова, пожалуйста.
Comment 10 Michael Shigorin 2004-06-28 17:27:16 MSD
2 vsu, ldv: где-то так?

for i in %webalizer_home %webalizer_html; do         
        find $i -group %apache_webmaster \( -type f -o -type d \) -print0 \
        | xargs -0 %__chown -Rv root:%webalizer_group
done
Comment 11 Michael Shigorin 2004-06-28 21:00:40 MSD
fixed in 2.01.10-alt4, в общем