Moin ! Hans-Werner Hilse schrieb:
Moin,
On Tue, 11 Oct 2005 15:50:23 +0200 Christoph Lemmer
wrote: salearn packt die Informationen in das Homeverzeichnis des Users, der es aufruft. Das sollte dann also auch der sein, der die Mails empfängt.
Achso...
Meine Konfig weicht etwas ab, da ich SpamAssassin direkt aus Postfix anspreche (via "pipe") und auf amavisd verzichte (Virenfiltern ist hier nicht nötig). Ich nutzer aber "virtuelle Nutzer", für die individuell Spam gelernt wird (bei mir via cron-Job in der Nacht).
Nur zum Verständnis... amavisd ruft aber spamassassin auch auf oder ? das Problem wird nur sein das ich die Spam Mails unter Root gelernt habe...
Amavisd ruft - wie bei mir Postfix selbst - auch nur SA auf, ja. Guck mal in /root/.spamassassin, wenn es dieses Verzeichnis gibt, dann hast du die Mails für den Nutzer "root" gerlernt, ja.
Ja das Verzeichnis ist vorhanden.
Dann: rausfinden, unter welchem Nutzer "spamc" gestartet wird bzw. "spamd" läuft (sind "virtuelle" Nutzer im Spiel, d.h. solche, die es nicht im System gibt?)
Nein keine virtuellen Nutzer
Das lässt sich zügig in /var/log/mail feststellen, da findet sich dann z.B. so etwas: spamd[7681]: clean message (-3.7/5.0) for hilse:8 in 1.0 seconds, 5269 bytes. Das ":8" hinter "hilse" gibt die unix-Nummer des Nutzers an, unter dem der Spamcheck tatsächlich läuft.
cat /var/log/mail |grep spamd und cat /var/log/mail |grep spamc bringt kein Ergebnis
Laut /etc/passwd ist aber "mail" der Nutzer mit der Nr. 8 - so solls ja (bei mir) auch sein.
[...]
d.h. also, ich teile meinem SA explizit mit, von welchem (virtuellen) Nutzer die Konfiguration gelesen werden soll. Es läuft aus OS-Sicht bei mir unter dem User "mail". Die Daten der virtuellen Nutzer liegen alle unter /home/virtual/(Nutzername)/.
Die Spam Daten ?
Ja, die liegen dort in einem Ordner ".spamassassin", also z.B. /home/virtual/hilse/.spamassassin/bayes_{journal,seen,toks} Wenn man auf diesen virtuellen-User-Kram verzichtet, müssen die eben im Homeverzeichnis des Nutzers liegen, für den der Filter eingerichtet wird (wiederum in einem Verzeichnis ".spamassassin"). Das passiert automatisch, wenn man den Nutzer auch für den Aufruf von salearn benutzt.
Das Problem (bei dem du dir mit dem root-Account beholfen hast) ist evtl. der Mail-Spool von Cyrus, da Cyrus ja auch unter einem einzigen Unix-Nutzer läuft (bei mir "cyrus") und den Mailspool daher auch nur für diesen Nutzer les- und schreibbar setzt. Statt root würde ich daher eher den Nutzer "cyrus" nehmen (der allerdings möglicherweise aus guten Gründen keine Shell gesetzt hat), um Spam direkt aus dem Mailspool zu lernen. Dann musst du explizit mitteilen, für welchen Nutzer du den Spam lernst bzw. in welches Verzeichnis geschrieben werden soll, z.B. dann einfach wie in meinem Beispiel die HOME-Variable setzen. Dann braucht allerdings wiederum der Nutzer "cyrus" Schreibzugriff auf das ".spamassassin"-Verzeichnis des normalen Nutzers. Also z.B. so:
normalernutzer@machine ~$ chgrp mail .spamassassin/* && chmod 0660 .spamassassin/* normalernutzer@machine ~$ su - cyrus cyrus@machine /home/normalernutzer$ HOME=/home/normalernutzer sa-learn --ham "/var/spool/imap/user/normalernutzer/LearnHam/*." cyrus@machine /home/normalernutzer$ HOME=/home/normalernutzer sa-learn --spam "/var/spool/imap/user/normalernutzer/LearnSpam/*." cyrus@machine /home/normalernutzer$ exit
sollte eigentlich klappen.
Gruß,
-hwh
-- Christoph Lemmer Page&Paper Kornbitz 1 56459 Rotenhain