I think this is the right line of inquiry, but I don't
know why what I've already tried hasn't worked. Part of
the problem is that chkuser is not writing log files,
so diagnosis is hindered.
- When I test qmail-smtpd manually (from the command line)
as root, chkuser rejects bad addresses.
- When I run qmail-smtpd via tcpserver as UID qmaild,
chkuser doesn't reject bad addresses -- regardless of
the setting for CHKUSER_ENABLE_UIDGID
- When I run qmail-smtpd via tcpserver as UID vpopmail,
chkuser doesn't reject bad addresses
Trying running as on the commandline as vpopmail or qmaild.
Initially, my /var/qmail/supervise/qmail-smtpd/run script
executed qmail-smtpd as UID qmaild, because that is what
the LWQ docs recommend -- see section 220.127.116.11, "the supervise
scripts", here: http://lifewithqmail.org/lwq.html#start-qmail
First I tried recompiling qmail+chkuser with the CHKUSER_ENABLE_UIDGID
switch enabled. qmail-smtpd ran fine but chkuser would not reject
Then I commented out CHKUSER_ENABLE_UIDGID, recompiled qmail
again, and changed the qmail-smtpd/run script to run qmail-smtpd
as UID vpopmail. chkuser still does not reject bad addresses.
Sorry I need to look at the patch before I can say more on this but
there is one more thing to try.
Here is the qmail-smtpd invocation from qmail-smtpd/run:
exec /usr/local/bin/softlimit -m 25165824 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" \
-x /etc/tcp.smtp.cdb \
-c "$MAXSMTPD" \
-u "$VPOPMAILUID" -g "$VPOPMAILGID" 0 smtp \
The two problems currently are:
1- chkuser does not reject any mail received by qmail
2- chkuser does not write to the mail log
It is as if chkuser is not compiled in at all -- but it
is, as a command-line test reveals.
Run the command as vpopmail or qmaild and, if you wish, strace it too.