Изменить пользователя для вызова скрипта postfix transport

Изменить пользователя для вызова скрипта postfix transport

Я пытаюсь направить полученные письма в скрипт для обработки. У меня есть пользовательский транспорт Postfix, определенный в master.cf, как указано ниже.

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

Это работает, письма, определенные в local_recipient_map, передаются в скрипт, однако у меня проблема с разрешениями. Кажется, что у скрипта (implantproc.py) нет разрешения на запись в файл, который ему понадобится для запуска. Например, NDR, показывающий ошибку разрешения.

<[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'

Я понимаю/понимаю, что по умолчанию postfix работает под nobody/nogroup, но я пробовал chowning файла log.txt с nobody. Также, вы заметите, что я создал определенного пользователя, implantd, который должен использоваться для вызова транспортного скрипта.

Кто-нибудь может подсказать, что я делаю не так?

Связанный контент