Bug 8592

Summary: add /var/www/html/lightsquid/report/, pseudo user
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: lightsquidAssignee: Anton Farygin <rider>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: rider, solo
Version: unstable   
Hardware: all   
OS: Linux   

Description Michael Shigorin 2005-12-05 16:31:31 MSK
пакет необходимо доработать для пригодности к более-менее безопасному
использованию из коробки.

1. надо создать псевдопользователя (рекомендую _lightsquid:_lightsquid)

2. создать /var/www/html/lightsquid/report/ (или перенести в
/var/lib/lightsquid/report и соответственно скорректировать дефолты)

3. при наличии этого каталога передать права на него псевдопользователю

В сумме получается примерно так (I DIDN'T REALLY TEST THIS):

%define lightuser _lightsquid
%define lightgroup _lightsquid
%define lightdir /var/www/html/lightsquid

# ...

%pre
/usr/sbin/groupadd -r -f %lightgroup
/usr/sbin/useradd -r -g %lightgroup -d /dev/null -s /dev/null -n %lightuser
>/dev/null 2>&1 ||:
[ -d %lightdir ] && /bin/chown -R %lightuser:%lightgroup %lightdir

# ...

%files
# права -- если заработает, лучше 0750 (возможно, с %apache_group)
%attr(0755,%lightuser,%lightgroup) %lightdir

Соответственно в /etc/cron.daily/lightsquid должен быть вызов с использованием
su (возможно, -s /bin/sh), а сам этот файл должен быть %config(noreplace).  Ещё
лучше из cron.daily перекинуть его в cron.d, что позволит администратору более
гибко управлять частотой запуска (см. как сделано в mrtg).

PS: в %description s/analizer/analyzer/ :)
Comment 1 Michael Shigorin 2005-12-05 16:48:50 MSK
Да, ещё:

- в /etc/cron.d/lightsquid можно положить такое:
45 03 * * * root /bin/su - -c /usr/sbin/lightparser.pl -s /bin/sh _lightsquid

- пользователя _lightsquid надо добавлять в группу squid

- возможно, стоит добавлять пользователя apache в группу _lightsquid, если
закручивать гайки на reports/

...а в остальном -- нормально вроде :-)
Comment 2 solo 2005-12-05 17:12:19 MSK
До кучи: проверить синхронизацию lightparser.pl и logrotate.

В текущей конфигурации возможен вариант потери части статистики, если
lightparser.pl *.log.1.bz2 не анализирует).
Comment 3 Slava Dubrovskiy 2005-12-05 17:31:17 MSK
Да, со всем согласен. Вот соберусь с силами и сделаю.
Comment 4 Alexander Volkov 2005-12-07 12:02:40 MSK
всё сделал как recommended, матерится при запуске из хрона
/dev/null not available; exiting
Comment 5 Alexander Volkov 2005-12-07 12:04:37 MSK
(In reply to comment #4)
> всё сделал как recommended, матерится при запуске из хрона
> /dev/null not available; exiting
чуть на забыл - ALM2.4 пакет из backports
Comment 6 Michael Shigorin 2005-12-07 12:49:40 MSK
точнее,

_lightsquid:x:UID:GID::/var/www/html/lightsquid:/dev/null
Comment 7 Slava Dubrovskiy 2005-12-09 20:50:32 MSK
Сделал с некоторыми изменениями:

1.Псевдопользователь называется lightsquid.
2.Файл /etc/cron.d/lightsquid не noreplace, т.к. при его изменении остается
.rpmsave который обрабатывается кроном (наверно это надо как-то исправлять?)
3. /etc/cron.d/lightsquid содержит не то, что предлагал mike@, вот так:
05 * * * *     lightsquid /usr/sbin/lightparser.pl

4. Т.к. lightsquid позволяет обрабатывать bz и bz2 архивы, я пока не задавался
вопросом, как синхронизировать с ротацией лога сквида. Скорее всего раз в неделю
будет запускаться по крону обработка всех архивов для корекции.
Comment 8 solo 2005-12-09 21:02:33 MSK
(In reply to comment #7)
> Сделал с некоторыми изменениями:
> 
...
> 
> 4. Т.к. lightsquid позволяет обрабатывать bz и bz2 архивы, я пока не задавался
> вопросом, как синхронизировать с ротацией лога сквида. Скорее всего раз в неделю
> будет запускаться по крону обработка всех архивов для корекции.

  Если правельно представляю его работу, то для исключения пропумков --
достаточно добится совместной обработки *.log + *.log.1.bz2. (Могу ошибаться: в
детали его работы ещё не лазил.)