루트가 아닌 사용자로 spamassassin을 사용할 때 발생하는 문제

루트가 아닌 사용자로 spamassassin을 사용할 때 발생하는 문제

Ubuntu 14.04에서 spamassassin을 루트로 실행하고 있습니다. Check 또는 ReportSpam과 같은 메서드를 호출할 때 검사를 실행해야 하는 다른 사용자도 전달합니다. 그러나 권한 문제가 발생합니다.

spamd: Can't locate Mail/SpamAssassin/PerMsgLearner.pm: 
Permission denied at /usr/share/perl5/Mail/SpamAssassin.pm line 644, <GEN14> line 7.

해당 Perl 스크립트의 644행을 보면 다른 Perl 파일을 가져오려고 시도합니다.

require Mail::SpamAssassin::PerMsgLearner;

이는 루트로 실행하는 문제가 아닙니다. 루트로 기능을 실행할 때의 문제는 (시간이 지남에 따라 스팸에 대해 학습하기 위한) bayes 파일이 존재하지 않는 디렉토리인 /nonexistent에 기록된다는 것입니다('nobody' 사용자의 홈 디렉토리입니다).

따라서 루트나 다른 사용자로서 SpamAssassin이 Bayes 파일을 디스크에 기록하도록 할 수 없으므로 학습 기능이 손상됩니다.

답변1

알고 보니 구성에 다음 줄을 추가한 /etc/mail/spamassassin다음 spamassassin을 다시 컴파일해야 했습니다. 참고: 끝에 파일 이름을 포함하는 것이 중요합니다(예: bayes).

bayes_path /path/to/dir/bayes

관련 정보