Cambiar usuario para invocar el script de transporte postfix

Cambiar usuario para invocar el script de transporte postfix

Estoy intentando canalizar los correos electrónicos recibidos a un script para su procesamiento. Tengo un transporte Postfix personalizado definido en master.cf, según lo siguiente.

transpire unix  -       n       n       -       -       pipe
  flags=Rq user=implantd argv=/opt/transpire/bin/implantproc.py $recipient > /dev/null 2>&1

Esto funciona, los correos electrónicos definidos en local_recipient_map se canalizan al script, sin embargo, tengo un problema de permisos. Parece que el script (implantproc.py) no tiene permiso de escritura en un archivo, que deberá ejecutarse. Por ejemplo, un NDR que muestra el error de permiso.

<[email protected]>: Command died with status 1:
    "/opt/transpire/bin/implantproc.py". Command output: Traceback (most recent
    call last):   File "/opt/transpire/bin/implantproc.py", line 11, in
    <module>     open("log.txt", 'a').write("test!") IOError: [Errno 13]
    Permission denied: 'log.txt'

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.3.0
Diagnostic-Code: x-unix; Traceback (most recent call last):   File
    "/opt/transpire/bin/implantproc.py", line 11, in <module>
    open("log.txt", 'a').write("test!") IOError: [Errno 13] Permission
    denied: 'log.txt'

Tengo entendido que, de forma predeterminada, postfix se ejecuta en nobody/nogroup, pero he intentado modificar el archivo log.txt sin nadie. Además, notará que he creado un usuario específico, implantdque debería usarse para invocar el script de transporte.

¿Alguien puede aconsejarme qué estoy haciendo mal?

información relacionada