postfix トランスポート スクリプトの呼び出しに使用するユーザーを変更する

postfix トランスポート スクリプトの呼び出しに使用するユーザーを変更する

受信した電子メールをスクリプトにパイプして処理しようとしています。次のように、master.cf にカスタム Postfix トランスポートを定義しています。

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が、log.txt ファイルを nobody で chown してみました。また、トランスポート スクリプトを呼び出すために使用する特定のユーザー を作成したことに注意してくださいimplantd

私が何を間違っているのか誰かアドバイスしてもらえますか?

関連情報