Estou executando o spamassassin no Ubuntu 14.04 como root. Quando chamo qualquer um dos métodos, como Check ou ReportSpam, também estou passando outro usuário com o qual a verificação deve ser executada. No entanto, recebo um problema de permissões
spamd: Can't locate Mail/SpamAssassin/PerMsgLearner.pm:
Permission denied at /usr/share/perl5/Mail/SpamAssassin.pm line 644, <GEN14> line 7.
Olhando para a linha 644 naquele script perl, ele tenta importar outro arquivo perl
require Mail::SpamAssassin::PerMsgLearner;
Este não é um problema ao executar como root. O problema com a execução das funções como root é que os arquivos bayes (para aprender ao longo do tempo sobre spam) são gravados em /nonexistent, um diretório que não existe (é o diretório inicial para o usuário 'ninguém').
Portanto, seja como root ou outro usuário, não consigo fazer com que o SpamAssassin grave o arquivo bayes no disco, portanto a funcionalidade de aprendizado é interrompida.
Responder1
Acontece que tive que adicionar a seguinte linha à /etc/mail/spamassassin
configuração e então recompilar o spamassassin. Observe que é importante incluir o nome do arquivo no final, por exemplo, bayes
bayes_path /path/to/dir/bayes