Безусловно вызывать userdel из %postun нельзя, и дело тут даже не в политике (удалять/оставлять пользователей при удалении пакета). %postun вызывается при обновлении пакета, причём после скриптов из новой версии (см. /usr/share/doc/rpm-*/triggers - там в конце расписан порядок выполнения скриптов). В результате при обновлении пользователь будет снесён (да ещё и вместе с данными из-за -r), однако файлы, принадлежащие ему, останутся как минимум в /var/www/webalizer. Исправить это обычным способом - через %triggerpostun на старые версии - в данном случае нельзя, так как нет гарантии, что заново созданный пользователь получит тот же идентификатор. Придётся громко выругаться в %triggerpostun и попросить переустановить пакет заново. --- ---
Если там будет такой фрагмент -- это примелемо? # fix awful user/group deletion in previous spec versions :( %triggerpostun -- webalizer < 2.01.10-alt3 echo \"Fixing permissions after faulty previous package:\" /usr/sbin/groupadd -r -f %webalizer_group 2>/dev/null ||: /usr/sbin/useradd -g %webalizer_group -G %apache_group -c \'The Webalizer\' \\ -d %webalizer_home -s /dev/null -r %webalizer_user 2>/dev/null || : %__chown -Rv root.%webalizer_group %webalizer_home %webalizer_html
Похоже, это не годится - файлы внутри этих каталогов в нормальной ситуации имеют права 644 webalizer:webalizer; возникнут проблемы с их обновлением. Ну и надо использовать \':\', а не \'.\'. Видимо, стоит спросить в devel - как бы дыру не создать при таком обновлении.
что бум делать?
наверное просто не делать userdel
помнится, приходилось рисовать триггеры... ok, постараюсь добраться
2 ldv: что скажешь про #2 и #3?
Не могу прочесть #2, перешли скрипт снова, пожалуйста.
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
fixed in 2.01.10-alt4, в общем