我以root身份在Ubuntu 14.04上运行spamassassin。 当我调用任何方法时,如Check或ReportSpam,我也传递另一个用户,检查应该运行。 但是我得到一个权限问题
spamd:无法find邮件/ SpamAssassin / PerMsgLearner.pm:权限被拒绝在/usr/share/perl5/Mail/SpamAssassin.pm行644,第7行。
看在这个perl脚本644行,它试图导入另一个perl文件
require Mail::SpamAssassin::PerMsgLearner;
这不是以root身份执行的问题。 以root身份执行函数的问题是,bayes文件(用于随时间学习垃圾邮件)被写入/不存在,不存在的目录(这是“无人”用户的主目录)。
因此无论是作为根用户还是其他用户,我都无法使SpamAssassin将贝叶斯文件写入磁盘,因此学习function被破坏。
原来,我不得不将下面这行添加到/ etc / mail / spamassassinconfiguration,然后重新编译spamassassin。 请注意,最后在文件名中包含文件名,例如bayes
bayes_path / path / to / dir / bayes