Postfix
SpamAssassin 試圖讀取 /root/ 下的配置文件
我將郵件網關伺服器配置為使用此處所述的 MailScanner + Postfix + SpamAssassin,並將MailWatch作為 Web 前端。
從 MailWatch 執行 sa-learn 時(它以 postfix 使用者身份執行),它會拋出以下錯誤:
SA Learn: config: path "/root/.spamassassin" is inaccessible: Permission denied, Learned tokens from 0 message(s) (1 message(s) examined)
執行“sudo -u postfix spamassassin –lint -D”會提供以下資訊:
dbg: config: read file /etc/mail/spamassassin/mailscanner.cf warn: config: path "/root/.spamassassin" is inaccessible: Permission denied dbg: config: mkdir /root/.spamassassin failed: mkdir /root/.spamassassin: Permission denied at /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin.pm line 1577 dbg: config: Permission denied dbg: config: using "/etc/MailScanner/spam.assassin.prefs.conf" for user prefs file
貝氏令牌已正確學習,但是此錯誤是一個小麻煩,我想修復它…通過強制 SpamAssassin 不檢查 /root/.spamassassin/ 目錄中的配置和首選項,或修復 MailWatch因此它正確呼叫 sa-learn 並且不會引發此錯誤。
真正的解決方法是在 spamassassin 中禁用“per-user”配置並全域設置 Baysean DB,但一個快速的更新檔是將“-H”選項添加到 sudo 以使用 postfix 的主目錄,它應該有權寫入為後綴。
這不是錯誤,而是因為您正在使用無效使用者執行 sa-learn 命令。例如,我的設置使用標準的 debian-spamd 使用者。
# sa-learn -u debian-spamd --dbpath /var/lib/spamassassin/.spamassassin/bayes --dump magic 0.000 0 3 0 non-token data: bayes db version 0.000 0 84 0 non-token data: nspam 0.000 0 6565 0 non-token data: nham 0.000 0 15128 0 non-token data: ntokens 0.000 0 1510837441 0 non-token data: oldest atime 0.000 0 1519232775 0 non-token data: newest atime 0.000 0 0 0 non-token data: last journal sync atime 0.000 0 0 0 non-token data: last expiry atime 0.000 0 0 0 non-token data: last expire atime delta 0.000 0 0 0 non-token data: last expire reduction count
對於帳戶
# sa-learn --ham -u debian-spamd --showdots --dir /var/vmail/mydomain.com/support/cur/* . Learned tokens from 1 message(s) (1 message(s) examined)
我在伺服器上有 20 個電子郵件帳戶和 crons 來匹配火腿和垃圾郵件,而從來沒有錯誤。確保您的設置和使用者:組在相關文件/目錄上正確。
連結到有關如何修復 https://www.devcu.com/forums/topic/745-spamassassin-is-inaccessible-permission-denied/的快速教程