Fel med bayes filter

By support at mars 18, 2008 09:33
Filed Under:

Får följande fel

bayes: bad permissions on journal, can't read: /var/lib/amavis/.spamassassin/bayes_journal

Trotts att jag fixade rättigheterna så nollställdes detta med jämna mellanrum

Det visade sig tillslut bero på att jag inte körde användaren amavis

/usr/sbin/amavisd-new-cronjob

   1: #!/bin/sh
   2:  
   3: # amavisd-new cronjob helper
   4: #
   5: # Run it as root or as the amavis user
   6: #
   7: # First parameter specifies which cronjob routine to run:
   8: #               sa-sync:        spamassassin fast sync
   9: #               sa-clean:       spamassassin cleanup
  10:  
  11: test -e /usr/bin/sa-learn || exit 0
  12: test -e /usr/sbin/amavisd-new || exit 0
  13:  
  14: SUUSER="amavis"
  15: unset IFS
  16:  
  17: set -e
  18: umask 022
  19:  
  20: # WATCH OUT FOR PROPER QUOTING LEVEL WHEN CALLING THIS!
  21: do_amavis_cmd() {
  22:         if [ "$(id -u -n)" != "${SUUSER}" ]; then
  23:                 exec /bin/su -s /bin/sh - "${SUUSER}" -c "$*"
  24:         else
  25:                 # to get the same quoting level as the su path
  26:                 eval exec "$*"
  27:         fi
  28: }
  29:  
  30: case $1 in
  31:         sa-sync)
  32:                 do_amavis_cmd "/usr/bin/sa-learn --sync" '>/dev/null'
  33:                 ;;
  34:         sa-clean)
  35:                 do_amavis_cmd "/usr/bin/sa-learn --sync --force-expire" '>/dev/null'
  36:                 ;;
  37:         *)
  38:                 echo "$0: unknown cron routine $1" >&2
  39:                 exit 1
  40:                 ;;
  41: esac
  42:  
  43: exit 0

 

Man kan även se variablen umask 022 vilket torde innebära att den heller inte bryr sig om

bayes_file_mode 0777

Från spamassassin konfigurationen.

Till slut fick jag kommentera bort körningen i /etc/cron.daily/amavisd-new

samt lägga till

17 *    * * *   virtual test -e /usr/sbin/amavisd-new-cronjob && exec /usr/sbin/amavisd-new-cronjob sa-clean

i /etc/crontab

med SUUSER="virtual" i

/usr/sbin/amavisd-new-cronjob

Måste finnas ett bättre sätt, men jag kom ej på något.

Kommentarer