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

Reply via email to