처리를 위해 수신된 이메일을 스크립트로 파이프하려고 합니다. 다음과 같이 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 파일을 삭제하려고 시도했습니다. 또한 implantd
전송 스크립트를 호출하는 데 사용해야 하는 특정 사용자를 생성했음을 알 수 있습니다 .
누구든지 내가 뭘 잘못하고 있는지 조언할 수 있나요?