Receita de Procmail, correio de propriedade do root

3

Estou usando uma combinação de Postfix e Procmail para lidar com emails de entrada em um dos meus servidores. Cada usuário tem uma conta local e estou usando o /usr/local/etc/procmailrc abaixo com sucesso há anos:

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

Recentemente, adicionei uma receita para direcionar mensagens marcadas como spam para uma pasta separada:

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

No entanto, parece que, em alguns casos, as mensagens que entram nessa pasta são de propriedade do root, e não do usuário correto. Eu nunca tive esse problema com a Caixa de entrada, e também parece que isso afeta apenas alguns usuários.

Eu consegui pegar um dos processos do Procmail em ps e ele parece rodar como o usuário correto. (Este usuário também tem um e-mail de propriedade raiz na pasta Junk)

# 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 ideia de por que as mensagens manipuladas pela receita acabariam sendo de propriedade do root, enquanto as mensagens que vão para a pasta padrão obteriam o proprietário correto?

Existe algo 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"
    
por USD Matt 20.06.2017 / 12:41

1 resposta

5

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:

DROPPRIVS=yes

Não sou especialista em procmail, mas de acordo com a entrada deste , ele deve eliminar todos os privilégios que o procmail teve, e o destinatário não (ênfase minha).

 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.

Parte chave; executado em nome do destinatário .

Explicação de por que isso funciona no usuário @Tripleee:

The DEFAULT delivery happens after an implicit DROPPRIVS, but if you explicitly deliver something while in privileged mode, you also need to explicitly drop your privileges.

    
por 20.06.2017 / 12:53