Procmail配方,邮件归根

我正在使用Postfix和Procmail的组合来处理我的一台服务器上的入站电子邮件。 每个用户都有一个本地帐户,多年来我一直使用下面的/usr/local/etc/procmailrc

 DEFAULT=$HOME/mail/ LOGFILE=/var/log/procmail 

我最近添加了一个配方,将标记为垃圾邮件的邮件指向一个单独的文件夹:

 :0 * ^X-Spam-Flag: YES $HOME/mail/.Junk/ 

但是,在某些情况下,进入该文件夹的消息似乎是由root用户拥有的,而不是正确的用户。 我从来没有收到这个问题,它似乎也只是影响某些用户。

我设法捕捉在ps中的Procmail进程之一,它似乎运行正确的用户。 (这个用户在垃圾文件夹中也有根拥有的邮件)

 # ps axu | grep procmail {correct-local-username} 7402 0.0 0.2 12140 1780 ?? Ss 11:37AM 0:00.01 /usr/local/bin/procmail -a 

有没有人有一个想法,为什么消息处理的食谱将由根拥有,而消息去默认文件夹会得到正确的所有者?

有什么我可以做的(即使它是hacky,例如从Procmail配方中调用chown)来确保消息始终由正确的用户拥有?

如果重要,Procmail在Postix中configuration如下:

 mailbox_command = /usr/local/bin/procmail -a "$EXTENSION" 

检查垃圾文件夹的权限是否正确,但您是否也可以将以下内容添加到procmail.cf中:

 DROPPRIVS=yes 

我不是procmail的专家,但根据这个人的条目 ,它应该放弃procmail已经有的任何priveleges,而收件人不(强调我的)。

  DROPPRIVS If set to `yes' procmail will drop all privileges it might have had (suid or sgid). This is only useful if you want to guarantee that the bottom half of the /etc/procmailrc file is executed on behalf of the recipient. 

关键部分; 代表收件人执行

为什么这个工作formsuser @Tripleee的解释:

DEFAULT传递发生在隐式DROPPRIVS之后,但是如果您在特权模式下显式传递某些内容,则还需要显式删除您的权限。