Hallo zusammen, ich experimentiere gerade ein bisschen mit masqmail, schaffe es aber nicht, die Mails an procmail zu übergeben. # masqmail -bV masqmail 0.2.4 +resolver +smtp-server +pop3 +auth +ident # grep "mda=" /etc/masqmail/masqmail.conf mda=/usr/bin/procmail -d $rcpt_local # echo "Test" | mail -s "Test" stephan Message from syslogd@blackbox at Sun Aug 12 15:23:19 2001 ... blackbox procmail[1942]: Descriptor 1 was not open Hm. Die manpage von procmail sagt dazu: ,----- | Descriptor "x" was not open | As procmail was started, stdin, stdout or stderr was not | connected (possibly an attempt to subvert security) `----- Leider kann ich damit nichts anfangen. :-( # rpm -q procmail procmail-3.13.1-121 Die Mail bleibt für mail:trusted in /var/spool/mail liegen: # ls -l /var/spool/mail | grep trusted -rw------- 1 mail trusted 386 Aug 12 15:23 mail Hat jemand eine Idee? Danke und Gruß, Stephan -- Stephan Hakuli | mailto: stephan@hakuli.de | * GnuPG/PGP-Key * | callto: 01 71 - 651 89 43 | available, please | surfto: http://www.hakuli.de | visit my homepage
Ergänzung: On Sunday, 12. August 2001 15:33, Stephan Hakuli wrote: [...]
# grep "mda=" /etc/masqmail/masqmail.conf mda=/usr/bin/procmail -d $rcpt_local
Der auskommentierte Vorschlag mda="/usr/bin/procmail -Y -d ${rcpt_local}" ändert nichts am beschriebenen Verhalten. Stephan -- Stephan Hakuli | mailto: stephan@hakuli.de | * GnuPG/PGP-Key * | callto: 01 71 - 651 89 43 | available, please | surfto: http://www.hakuli.de | visit my homepage
Hallo, stephan@hakuli.de (Stephan Hakuli) writes:
Ergänzung:
On Sunday, 12. August 2001 15:33, Stephan Hakuli wrote: [...]
# grep "mda=" /etc/masqmail/masqmail.conf mda=/usr/bin/procmail -d $rcpt_local
Der auskommentierte Vorschlag
mda="/usr/bin/procmail -Y -d ${rcpt_local}"
ändert nichts am beschriebenen Verhalten.
bei mir steht mda="/usr/bin/procmail -d ${rcpt_local}" Aber das wird kaum etwas aendern, da -Y die inbox im Homeverzeichnis von -d erstellt. Mit welchen Rechten laeuft masqmail ? -Dieter -- Dieter Kluenter Brute Force Imaging
Hallo Dieter, hallo Liste, On Sunday, 12. August 2001 16:35, Dieter Kluenter wrote:
bei mir steht
mda="/usr/bin/procmail -d ${rcpt_local}"
Aber das wird kaum etwas aendern, da -Y die inbox im Homeverzeichnis von -d erstellt.
ich dachte, das -Y bezieht sich nur auf den "Content-Length:"-Header? Aber ich meine auch, dass das hier nicht relevant sein sollte.
Mit welchen Rechten laeuft masqmail ?
$ ls -l /usr/sbin/masqmail -rwsr-xr-x 1 root root 421512 Aug 12 16:29 /usr/sbin/masqmail $ ls -l /usr/sbin/sendmail* lrwxrwxrwx 1 root root 8 Aug 12 13:40 /usr/sbin/sendmail -> masqmail -r-sr-sr-x 1 root root 462412 Sep 6 2000 /usr/sbin/sendmail.orig Alle benötigten Verzeichnisse und Dateien haben die Rechte und Eigentümer, die in der Anleitung angegeben sind. Der User mail.trusted existiert. Gestartet wird masqmail durch das sendmail-Startskript. Ich trete auf der Stelle. :-( Schöne Grüße, Stephan -- Stephan Hakuli | mailto: stephan@hakuli.de | * GnuPG/PGP-Key * | callto: 01 71 - 651 89 43 | available, please | surfto: http://www.hakuli.de | visit my homepage
Hallo Stephan, stephan@hakuli.de (Stephan Hakuli) writes:
Hallo Dieter, hallo Liste,
On Sunday, 12. August 2001 16:35, Dieter Kluenter wrote:
bei mir steht
mda="/usr/bin/procmail -d ${rcpt_local}"
Aber das wird kaum etwas aendern, da -Y die inbox im Homeverzeichnis von -d erstellt.
ich dachte, das -Y bezieht sich nur auf den "Content-Length:"-Header? Aber ich meine auch, dass das hier nicht relevant sein sollte.
Na ja, man procmail sagt, (-Y assume traditional Berkley mailbox format, ignore any Content-Length: fields) letztendlich fuehrt es dazu , dass eine inbox erzeugt wird, ich hatte einige Stunden dagegen anzukaempfen, bis ich die Ursach erkannt hatte :-(
Mit welchen Rechten laeuft masqmail ?
$ ls -l /usr/sbin/masqmail -rwsr-xr-x 1 root root 421512 Aug 12 16:29 /usr/sbin/masqmail
$ ls -l /usr/sbin/sendmail* lrwxrwxrwx 1 root root 8 Aug 12 13:40 /usr/sbin/sendmail -> masqmail -r-sr-sr-x 1 root root 462412 Sep 6 2000 /usr/sbin/sendmail.orig
Alle benötigten Verzeichnisse und Dateien haben die Rechte und Eigentümer, die in der Anleitung angegeben sind. Der User mail.trusted existiert. Gestartet wird masqmail durch das sendmail-Startskript.
Ich trete auf der Stelle. :-(
Das verstehe ich im Moment auch nicht. Ich gehe mal davon aus, dass der user stephan (das war doch die mail adresse ?) auf dem localhost existiert. Ich habe gerade noch mal getestet, 'mail -s"bloeder Hund" dieter' dann einen Punkt in der naechsten Zeile, (kann ich aus verstaendlichen Gruenden hier nicht machen). masqmail.log zeigt darauf 2001-08-12 21:58:45 [5929] 15W1Nl-1Xb-00 => dieter@pink.l4b.de with mda (cmd = '/usr/bin/procmail -d dieter') die mail wird zugestellt. Ich habe aber noch masqmail-0.2.3, poste doch mal an die masqmail Mailingliste, vielleicht hat Oliver Kurth eine Loesung ? (English preferred) -Dieter -- Dieter Kluenter Brute Force Imaging
Hallo Dieter, hallo Liste, On Sunday, 12. August 2001 22:08, Dieter Kluenter wrote: [...]
Ich habe aber noch masqmail-0.2.3, poste doch mal an die masqmail Mailingliste, vielleicht hat Oliver Kurth eine Loesung ? (English preferred)
ich habe eben versuchsweise bei procmail das suid bit gesetzt, nun läuft alles problemlos. Hm. Ich verstehe das trotzdem nicht so ganz. Wozu muss bei procmail das suid bit gesetzt sein? Für sendmail war das suid bit bei procmail nicht nötig. Masqmail läuft mit root-Rechten und ruft procmail auf. Sollte dann procmail nicht ohnehin mit root-Rechten ausgeführt werden? Dass root-Rechte erforderlich sind, steht außer Frage, wenn die Mails direkt in die einzelnen ~'s geschoben werden. Ich glaube, ich werde nochmal alle Doku wälzen und mich intensiver mit procmail auseinandersetzen, denn MasqMail scheint genau das Tool der Wahl für meine Anforderungen zu sein. Vielen Dank für Deine Bemühungen, Dieter. :-) Schöne Grüße, Stephan -- Stephan Hakuli | mailto: stephan@hakuli.de | * GnuPG/PGP-Key * | callto: 01 71 - 651 89 43 | available, please | surfto: http://www.hakuli.de | visit my homepage
On Son, 12 Aug 2001, Stephan Hakuli wrote:
# echo "Test" | mail -s "Test" stephan Message from syslogd@blackbox at Sun Aug 12 15:23:19 2001 ... blackbox procmail[1942]: Descriptor 1 was not open
Hm. Die manpage von procmail sagt dazu: ,----- | Descriptor "x" was not open | As procmail was started, stdin, stdout or stderr was not | connected (possibly an attempt to subvert security) `-----
Leider kann ich damit nichts anfangen. :-(
Offenbar hat procmail kein "stdout" auf das es schreiben kann. (0 = stdin, 1 = stdout, 2 = stderr) Haehae, ein strace -f -efile -o /tmp/sm.trace sendmail -q -v liefert dann fuer den procmail subprozess (gekuerzt): 3727 execve("/usr/sbin/sendmail", ["sendmail", "-q", "-v"], [/* 62 vars */]) = 0 [..] 3727 open("dfXAA03721", O_RDONLY) = 10 3728 execve("/usr/bin/procmail", ["procmail", ... ) = 0 [..] 3728 open("/dev/null", O_WRONLY|O_APPEND|O_CREAT, 0667) = 1 3728 open("/home/dh/.procmailrc", O_RDONLY) = 4 3728 open("/home/dh/.procmail/procmail.log", O_WRONLY|O_APPEND|O_CREAT, 0667) = 5 3728 open("inbox", O_WRONLY|O_APPEND|O_CREAT, 0667) = 5 3727 --- SIGCHLD (Child exited) --- Interessant sind dabei die letzten vier open(): procmail oeffnet also, wenn es von sendmail (dem "richtigen") als mda aufgerufen wird: als 1 (stdout) => /dev/null als 4 => meine procmailrc als 5 => erst das log und dann die MBox. Mach doch auch mal ein strace... Falls procmail da dann auch /dev/null oeffnen will und es en "EPERM" gibt sind's die Rechte, sonst wohl der Aufruf... Hast du fuer procmail ein log definiert (LOGFILE=... in der procmailrc)? Setz am besten auch noch "VERBOSE=on" in der procmailrc... -dnh -- Eines Tages wird der Rechner laufen, und an dem Tag gehe ich in Rente ... [Christian Kuhn in suse-linux]
Hallo David, hallo Liste, On Sunday 12 August 2001 23:25, David Haller wrote:
On Son, 12 Aug 2001, Stephan Hakuli wrote:
# echo "Test" | mail -s "Test" stephan Message from syslogd@blackbox at Sun Aug 12 15:23:19 2001 ... blackbox procmail[1942]: Descriptor 1 was not open
Hm. Die manpage von procmail sagt dazu: ,-----
| Descriptor "x" was not open | As procmail was started, stdin, stdout or stderr was not | connected (possibly an attempt to subvert security)
`-----
Leider kann ich damit nichts anfangen. :-(
Offenbar hat procmail kein "stdout" auf das es schreiben kann. (0 = stdin, 1 = stdout, 2 = stderr)
*g* Das wusste ich noch. Gemeint war, dass ich nicht verstehe, warum procmail nicht auf stdout schreiben darf.
Haehae, ein strace -f -efile -o /tmp/sm.trace sendmail -q -v liefert dann fuer den procmail subprozess (gekuerzt):
[Davids strace-output]
Mach doch auch mal ein strace...
Gehen wir's an... ;-) Meine Schritte im einzelnen:
# rcsendmail start
Initializing SMTP port. (sendmail) done
(Ich habe sendmail nach sendmail.orig umbenannt
und einen Sym-Link auf masqmail gesetzt)
# ls -l /usr/sbin/masqmail
-rwsr-xr-x 1 root root 454967 Aug 12 21:24 /usr/sbin/masqmail
# lsof -niTCP:25
COMMAND PID USER FD TYPE DEVICE NODE NAME
sendmail 922 root 0u IPv4 1465 TCP 192.168.1.150:smtp (LISTEN)
sendmail 922 root 1u IPv4 1466 TCP 127.0.0.1:smtp (LISTEN)
# telnet localhost 25
[...]
220 blackbox.hakuli.de MasqMail 0.2.4 ESMTP
So, masqmail lauscht. Bis dahin sollte alles in Ordnung sein.
Ich versuche nun als root, eine Mail an stephan zu schicken.
# ls -l /usr/bin/procmail
-rwxr-xr-x 1 root root 64016 Jul 29 2000 /usr/bin/procmail
(in einer anderen Mail schrieb ich, dass mit gesetzten suid bit
alles problemlos funktioniert. Ist das schon die Lösung? Wenn
ja, dann verstehe ich's nicht. Procmail wird doch vom als root
laufenden masqmail gestartet?!)
Die ~/.procmailrc von Stephan ist (noch) ultra-spartanisch:
# cat ~stephan/.procmailrc
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/inbox
LOGFILE=$HOME/log/procmail.log
LOCKFILE=$HOME/.maillock
# mailq
mail queue is empty.
# echo "Gruss von Ruth" | mail -s "Test" stephan
Nun kommt folgende Meldung als Dauerwiederholung, bis ich sendmail
stoppe:
Message from syslogd@blackbox at Mon Aug 13 12:58:07 2001 ...
blackbox procmail[938]: Descriptor 1 was not open
...
# rcsendmail stop
# mailq
15WFQB-0Fw-00 <= <> size=14699 age=1.1m ident=mail
==
hallo, stephan@hakuli.de (Stephan Hakuli) writes:
Hallo David, hallo Liste,
On Sunday 12 August 2001 23:25, David Haller wrote:
On Son, 12 Aug 2001, Stephan Hakuli wrote:
Wer setzt denn noch masqmail ein? Wie sehen die procmail-Rechte aus?
na, ich zum Beispiel, hier lokal auf drei Rechnern, mit SuSE-6.3, SuSE-7.0 und TurboLinux-6.0,. procmail-3.13.1-3 (SuSE-6.3) -rwxr-xr-x 1 root root 65044 Nov 8 1999 procmail procmail-3.13.1-121 (SuSE-7.0) -rwxr-xr-x 1 root root 64016 Jul 29 2000 procmail procmail-3.14-1999 (Turbolinux-6.0) -rwxr-xr-x 1 root root 65700 Dec 10 1999 procmail also keine Unterschiede, ich setze hier 1 x masqmail-0.2.2 (auf TurboLinux) und 2x masqmail-0.2.3 auf den beiden SuSE ein. Setze doch mal in masqmail.conf debug_level=6 , dann siehst du vielleicht mehr. -Dieter -- Dieter Kluenter Brute Force Imaging
Hallo, On Monday 13 August 2001 17:13, Dieter Kluenter wrote:
stephan@hakuli.de (Stephan Hakuli) writes:
Wer setzt denn noch masqmail ein? Wie sehen die procmail-Rechte aus?
na, ich zum Beispiel, hier lokal auf drei Rechnern, mit SuSE-6.3, SuSE-7.0 und TurboLinux-6.0,. procmail-3.13.1-3 (SuSE-6.3) -rwxr-xr-x 1 root root 65044 Nov 8 1999 procmail
procmail-3.13.1-121 (SuSE-7.0) -rwxr-xr-x 1 root root 64016 Jul 29 2000 procmail
procmail-3.14-1999 (Turbolinux-6.0) -rwxr-xr-x 1 root root 65700 Dec 10 1999 procmail
Hm. Aber Dein Procmail schiebt auch Mails direkt ins Homeverzeichnis? Wohl schon. :-(
also keine Unterschiede, ich setze hier 1 x masqmail-0.2.2 (auf TurboLinux) und 2x masqmail-0.2.3 auf den beiden SuSE ein.
Ich habe schon MasqMail-0.1.15 ausprobiert, ohne Erfolg.
Setze doch mal in masqmail.conf debug_level=6 , dann siehst du vielleicht mehr.
Leider nicht. Folgender Auszug zeigt einen Zustellversuch:
[2483] attempting to deliver 15WK8C-0e2-00 with mda
[2483] process returned 19712: Illegal seek
[2483] sending failure notice to
Hallo Stephan, stephan@hakuli.de (Stephan Hakuli) writes:
Hallo,
On Monday 13 August 2001 17:13, Dieter Kluenter wrote:
Hm. Aber Dein Procmail schiebt auch Mails direkt ins Homeverzeichnis? Wohl schon. :-(
Das ist der Casus Knacktus, *nein* , bei mir schiebt procmail die mail nur in die Mailspool, wobei einige wenige Filterregeln ausgefuehrt werden. Der MUA, bei mir Gnus, holt dann die Mail aus der Mailspool und sortiert nach ~/Mail. Welche umfangreichen Filterregeln in ~/.procmailrc koennten hinderlich sein ? Verschiebe doch mal testweise deine ~/.procmailrc und lasse die Mail nach /var/spool/mail schieben.
[...]
Setze doch mal in masqmail.conf debug_level=6 , dann siehst du vielleicht mehr.
Leider nicht. Folgender Auszug zeigt einen Zustellversuch:
[2483] attempting to deliver 15WK8C-0e2-00 with mda [2483] process returned 19712: Illegal seek [2483] sending failure notice to
. [2486] masqmail 0.2.4 starting
Ja, der Illigal seek haette mich eher darauf bringen sollen. Da wird von masqmail ein unerlaubter Zugriff ausgefuehrt. Irgendwo bei der Mailuebergabe aendert masqmail seine Identitaet. Bei meinem mail2fax script fuer masqmail hatte ich auch damit zu kaempfen, erst durch suid konnte ich das umgehen. Ich bin mir nicht sicher, ob dies ein feature oder ein bug ist. Oliver Kurth hat sich noch nicht dazu geaeussert.
...und nun beginnt die Endlosschleife, da alle Zustellversuche scheitern, die Nachricht über das Scheitern nicht zugestellt werden kann usw...
Auch die Mail an root ?, Die sollte doch eigentlich in der Mailspool landen und da ist der Zugriff doch eigentlich moeglich.
Wo könnte ich noch suchen? Mein user mail:trusted sieht so aus:
# grep ^mail /etc/passwd mail:x:42:42:Mail Transfer Agent:/:/bin/sh
# grep ^trusted /etc/group trusted:x:42:
Alles identisch, wie bei mir, auch die geloeschte Konfiguration.
-- Dieter Kluenter Brute Force Imaging
Hallo Stephan, stephan@hakuli.de (Stephan Hakuli) writes:
On Monday 13 August 2001 17:13, Dieter Kluenter wrote:
stephan@hakuli.de (Stephan Hakuli) writes:
Hm. Aber Dein Procmail schiebt auch Mails direkt ins Homeverzeichnis? Wohl schon. :-(
Sorry, meine erste Mail ist zu frueh losgegangen, waehrend ich noch man procmail las. .-.-.-.-.-.-.-.-.-.-.-.- -d recipient ... This turns on explicit delivery mode, delivery will be to the local user recipient. This, of course, only is possible if procmail has root privileges (or if procmail is already running with the recipient's euid and egid). Procmail will setuid to the intended recipients and delivers the mail as if it were invoked by the recipient with no arguments (i.e. if no rcfile is found, delivery is like ordinary mail). This option is incompatible with -p. -.-.-.-.-.-.-.-.-.-.-.-.-.- Ich glaube, dass ist dein eigentliches Problem. Der Schalter '-d' behandelt deine Mail, als ob keine ~/.procmailrc besteht. Ich bin nicht der grosse procmail Spezialist, vielleicht kann das mal naeher erlaeutern. Sendmail ruft procmail mit dem Schalter -m auf. Sieh dir mal die /etc/sendmail.cf an Gruss Dieter -- Dieter Kluenter Brute Force Imaging
On Mon, 13 Aug 2001, Dieter Kluenter wrote:
Ich glaube, dass ist dein eigentliches Problem. Der Schalter '-d' behandelt deine Mail, als ob keine ~/.procmailrc besteht. Ich bin nicht der grosse procmail Spezialist, vielleicht kann das mal naeher erlaeutern.
Ne, es geht auch mit -d.
Sendmail ruft procmail mit dem Schalter -m auf. Sieh dir mal die /etc/sendmail.cf an
in meinem strace war zu erkennen, dass sendmail
procmail -f <absender> -a "" -d
Hallo, david@dhaller.de (David Haller) writes:
On Mon, 13 Aug 2001, Dieter Kluenter wrote:
Ich glaube, dass ist dein eigentliches Problem. Der Schalter '-d' behandelt deine Mail, als ob keine ~/.procmailrc besteht. Ich bin nicht der grosse procmail Spezialist, vielleicht kann das mal naeher erlaeutern.
Ne, es geht auch mit -d.
Sendmail ruft procmail mit dem Schalter -m auf. Sieh dir mal die /etc/sendmail.cf an
in meinem strace war zu erkennen, dass sendmail
procmail -f <absender> -a "" -d
aufruft. In meiner sendmail.cf steht allerdings:
Mlocal, P=/usr/bin/procmail, [..] A=procmail -a $h -d $u ## ^^^^^^^^^^^ s.o. Mprocmail, P=/usr/bin/procmail, [..] A=procmail -Y -m $h $f $u
Seltsam, einmal Mailer local und einmal Mailer procmail, ah, ja, in /etc/mail/linux.mc werde sowohl Mailer(local) als auch Mailer(procmail) definiert. Da ich vor laengerer Zeit mal meine eigene linux.mc geschrieben habe, ist mir das nie aufgefallen, ich habe immer nur Mlocal mit A=procmail -m $h $f $u definiert, ohne zusaetzliche Mprocmail Definition. -Dieter -- Dieter Kluenter Brute Force Imaging
On Mon, 13 Aug 2001, Dieter Kluenter wrote:
david@dhaller.de (David Haller) writes:
On Mon, 13 Aug 2001, Dieter Kluenter wrote: procmail -f <absender> -a "" -d
Mlocal, [..] A=procmail -a $h -d $u ## ^^^^^^^^^^^ Seltsam, einmal Mailer local und einmal Mailer procmail, ah, ja, in /etc/mail/linux.mc werde sowohl Mailer(local) als auch Mailer(procmail) definiert.
Ja... Ich weiss auch nicht warum :) Ich hab's halt so gelassen...
ich habe immer nur Mlocal mit A=procmail -m $h $f $u definiert, ohne zusaetzliche ^^ Ich zitiere mal die manpage:
-m Turns procmail into a general purpose mail filter. In this mode one rcfile must be specified on the com mand line. SYNOPSIS procmail [-ptoY] [-f fromwhom] [parameter=value | rcfile] ... procmail [-toY] [-f fromwhom] [-a argument] -d recipient ... procmail [-ptY] -m [parameter=value] ... rcfile Moegl. Problem: procmail -m wird ohne rcfile aufgerufen... Ich weiss jetzt allerdings nicht, was in $h und $f drinist, $u ist wohl (nur) der Empfaengername... -dnh -- "one of the ill effects of Microsoft's software is having to pay for it. Lusers who pirate it are escaping this particular ill effect and aren't driven quite as hard toward cheaper, better choices." -- Mark Wells
Hallo Dieter, hallo Liste! On Monday 13 August 2001 20:44, Dieter Kluenter wrote:
stephan@hakuli.de (Stephan Hakuli) writes:
On Monday 13 August 2001 17:13, Dieter Kluenter wrote:
stephan@hakuli.de (Stephan Hakuli) writes:
Hm. Aber Dein Procmail schiebt auch Mails direkt ins Homeverzeichnis? Wohl schon. :-(
Sorry, meine erste Mail ist zu frueh losgegangen, waehrend ich noch man procmail las. .-.-.-.-.-.-.-.-.-.-.-.- -d recipient ... This turns on explicit delivery mode, delivery will be to the local user recipient. This, of course, only is possible if procmail has root privileges (or if procmail is already running with the recipient's euid and egid). Procmail will setuid to the intended recipients and delivers the mail as if it were invoked by the recipient with no arguments (i.e. if no rcfile is found, delivery is like ordinary mail). This option is incompatible with -p. -.-.-.-.-.-.-.-.-.-.-.-.-.-
Ich glaube, dass ist dein eigentliches Problem. Der Schalter '-d' behandelt deine Mail, als ob keine ~/.procmailrc besteht. Ich bin nicht der grosse procmail Spezialist, vielleicht kann das mal naeher erlaeutern.
Steht der in Deiner masqmail.conf nicht auch drin? Ich habe mal alle .procmailrc's wegverschoben, damit die Mails nur in /var/spool/mail landen. Gebracht hat's nichts. :-(
Sendmail ruft procmail mit dem Schalter -m auf. Sieh dir mal die /etc/sendmail.cf an
Schon dabei. Ich werde mal ein bisschen mit den procmail-Optionen spielen. Irgendwie ist das trotzdem alles seltsam. Unsere Konfigurationen scheinen vergleichbar zu sein, alle Rechte stimmen, trotzdem tuts nicht. Wahrscheinlich werde ich damit leben müssen, dass procmail suid root läuft. Ist nicht schön, aber so klappts. :-/ Ich fahre die nächsten Tage weg und habe deshalb leider nicht mehr viel Zeit übrig, weiterzuforschen. Ich danke Dir und David ganz herzlich, dass Ihr Euch die Zeit genommen habt. Schöne Grüße, Stephan -- Stephan Hakuli | mailto: stephan@hakuli.de | * GnuPG/PGP-Key * | callto: 01 71 - 651 89 43 | available, please | surfto: http://www.hakuli.de | visit my homepage
On Mon, 13 Aug 2001, Stephan Hakuli wrote:
On Sunday 12 August 2001 23:25, David Haller wrote:
On Son, 12 Aug 2001, Stephan Hakuli wrote:
*g* Das wusste ich noch. Gemeint war, dass ich nicht verstehe, warum procmail nicht auf stdout schreiben darf.
Gute Frage...
Mach doch auch mal ein strace...
Gehen wir's an... ;-) Meine Schritte im einzelnen: [..] # ls -l /usr/bin/procmail -rwxr-xr-x 1 root root 64016 Jul 29 2000 /usr/bin/procmail
Hab ich auch. Was sagt eigentlich 'procmail -v'? Hier: procmail v3.13.1 1999/04/05 [..]
(in einer anderen Mail schrieb ich, dass mit gesetzten suid bit alles problemlos funktioniert. Ist das schon die Lösung? Wenn ja, dann verstehe ich's nicht. Procmail wird doch vom als root laufenden masqmail gestartet?!)
Ja. Das waere ne Moeglichkeit das Prob zu umgehen. Aber s.u.
Die ~/.procmailrc von Stephan ist (noch) ultra-spartanisch: # cat ~stephan/.procmailrc MAILDIR=$HOME/Mail DEFAULT=$MAILDIR/inbox LOGFILE=$HOME/log/procmail.log LOCKFILE=$HOME/.maillock
Hast du da denn auch ne default Mailbox definiert? Aber egal, dein procmail kommt gar nicht soweit die procmailrc zu oeffnen (s.u.) [..]
Hm, eiskalt lösche ich das Lockfile und versuche es nochmal: # strace -f -efile -o /tmp/sm.trace sendmail -q -v Process 1050 attached
Message from syslogd@blackbox at Mon Aug 13 13:13:12 2001 ... blackbox procmail[1050]: Descriptor 1 was not open Process 1049 suspended Process 1049 resumed Process 1050 detached process returned 19712: Illegal seek
Dem Logfile kann ich nichts sinnvolles entnehmen, die procmail-Zeilen von Davids output kommen auf jeden Fall nicht vor.
Doch! Gewissermassen (mit ein paar Unterschieden): 1050 execve("/bin/sh", ["/bin/sh", "-c", "/usr/bin/procmail -Y -d root"], [/* 11 vars */]) = 0 Wieso die sh? Ist das masqmail? [..] 1050 open("/lib/libc.so.6", O_RDONLY) = 1 1050 open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 1 ? 1050 open("/etc/nsswitch.conf", O_RDONLY) = 1 1050 fstat64(1, 0xbffff93c) = -1 ENOSYS (Function not implemented) Das Problem hast du schon die ganze Zeit... Welche glibc hast du (siehe die Ausgabe von /lib/libc.so.6)? 1050 execve("/usr/bin/procmail", ["/usr/bin/procmail", "-Y", "-d", "root"], [/* 21 vars */]) = 0 Hier ersetzt sich also die sh durch procmail... Bei mir ruft sendmail procmail direkt, ohne -Y dafuer mit "-f" "<absender>" auf. Hm... Ausserdem soll die Mail an root gehen. Hat der ne .procmailrc oder gibt's ne globale in /etc? Und moeglicherweise ist das schon die Fehlermeldung, an wen war die Testmail denn? [..] 1050 fstat64(1, 0xbffff83c) = -1 ENOSYS (Function not implemented) s.o. 1050 open("/dev/null", O_WRONLY|O_APPEND|O_CREAT, 0667) = 1 1050 open("/etc/localtime", O_RDONLY) = 2 1050 open("/dev/null", O_WRONLY|O_APPEND|O_CREAT, 0667) = 1 Zweimal /dev/null geoeffnet? Komisch... Scheint aber zu klappen. 1050 open("/etc/passwd", O_RDONLY) = 5 1049 --- SIGCHLD (Child exited) --- So, und hier sollte dann noch /var/spool/mail/<user>, die procmailrc, das Log und ggfs. (je nach procmail-regel) die Ziel-mbox geoeffnet werden... Teste doch mal, was procmail macht wenn du es direkt aufrufst, extrahiere ne Mail und geb die an procmail (eine Zeile): strace -f -o /tmp/procmail.trace \ procmail -f "root@localhost" -d "stephan" < /tmp/testmail Und du kannst ja auch mal masqmail durch strace (ohne -efile) jagen... Die traces kannst du mir dann als (.tar).gz per PM mailen oder auch auf die HP stellen... -dnh -- I'd beat my head against a wall but brain damage is the first step to an MCSE, and I'm not that far gone yet. -- random in asr
Hallo David, hallo Liste! On Monday 13 August 2001 20:51, David Haller wrote:
On Mon, 13 Aug 2001, Stephan Hakuli wrote:
# ls -l /usr/bin/procmail -rwxr-xr-x 1 root root 64016 Jul 29 2000 /usr/bin/procmail
Hab ich auch. Was sagt eigentlich 'procmail -v'? Hier: procmail v3.13.1 1999/04/05
# procmail -v procmail v3.13.1 1999/04/05 ;-)
Die ~/.procmailrc von Stephan ist (noch) ultra-spartanisch: # cat ~stephan/.procmailrc MAILDIR=$HOME/Mail DEFAULT=$MAILDIR/inbox LOGFILE=$HOME/log/procmail.log LOCKFILE=$HOME/.maillock
Hast du da denn auch ne default Mailbox definiert?
Ist das nicht die Zeile DEFAULT=$MAILDIR/inbox ?
Aber egal, dein procmail kommt gar nicht soweit die procmailrc zu oeffnen (s.u.)
Richtig. [...]
Hm, eiskalt lösche ich das Lockfile und versuche es nochmal: # strace -f -efile -o /tmp/sm.trace sendmail -q -v Process 1050 attached
Message from syslogd@blackbox at Mon Aug 13 13:13:12 2001 ... blackbox procmail[1050]: Descriptor 1 was not open Process 1049 suspended Process 1049 resumed Process 1050 detached process returned 19712: Illegal seek
Dem Logfile kann ich nichts sinnvolles entnehmen, die procmail-Zeilen von Davids output kommen auf jeden Fall nicht vor.
Doch! Gewissermassen (mit ein paar Unterschieden):
1050 execve("/bin/sh", ["/bin/sh", "-c", "/usr/bin/procmail -Y -d root"], [/* 11 vars */]) = 0
Wieso die sh? Ist das masqmail?
Ich muss gestehen: Keine Ahnung! Wahrscheinlich. Ist es relevant, dass der der User mail:trusted auch /bin/sh in /etc/passwd eingetragen hat?
[..] 1050 open("/lib/libc.so.6", O_RDONLY) = 1 1050 open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 1
?
1050 open("/etc/nsswitch.conf", O_RDONLY) = 1 1050 fstat64(1, 0xbffff93c) = -1 ENOSYS (Function not implemented)
Das Problem hast du schon die ganze Zeit... Welche glibc hast du (siehe die Ausgabe von /lib/libc.so.6)?
$ /lib/libc.so.6
/lib/libc.so.6
GNU C Library stable release version 2.1.3, by Roland McGrath et al.
[...]
Compiled by GNU CC version 2.95.2 19991024 (release).
Compiled on a Linux 2.2.16 system on 2001-05-10.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by Michael Glad and others
linuxthreads-0.8 by Xavier Leroy
NoVersion patch for broken glibc 2.0 binaries
BIND-4.9.7-REL
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
NSS V1 modules 2.0.2 by Thorsten Kukuk
libthread_db work sponsored by Alpha Processor Inc
Report bugs using the `glibcbug' script to
1050 execve("/usr/bin/procmail", ["/usr/bin/procmail", "-Y", "-d", "root"], [/* 21 vars */]) = 0
Hier ersetzt sich also die sh durch procmail... Bei mir ruft sendmail procmail direkt, ohne -Y dafuer mit "-f" "<absender>" auf. Hm...
-Y weglassen hilft nicht (siehe andere Mail von mir).
Ausserdem soll die Mail an root gehen. Hat der ne .procmailrc oder gibt's ne globale in /etc?
Ja, er hat eine private, die gleiche, die ich für user stephan gepostet habe, auch die Mails von root werden nach /root/Mail/inbox verschoben. Eine globale /etc/procmailrc existiert nicht.
Und moeglicherweise ist das schon die Fehlermeldung, an wen war die Testmail denn?
Von root an stephan. Der von Dir zitierte Auszug kommt vermutlich von der gescheiterten Zustellung der Fehlermeldung.
[..] 1050 fstat64(1, 0xbffff83c) = -1 ENOSYS (Function not implemented)
s.o.
1050 open("/dev/null", O_WRONLY|O_APPEND|O_CREAT, 0667) = 1 1050 open("/etc/localtime", O_RDONLY) = 2 1050 open("/dev/null", O_WRONLY|O_APPEND|O_CREAT, 0667) = 1
Zweimal /dev/null geoeffnet? Komisch... Scheint aber zu klappen.
1050 open("/etc/passwd", O_RDONLY) = 5 1049 --- SIGCHLD (Child exited) ---
So, und hier sollte dann noch /var/spool/mail/<user>, die procmailrc, das Log und ggfs. (je nach procmail-regel) die Ziel-mbox geoeffnet werden...
Teste doch mal, was procmail macht wenn du es direkt aufrufst, extrahiere ne Mail und geb die an procmail (eine Zeile):
strace -f -o /tmp/procmail.trace \ procmail -f "root@localhost" -d "stephan" < /tmp/testmail
Die Mail wird zugestellt. Der Output sieht normal aus, auch wenn ich das nicht allzu qualifiziert beurteilen kann. Ich habe Dir die Datei gemailt. Ich werde nun noch ein wenig mit den Procmail-Optionen spielen. Vielleicht ergibt sich da was (siehe Mail von Dieter). Vielen Dank für Deine Mühe! Stephan -- Stephan Hakuli | mailto: stephan@hakuli.de | * GnuPG/PGP-Key * | callto: 01 71 - 651 89 43 | available, please | surfto: http://www.hakuli.de | visit my homepage
On Mon, 13 Aug 2001, Stephan Hakuli wrote:
On Monday 13 August 2001 20:51, David Haller wrote:
On Mon, 13 Aug 2001, Stephan Hakuli wrote: Hab ich auch. Was sagt eigentlich 'procmail -v'? Hier: procmail v3.13.1 1999/04/05
# procmail -v procmail v3.13.1 1999/04/05 ;-)
Ok, daran sollte's also nicht liegen :)
DEFAULT=$MAILDIR/inbox Hast du da denn auch ne default Mailbox definiert? Ist das nicht die Zeile DEFAULT=$MAILDIR/inbox ?
Oehm ja... Ich hab in meiner ~/.procmailrc halt: ,----[ ~/.procmailrc ] | DEFAULT=$MAILDIR/inbox #completely optional [diverse Regeln gesnippt] | :0 | inbox `---- Ist aber vermutlich renundant... *g* [strace]
1050 execve("/bin/sh", ["/bin/sh", "-c", "/usr/bin/procmail -Y -d root"], [/* 11 vars */]) = 0
Wieso die sh? Ist das masqmail?
Ich muss gestehen: Keine Ahnung! Wahrscheinlich. Ist es relevant, dass der der User mail:trusted auch /bin/sh in /etc/passwd eingetragen hat?
Weiss ich leider nicht, ich kenne masqmail (noch) nicht... Bei mir laeuft sendmail glaub als root, die Rechte braucht der mda IMO sowieso, da er ja die mboxen der user schreiben koennen muss... # ls -l `which sendmail` -r-sr-sr-x 1 root root 381164 Mar 25 2000 /usr/sbin/sendmail* Hm. Ob das (bes. d. SGID) so noetig ist weiss ich aber nicht :( [..]
1050 open("/etc/nsswitch.conf", O_RDONLY) = 1 1050 fstat64(1, 0xbffff93c) = -1 ENOSYS (Function not implemented)
Das Problem hast du schon die ganze Zeit... Welche glibc hast du (siehe die Ausgabe von /lib/libc.so.6)?
$ /lib/libc.so.6 /lib/libc.so.6 GNU C Library stable release version 2.1.3, by Roland McGrath et al. [...] Compiled by GNU CC version 2.95.2 19991024 (release).
Hab ich auch so, nur "Compiled on a Linux 2.2.14"...
Im Zusammenhang mit dem Kernelupdate auf (einen selbstgebauten) 2.2.19 wurde in einem Security-Advisory das Update von shlibs empfohlen. So auch geschehen. Ist es ein Problem, dass das Paket vom packager auf 2.2.16 kompiliert wurde? Auf meinem "regulären" Rechner läuft diese Kombination schon seit längerer Zeit auch unter massiver Last problemlos.
Ne, sollte IMO kein Problem sein... Hm, ne Kerneloption is das
ja nicht... Mir scheint aber, das irgendwas mit dem "Largefile"-
Support nicht stimmt:
,----[ /tmp/test/fstat64.c ]
| #include
Bei mir ruft sendmail procmail direkt, ohne -Y dafuer mit "-f" "<absender>" auf. Hm...
-Y weglassen hilft nicht (siehe andere Mail von mir).
Zum procmail aufruf, s. den anderen subthread ;) Von root an stephan. Der von Dir zitierte Auszug kommt vermutlich
von der gescheiterten Zustellung der Fehlermeldung.
Jep, vermute ich auch... (siehe auch die PM zum strace des procmail Aufrufs, die spaeter kommen wird)...
strace -f -o /tmp/procmail.trace \ procmail -f "root@localhost" -d "stephan" < /tmp/testmail
Die Mail wird zugestellt. Der Output sieht normal aus, auch wenn ich das nicht allzu qualifiziert beurteilen kann. Ich habe Dir die Datei gemailt.
Jep... Das sieht ok aus (siehe PM dann)...
Ich werde nun noch ein wenig mit den Procmail-Optionen spielen. Vielleicht ergibt sich da was (siehe Mail von Dieter).
Fuer mich sieht das irgendwie immer mehr nach einem Bug in masqmail aus... Welche Version verwendest du? -dnh -- "True multitasking is being able to type and pet the cat in your lap at the same time" [S. McAndrewSmith in asr]
participants (3)
-
David Haller
-
Dieter Kluenter
-
Stephan Hakuli