After some further investigation, I think what's going on is this:

the "sticky bit" based locking applies to maildrop, however, it does
not seem to apply to mail delivered by the courierlocal transport
module.  The courier online documentation:

http://www.courier-mta.org/local.html

Output module

setuids to the user indicated in the host parameter.
If $HOME has the sticky bit set, defers the mail.

attempts to open and read delivery instructions from .courier file specified by 
the address parameter. If can't open the file, or if it's empty, message is 
delivered to the default mailbox. Delivery instructions are read, a line at a 
time. Lines ending with \ are concatenated with the next one. A delivery 
instruction may specify a mailbox, a forwarding address !user@host, or a 
program delivery |

The output module appends a Delivered-To: userid-ext@defaulthost header. If the 
header already exists, the message is bounced as a mailing loop.

suggests that (like in qmail) setting the sticky bit on $HOME *should*
defer mail, but in practice, this doesn't happen.

The courier-mta docs aren't very clear as to how mail is supposed to
be delivered by default (in particular whether or whether not courier
invokes maildrop by default, and/or how to force courier to invoke
maildrop for all local deliveries, if one can do such a thing) is not
clear.


I believe this is true in the Ubuntu Xenial courier packages as well
as the debian packages.  More relevantly, it's also true when I build
using the build scripts from the Arch Linux AUR, which I can easily
see do not patch the courier source in any way (they are also still
based off of 0.75.0, not the most current release).

So I would say this is not a debian-specific bug, or even neccessarily
a programming bug in courier, but rather a matter of unclear
documentation upstream.

Reply via email to