PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Screen/SpamAssassin/Shell Problem!



BlackWizard
22.07.06, 15:50
Hi@all!

Habe mich daran gemacht mir einen praktischen Mailserver zu installieren, da kam mir der Artikel im c't Linux Spezial gerade recht. Ich konnte auch alles bis jetzt problemlos nachvollziehen und es klappt auch *fast* alles. Was ich noch nicht zum laufen gebracht habe ist der Erlernen von Spam durch "sa-learn", bzw funktionert mein Script/das c't Script dafür nicht:

Inhalt von /root/bin/learn.sh:


#!/bin/sh
for f in 'ls /tmp/spam/*.gz'; do
echo Lernen der Spam-Mails aus Datei $f ...
gzip -cd $f | sa-learn --spam --showdots --mbox;
done


Das Script hab ich mit vim erstellt und natürlich gespeichert sowie mit chmod a+x ausführbar gemacht. Der Ordner /tmp/spam sowie sein Inhalt (ganz viele .gz Dateien von www.spamarchive.org) habe ich mit "chown mail /tmp/spam" sowie "chown mail /tmp/spam/*" dem user "mail" zugeordnet.

Als nächstes wird im dem Artikel angegeben das ganze mit screen und als user "mail" mit folgendem Befehl auszuführen:
"screen sudo -u mail -H /root/bin/learn.sh"

Daraufhin kommt als Meldung sofort: "[screen is terminating]"

führe ich das ganze mit "sudo -u mail -H /root/bin/learn.sh" aus kommt: "sudo: unable to execute /root/bin/learn.sh: Permission denied"


Auch ein "chown mail /root/bin/learn.sh" änderte nichts daran...

Was mache ich falsch und wie kann es ausführen? Als Distri setze ich aus Gründen der Nachvollziehbarkeit des Artikels die mitgelieferte Suse Linux 10.1 (32 bit) ein.




Danke schonmal für eure kompetente Hilfe,

mfg BlackWizard

drcux
22.07.06, 16:10
Auch ein "chown mail /root/bin/learn.sh" änderte nichts daran...


Kein anderer ausser Root selber darf in das Verzeichnis /root wechseln!

BlackWizard
22.07.06, 16:21
Das hab ich mir insgeheim auch schon gedacht, aber warum schreibt der Autor dann explizit dieses Verzeichnis als Speicherort für das Script vor? Folgender Absatz aus dem Artikel beschreibt die Vorgehensweise:


...
Wer soviel postalischen Schund nicht in seinen eigenen Ordnern findet, greift alternativ auf ein öffentliches Archiv wie www.spamarchive.org zurück. Speichert man die dort zu findenden gezippten Mailbox-Datein im Verzeichnis /tmp/spam ab, lassen sie sich in einem Rutsch entpacken und in sa-learn einspeisen. Das erledigt ein in /root/bin angelegtes Shell-Script namens "learn.sh" mit folgendem Inhalt, das Sie mit chmod a+x als ausführbar kennzeichnen:


#!/bin/sh
for f in 'ls /tmp/spam/*.gz'; do
echo Lernen der Spam-Mails aus Datei $f ...
gzip -cd $f | sa-learn --spam --showdots --mbox;
done


Um den Lernvorgang in Gang zu setzen - der je nach Rechenleistung durchaus ein paar Tage dauern kann und nicht unterbrochen werden sollte-,starten Sie das Script als root mit folgendem Kommandozeilenbefehl:

screen sudo -u mail -H /root/bin/learn.sh

...
...
...


Also ganz offensichtlich ein Kardinalsfehler in der Beschreibung. Aber wo sollte ich sicherheitshalber das Script verstauen und ausführen lassen?

Danke,

BlackWizard

BlackWizard
22.07.06, 18:01
Ich habe das Script nun nach /usr/bin kopiert und learnspam.sh genannt, es ausführbar gemacht und nun klappts...so halbwegs. Er gibt folgende (Fehler)meldung aus:


