[sa-conf] пользователь nospam (autolearn часть 2)

Victor Ustugov victor на corvax.kiev.ua
Сб Мар 19 10:46:16 EET 2005


Nikolai V. Ivanyushin wrote:

> Мини-howto, поправьте меня:
> 
> 1. Добавляем пользователя nospam
> 2. Меняем опции запуска spamassassin'a
> в /etc/sysconfig/spamassassin
> 3. Перестартовываем spamd
> 
> Скрипт, который делает это:
> 
> #!/bin/sh
> 
> # 1. Добавляем пользователя nospam
> mkdir /home/nospam

а для чего ты ручками создавал каталог? разве useradd его не создаст?

> useradd -r -d /home/nospam -M -s /sbin/nologin \
>     -c 'SpamAssassin Daemon' nospam
> chown nospam.nospam /home/nospam

если каталог будет создан с помощью useradd, то и chown не понадобится

> # 2. Меняем опции запуска spamassassin'a
> perl -pi -e 's/^SPAMDOPTIONS=/#SPAMDOPTIONS=/' /etc/sysconfig/spamassassin
> echo "SPAMDOPTIONS=\"-d -x -u nospam -H /home/nospam \
> --virtual-config=/home/nospam\"" >> /etc/sysconfig/spamassassin
> 
> # 3. Перестартовываем spamd
> service spamassassin restart
> 
> # Всё.

остальное - прокатит

> Может стоит между пп. 2 и 3 вставить копирование твоих правил для sa и 
> скриптов для sa-learn, и сделать rpmб назвав его sa-conf?

можно

на счет копирования правил - я буквально вчера рисовал скрипт для 
andrew на osnach.kiev.ua:

~~~~~~~~~~
#!/usr/local/bin/bash

rsync -avz --delete rsync://bsd.falbi.kiev.ua/spamassassin/rules.local/ 
`pwd`/rules.corvax/
rsync -avz --delete rsync://bsd.falbi.kiev.ua/spamassassin/patches/ 
`pwd`/patches/

dst_dir=rules

link() {
     rules_order=$1
     rules_dir=$2
     rules=`find ${rules_dir}/ -name "*.cf"`
     if [ ! -z "${rules}" ]; then
         for rule in ${rules}; do
             rule_dir=`dirname ${rule}`
             rule_file=`basename ${rule}`
             ln -s ${rule_dir}/${rule_file} \
		${dst_dir}/${rules_order}_${rule_file}
         done
     fi
}

find ${dst_dir}/ -type l | xargs rm -f

#link 90 `pwd`/rules.RulesDuJour
#link 92 `pwd`/rules.misc
link 93 `pwd`/rules.corvax
rm -rf ${dst_dir}/93*{test,corvax,falbi}.cf
link 94 `pwd`/rules.local
~~~~~~~~~~

два запуска rsync'а - это синхронизация правил и патчей
подразумевается, что мои правила лежат в подкаталоге rules.corvax того 
же каталога, где лежит скрипт

подразумевается, что в переменной dst_dir хранится или путь на каталог с 
правила spamassassin или путь на симлинк на них. в данном конкретном 
случае значение переменной dst_dir равно rules, который является 
симлинком на /usr/local/etc/mail/spamassassin (для линуксов 
/etc/mail/spamassassin)

дальше - в последних строках скрипта выполняется функция link, которая 
создает симлинки на файлы с правилами в каталоге, на который указывается 
${dst_dir}. заодно удаляются симлинки на три моих правила, о которых я 
упоминал в сосденем письме (они кроме меня, пожалуй, никому не нужны).

фунцию link можно использовать произвольное количество раз с 
произвольным количеством каталоговю. в данном случае сначала создаются 
симлинки на мои правила, удаляются симлинки на ненужные мои правила, 
потом создаются симлинки на правила из rules.local (специфичные для 
данного хоста). таким образом, в файлых из rules.local можно 
переопределить баллы, насчитываемые моими правилами из rules.corvax

число, передаваемое в качестве первого параметра функции link, означает 
порядок подключения правил.

вроде все

-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 32418694  nic-handle: CRV2-RIPE, CRV-UANIC




Подробная информация о списке рассылки sa-conf