Я запускаю spamassassin на Ubuntu 14.04 как root. Когда я вызываю любой из методов, например Check или ReportSpam, я также передаю другого пользователя, от имени которого должна быть запущена проверка. Однако я получаю проблему с правами доступа
spamd: Can't locate Mail/SpamAssassin/PerMsgLearner.pm:
Permission denied at /usr/share/perl5/Mail/SpamAssassin.pm line 644, <GEN14> line 7.
Глядя на строку 644 в этом скрипте Perl, он пытается импортировать другой файл Perl.
require Mail::SpamAssassin::PerMsgLearner;
Это не проблема запуска от имени root. Проблема с выполнением функций от имени root заключается в том, что файлы Bayes (для изучения спама с течением времени) записываются в /nonexistent, каталог, который не существует (это домашний каталог для пользователя 'nobody').
Таким образом, ни как пользователь root, ни как другой пользователь я не могу заставить SpamAssassin записать файл Байеса на диск, поэтому функция обучения не работает.
решение1
Оказывается, мне пришлось добавить следующую строку в /etc/mail/spamassassin
конфигурацию, а затем перекомпилировать spamassassin. Обратите внимание, важно включить имя файла в конце, например bayes
bayes_path /path/to/dir/bayes