La tubería Postfix siempre funciona como nadie

La tubería Postfix siempre funciona como nadie

El problema

Me gustaría que postfix canalice los correos electrónicos a un script que opere en archivos propiedad del www-datagrupo ubicado en /var/www/. Sin embargo, recibo mensajes de error que indican privilegios insuficientes. Al dejar que se ejecute el script whoami, puedo confirmar que lo ejecuta el usuario correcto scriptuser(como se establece en mi /etc/postfix/transportarchivo). También puedo confirmar que el usuario tiene suficientes derechos de acceso, ya que no se producen errores al ejecutar el script usando sudo -u scriptuser /path/to/script.

Por tanto, estoy bastante confundido y un poco perdido. ¿Cómo es posible que el usuario tenga derecho de acceso a los archivos, Postfix ejecute el script como este usuario específico, pero sigo recibiendo el permission deniedmensaje?

También intenté agregar default_privs = www-dataa /etc/postfix/main.cf, como se sugiere enaquísin éxito. Habilitar el acceso a través de chmod o+rxhace el trabajo, pero lo consideraría potencialmente peligroso ya que cualquier persona con acceso de shell al servidor podría leer esos archivos.

Los archivos de configuración

# 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

Los derechos de archivo en /var/www/hmtl/(a través de 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

El mensaje de error

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 )

Respuesta1

Cambié "user=scriptuser" a "user=scriptuser:scriptgroup" y pude hacerlo funcionar.

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

información relacionada