以非 root 使用者身分使用 spamassassin 時出現問題

以非 root 使用者身分使用 spamassassin 時出現問題

我在 Ubuntu 14.04 上以 root 身分執行 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;

這不是以 root 身分運行的問題。以 root 身分執行函數的問題是,貝葉斯檔案(用於隨著時間的推移了解垃圾郵件)被寫入 /nonexistent,一個不存在的目錄(它是「nobody」使用者的主目錄)。

因此,無論是作為 root 還是其他用戶,我都無法讓 SpamAssassin 將貝葉斯檔案寫入磁碟,因此學習功能被破壞。

答案1

結果我必須將以下行新增到/etc/mail/spamassassin配置中,然後重新編譯 spamassassin。請注意,在末尾包含檔案名稱很重要,例如 bayes

bayes_path /path/to/dir/bayes

相關內容