O tubo Postfix sempre funciona como ninguém

O tubo Postfix sempre funciona como ninguém

O problema

Gostaria que o postfix canalizasse e-mails para um script que operasse em arquivos de propriedade do www-datagrupo localizado em /var/www/. No entanto, recebo mensagens de erro que indicam privilégios insuficientes. Ao deixar o script ser executado whoami, posso confirmar que ele foi executado pelo usuário correto scriptuser(conforme definido em meu /etc/postfix/transportarquivo). Também posso confirmar que o usuário possui direitos de acesso suficientes, pois não ocorrem erros ao executar o script usando sudo -u scriptuser /path/to/script.

Portanto, estou bastante confuso e um pouco perdido. Como é possível que o usuário tenha acesso direto aos arquivos, o script é executado pelo Postfix como esse usuário específico, mas ainda recebo a permission deniedmensagem?

Eu também tentei adicionar default_privs = www-data, /etc/postfix/main.cfcomo sugerido emaquisem sucesso. Habilitar o acesso via chmod o+rxfaz o trabalho, mas eu consideraria isso potencialmente perigoso, pois qualquer pessoa com acesso shell ao servidor poderia ler esses arquivos.

Os arquivos de configuração

# in file /etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
virtual_maps  = hash:/etc/postfix/virtual/addresses

# in file /etc/postfix/master.cf
mailreply   unix    -   n   n   -   -   pipe
  flags=FR user=scriptuser argv=/usr/lib/postfix/sbin/pipemailreply

# in file /etc/postfix/transport
mailreplyuser@localhost mailreply

# in file /etc/postfix/virtual/addresses
mydomain.com                     DOMAIN
@mydomain.com                    mailreplyuser@localhost

Os direitos do arquivo em /var/www/hmtl/(via ls -la):

drwxrws--- 4 www-data www-data  4096 Mar 13 00:41 .
drwxr-xr-x 3 root     root      4096 Mar 13 01:02 ..
-rw-r--r-- 1 root     www-data     8 Mar 13 00:15 test.txt

A mensagem de erro

Mar 13 10:13:21 myservername postfix/pipe[3545]: 774F3FEB3B: to=<mailreplyuser@localhost>, orig_to=<[email protected]>, relay=mailreply, delay=0.13, delays=0.07/0/0/0.06, dsn=5.3.0, status=bounced (Command died with status 1: "/usr/lib/postfix/sbin/pipemailreply". Command output: cat: /var/www/html/test.txt: Permission denied )

Responder1

Mudei "user=scriptuser" para "user=scriptuser:scriptgroup" e consegui fazer funcionar.

http://www.postfix.org/pipe.8.html

informação relacionada