mailserver:/usr/bin # screen sudo -u mail -H /usr/bin/learnspam.sh
Lernen der Spam-Mails aus Datei ls /tmp/spam/1001.r2.gz /tmp/spam/1002.r2.gz /tmp/spam/800.r2.gz /tmp/spam/801.r2.gz /tmp/spam/802.r2.gz /tmp/spam/803.r2.gz /tmp/spam/804.r2.gz /tmp/spam/805.r2.gz /tmp/spam/806.r2.gz /tmp/spam/807.r2.gz /tmp/spam/808.r2.gz /tmp/spam/809.r2.gz /tmp/spam/810.r2.gz /tmp/spam/811.r2.gz /tmp/spam/812.r2.gz /tmp/spam/813.r2.gz /tmp/spam/814.r2.gz /tmp/spam/815.r2.gz /tmp/spam/816.r2.gz /tmp/spam/817.r2.gz /tmp/spam/818.r2.gz /tmp/spam/819.r2.gz /tmp/spam/820.r2.gz /tmp/spam/821.r2.gz /tmp/spam/822.r2.gz /tmp/spam/823.r2.gz /tmp/spam/824.r2.gz /tmp/spam/825.r2.gz /tmp/spam/826.r2.gz /tmp/spam/827.r2.gz /tmp/spam/828.r2.gz /tmp/spam/829.r2.gz /tmp/spam/830.r2.gz /tmp/spam/831.r2.gz /tmp/spam/832.r2.gz /tmp/spam/833.r2.gz /tmp/spam/834.r2.gz /tmp/spam/835.r2.gz /tmp/spam/836.r2.gz /tmp/spam/837.r2.gz /tmp/spam/838.r2.gz /tmp/spam/839.r2.gz /tmp/spam/840.r2.gz /tmp/spam/841.r2.gz /tmp/spam/842.r2.gz /tmp/spam/843.r2.gz /tmp/spam/844.r2.gz /tmp/spam/845.r2.gz /tmp/spam/846.r2.gz /tmp/spam/847.r2.gz /tmp/spam/848.r2.gz /tmp/spam/849.r2.gz /tmp/spam/850.r2.gz /tmp/spam/851.r2.gz /tmp/spam/852.r2.gz /tmp/spam/853.r2.gz /tmp/spam/854.r2.gz /tmp/spam/855.r2.gz /tmp/spam/856.r2.gz /tmp/spam/857.r2.gz /tmp/spam/858.r2.gz /tmp/spam/859.r2.gz /tmp/spam/860.r2.gz /tmp/spam/861.r2.gz /tmp/spam/862.r2.gz /tmp/spam/863.r2.gz /tmp/spam/864.r2.gz /tmp/spam/865.r2.gz /tmp/spam/866.r2.gz /tmp/spam/867.r2.gz /tmp/spam/868.r2.gz /tmp/spam/869.r2.gz /tmp/spam/870.r2.gz /tmp/spam/871.r2.gz /tmp/spam/872.r2.gz /tmp/spam/873.r2.gz /tmp/spam/874.r2.gz /tmp/spam/875.r2.gz /tmp/spam/876.r2.gz /tmp/spam/877.r2.gz /tmp/spam/878.r2.gz /tmp/spam/879.r2.gz /tmp/spam/880.r2.gz /tmp/spam/881.r2.gz /tmp/spam/882.r2.gz /tmp/spam/883.r2.gz /tmp/spam/884.r2.gz /tmp/spam/886.r2.gz /tmp/spam/887.r2.gz /tmp/spam/888.r2.gz /tmp/spam/889.r2.gz /tmp/spam/890.r2.gz /tmp/spam/891.r2.gz /tmp/spam/892.r2.gz /tmp/spam/893.r2.gz /tmp/spam/894.r2.gz /tmp/spam/895.r2.gz /tmp/spam/896.r2.gz /tmp/spam/897.r2.gz /tmp/spam/898.r2.gz /tmp/spam/899.r2.gz /tmp/spam/900.r2.gz /tmp/spam/901.r2.gz /tmp/spam/902.r2.gz /tmp/spam/903.r2.gz /tmp/spam/904.r2.gz /tmp/spam/905.r2.gz /tmp/spam/906.r2.gz /tmp/spam/907.r2.gz /tmp/spam/908.r2.gz /tmp/spam/909.r2.gz /tmp/spam/910.r2.gz /tmp/spam/911.r2.gz /tmp/spam/912.r2.gz /tmp/spam/913.r2.gz /tmp/spam/914.r2.gz /tmp/spam/915.r2.gz /tmp/spam/916.r2.gz /tmp/spam/917.r2.gz /tmp/spam/918.r2.gz /tmp/spam/919.r2.gz /tmp/spam/920.r2.gz /tmp/spam/921.r2.gz /tmp/spam/922.r2.gz /tmp/spam/923.r2.gz /tmp/spam/924.r2.gz /tmp/spam/925.r2.gz /tmp/spam/926.r2.gz /tmp/spam/927.r2.gz /tmp/spam/928.r2.gz /tmp/spam/929.r2.gz /tmp/spam/930.r2.gz /tmp/spam/931.r2.gz /tmp/spam/932.r2.gz /tmp/spam/933.r2.gz /tmp/spam/934.r2.gz /tmp/spam/935.r2.gz /tmp/spam/936.r2.gz /tmp/spam/937.r2.gz /tmp/spam/938.r2.gz /tmp/spam/939.r2.gz /tmp/spam/940.r2.gz /tmp/spam/941.r2.gz /tmp/spam/942.r2.gz /tmp/spam/943.r2.gz /tmp/spam/944.r2.gz /tmp/spam/945.r2.gz /tmp/spam/946.r2.gz /tmp/spam/947.r2.gz /tmp/spam/948.r2.gz /tmp/spam/949.r2.gz /tmp/spam/951.r2.gz /tmp/spam/952.r2.gz /tmp/spam/953.r2.gz /tmp/spam/954.r2.gz /tmp/spam/955.r2.gz /tmp/spam/956.r2.gz /tmp/spam/957.r2.gz /tmp/spam/958.r2.gz /tmp/spam/959.r2.gz /tmp/spam/960.r2.gz /tmp/spam/961.r2.gz /tmp/spam/962.r2.gz /tmp/spam/963.r2.gz /tmp/spam/964.r2.gz /tmp/spam/965.r2.gz /tmp/spam/966.r2.gz /tmp/spam/967.r2.gz /tmp/spam/968.r2.gz /tmp/spam/969.r2.gz /tmp/spam/970.r2.gz /tmp/spam/971.r2.gz /tmp/spam/972.r2.gz /tmp/spam/973.r2.gz /tmp/spam/974.r2.gz /tmp/spam/975.r2.gz /tmp/spam/976.r2.gz /tmp/spam/977.r2.gz /tmp/spam/978.r2.gz /tmp/spam/979.r2.gz /tmp/spam/981.r2.gz /tmp/spam/982.r2.gz /tmp/spam/984.r2.gz /tmp/spam/985.r2.gz /tmp/spam/986.r2.gz /tmp/spam/988.r2.gz /tmp/spam/989.r2.gz /tmp/spam/990.r2.gz /tmp/spam/991.r2.gz /tmp/spam/993.r2.gz /tmp/spam/995.r2.gz /tmp/spam/996.r2.gz /tmp/spam/997.r2.gz /tmp/spam/999.r2.gz ...
gzip: ls.gz: No such file or directory
.................................................. .................................................. .................................................. .................................................. ........



Der mailserver scheint jetzt aber trotzdem ordentlich zu ackern, aber habt ihr ne Ahnung warum "Lernen der Spam-Mails aus Datei ls /tmp/spam/1001.r2.gz /tmp/spam/1002.r2.gz /tmp/spam/800.r2.gz ....." und "gzip: ls.gz: No such file or directory" überhaupt dort erscheint? Würde es auch ohne vorangestelltes "ls " im Script funktionieren? Lohnt es sich ihn ackern zu lassen oder läuft da grade etwas ganz falsches von der Rolle und muss ich vorher was ändern?

Und wie kann ich erkennen, ob SpamAssassin wirklich was gelernt hat?

Weitere Vorgehensvorschläge sind erwünscht,

BlackWizard