Ich versuche, empfangene E-Mails zur Verarbeitung an ein Skript weiterzuleiten. Ich habe in master.cf einen benutzerdefinierten Postfix-Transport wie folgt definiert.
transpire unix - n n - - pipe
flags=Rq user=implantd argv=/opt/transpire/bin/implantproc.py $recipient > /dev/null 2>&1
Das funktioniert, die in der local_recipient_map definierten E-Mails werden an das Skript weitergeleitet, allerdings habe ich ein Berechtigungsproblem. Es scheint, als ob das Skript (implantproc.py) keine Schreibberechtigung für eine Datei hat, die es ausführen muss. Beispielsweise zeigt ein NDR den Berechtigungsfehler an.
<[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'
Ich habe/habe verstanden, dass Postfix standardmäßig unter läuft nobody/nogroup
, aber ich habe versucht, die Datei log.txt mit nobody zu chownen. Außerdem werden Sie feststellen, dass ich einen speziellen Benutzer erstellt habe, implantd
, der zum Aufrufen des Transportskripts verwendet werden soll.
Kann mir jemand sagen, was ich falsch mache?