Ich führe Spamassassin unter Ubuntu 14.04 als Root aus. Wenn ich eine der Methoden wie Check oder ReportSpam aufrufe, übergebe ich auch einen anderen Benutzer, unter dem die Prüfung ausgeführt werden soll. Allerdings tritt ein Berechtigungsproblem auf.
spamd: Can't locate Mail/SpamAssassin/PerMsgLearner.pm:
Permission denied at /usr/share/perl5/Mail/SpamAssassin.pm line 644, <GEN14> line 7.
In Zeile 644 dieses Perl-Skripts wird versucht, eine andere Perl-Datei zu importieren
require Mail::SpamAssassin::PerMsgLearner;
Dies ist kein Problem, wenn Sie als Root ausgeführt werden. Das Problem beim Ausführen der Funktionen als Root besteht darin, dass die Bayes-Dateien (um im Laufe der Zeit Spam zu erkennen) in /nonexistent geschrieben werden, ein Verzeichnis, das nicht existiert (es ist das Home-Verzeichnis für den Benutzer „nobody“).
Weder als Root noch als anderer Benutzer kann ich SpamAssassin dazu bringen, die Bayes-Datei auf die Festplatte zu schreiben, sodass die Lernfunktionalität beschädigt ist.
Antwort1
Es stellte sich heraus, dass ich die folgende Zeile zur /etc/mail/spamassassin
Konfiguration hinzufügen und dann Spamassassin neu kompilieren musste. Beachten Sie, dass es wichtig ist, den Dateinamen am Ende anzugeben, z. B. bayes
bayes_path /path/to/dir/bayes