我为 Postfix 创建了一个简单的内容过滤器作为 Python 脚本:
$ ls -al /home/main_user/test1.py
-rwxr-xr-x 1 vmail2 nobody /home/main_user/test1.py
我/etc/postfix/master.cf
有这个:
smtp inet n - n - - smtpd
-o content_filter=filter1:dummy
# [........................]
filter1 unix - n n - 10 pipe
flags=Rq user=vmail2 null_sender=
argv=/home/main_user/test1.py -f ${sender} ${recipient}
Postfix 日志中的错误:
fatal: pipe_command: execvp /home/main_user/test1.py Permission denied
虚拟邮箱2- 是没有主目录的用户。我专门为此任务创建了它:
$ id vmail2
uid=5002(vmail2) gid=5002(vmail2) groups=5002(vmail2)
为什么会失败以及如何修复?
更新1:
“家”的许可:
$ ls -ald ~
drwx------ 12 main_user main_user 4096 /home/main_user
答案1
这几乎说明了一切。
致命:pipe_command:execvp /home/main_user/test1.py 权限被拒绝
用户vmail2
无权访问/home/main_user
我可能会chown :vmail2 /home/main_user; chmod g+rx /home/main_user
确保至少对该组test1.py
具有组读取和组执行权限vmail2