我在 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