I found that qpsmtpd-async can not deliver mail with queue/postfix-queue
due to lack of permissions, the qpsmtpd-async process did not belong to
the postdrop group.
Here is a patch to update qpsmtpd-async to set the supplementary UNIX
groups, like qpsmtpd-forkserver.
--- qpsmtpd-async.orig 2008-01-30 20:41:24.000000000 +0200
+++ qpsmtpd-async 2008-02-28 22:52:52.000000000 +0200
@@ -255,7 +255,15 @@
# Drop priviledges
my (undef, undef, $quid, $qgid) = getpwnam $USER or
die "unable to determine uid/gid for $USER\n";
- $) = "";
+ my $groups = "$qgid $qgid";
+ while (my (undef, undef, $gid, $members) = getgrent) {
+ my @m = split(/ /, $members);
+ if (grep { $_ eq $USER } @m) {
+ $groups .= " $gid";
+ }
+ }
+ endgrent;
+ $) = $groups;
POSIX::setgid($qgid) or
die "unable to change gid: $!\n";
POSIX::setuid($quid) or