Postfix 管道始終以無人身分運作

Postfix 管道始終以無人身分運作

問題

我希望 postfix 將電子郵件通過管道傳輸到一個腳本,該www-data腳本對位於/var/www/.但是,我收到指示權限不足的錯誤訊息。透過讓腳本運行whoami,我可以確認它是由正確的用戶運行的scriptuser(如我的/etc/postfix/transport文件中設定的)。我還可以確認使用者俱有足夠的存取權限,因為使用 執行腳本時不會發生錯誤sudo -u scriptuser /path/to/script

所以,我很迷茫,也有些失落。使用者如何擁有檔案的存取權限,腳本由 Postfix 作為該特定使用者運行,但我仍然收到訊息permission denied

我也嘗試添加default_privs = www-data/etc/postfix/main.cf,如建議的那樣這裡沒有成功。透過啟用存取chmod o+rx可以完成這項工作,但我認為這有潛在的危險,因為任何對伺服器具有 shell 存取權限的人都可以讀取這些檔案。

設定檔

# in file /etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
virtual_maps  = hash:/etc/postfix/virtual/addresses

# in file /etc/postfix/master.cf
mailreply   unix    -   n   n   -   -   pipe
  flags=FR user=scriptuser argv=/usr/lib/postfix/sbin/pipemailreply

# in file /etc/postfix/transport
mailreplyuser@localhost mailreply

# in file /etc/postfix/virtual/addresses
mydomain.com                     DOMAIN
@mydomain.com                    mailreplyuser@localhost

文件權限/var/www/hmtl/(通過ls -la):

drwxrws--- 4 www-data www-data  4096 Mar 13 00:41 .
drwxr-xr-x 3 root     root      4096 Mar 13 01:02 ..
-rw-r--r-- 1 root     www-data     8 Mar 13 00:15 test.txt

錯誤訊息

Mar 13 10:13:21 myservername postfix/pipe[3545]: 774F3FEB3B: to=<mailreplyuser@localhost>, orig_to=<[email protected]>, relay=mailreply, delay=0.13, delays=0.07/0/0/0.06, dsn=5.3.0, status=bounced (Command died with status 1: "/usr/lib/postfix/sbin/pipemailreply". Command output: cat: /var/www/html/test.txt: Permission denied )

答案1

我將“user=scriptuser”更改為“user=scriptuser:scriptgroup”,並且能夠使其工作。

http://www.postfix.org/pipe.8.html

相關內容