Estou usando uma combinação de Postfix e Procmail para lidar com e-mails de entrada em um dos meus servidores. Cada usuário tem uma conta local e eu uso o abaixo /usr/local/etc/procmailrc
com sucesso há anos:
DEFAULT=$HOME/mail/
LOGFILE=/var/log/procmail
Recentemente, adicionei uma receita para direcionar mensagens sinalizadas como spam para uma pasta separada:
:0
* ^X-Spam-Flag: YES
$HOME/mail/.Junk/
No entanto, parece que em alguns casos as mensagens que vão para esta pasta são de propriedade do root em vez do usuário correto. Nunca tive esse problema com a caixa de entrada e também parece que afeta apenas alguns usuários.
Consegui pegar um dos processos do Procmail ps
e ele parece ser executado como o usuário correto. (Este usuário também tem e-mail de propriedade root na pasta de lixo eletrônico)
# 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
Alguém tem uma idéia de por que as mensagens tratadas pela receita acabariam sendo de propriedade do root, enquanto as mensagens indo para a pasta padrão teriam o proprietário correto?
Existe alguma coisa que eu possa fazer (mesmo que seja hacky, como chamar chown da receita do Procmail) para garantir que as mensagens sejam sempre de propriedade do usuário correto?
Caso seja importante, o Procmail é configurado no Postix da seguinte forma:
mailbox_command = /usr/local/bin/procmail -a "$EXTENSION"
Verifique se as permissões na pasta de lixo eletrônico estão corretas, mas você também pode adicionar o seguinte ao seu procmail.cf:
Eu não sou especialista em procmail, mas de acordo com esta entrada de homem , ele deve descartar quaisquer privilégios que o procmail tenha, e o destinatário não (ênfase minha).
Parte chave; executado em nome do destinatário .
Explicação de por que isso funciona do usuário @Tripleee: