Bug 2623 - %postun script calls userdel
: %postun script calls userdel
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/webalizer)
: unstable
: all Linux
: P5 major
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2003-05-30 18:15 by
Modified: 2005-02-10 12:07 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


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

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

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

# 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
------- Comment #2 From 2003-07-31 14:33:33 -------
Если там будет такой фрагмент -- это примелемо?

# 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
------- Comment #3 From 2003-07-31 14:59:19 -------
Похоже, это не годится - файлы внутри этих каталогов в нормальной ситуации
имеют права 644 webalizer:webalizer; возникнут проблемы с их обновлением. Ну и
надо использовать \':\', а не \'.\'.

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

Видимо, стоит спросить в devel - как бы дыру не создать при таком обновлении.
------- Comment #5 From 2003-10-18 20:50:06 -------
что бум делать?
------- Comment #6 From 2004-06-17 16:44:24 -------
наверное просто не делать userdel 
 
------- Comment #7 From 2004-06-17 16:48:14 -------
помнится, приходилось рисовать триггеры... ok, постараюсь добраться
------- Comment #8 From 2004-06-28 16:46:49 -------
2 ldv: что скажешь про #2 и #3?
------- Comment #9 From 2004-06-28 16:50:38 -------
Не могу прочесть #2, перешли скрипт снова, пожалуйста.
------- Comment #10 From 2004-06-28 17:27:16 -------
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 From 2004-06-28 21:00:40 -------
fixed in 2.01.10-alt4, в общем