更改用户以调用后缀传输脚本

更改用户以调用后缀传输脚本

我正在尝试将收到的电子邮件通过管道传输到脚本进行处理。我在 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,但我尝试过用 nobody 来更改 log.txt 文件的所有者。此外,您会注意到我创建了一个特定用户,implantd,应该使用它来调用传输脚本。

有人能告诉我我做错了什么吗?

相关内容