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