Postfix pipe всегда работает как никто

Эта проблема

Я бы хотел, чтобы 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 выполняет свою работу, но я бы посчитал это потенциально опасным, поскольку любой пользователь, имеющий доступ к серверу через оболочку, мог прочитать эти файлы.

Конфигурационные файлы

# 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=<test@mydomain.com>, 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 )

0 ответов

Я изменил "user=scriptuser" на "user=scriptuser:scriptgroup", и мне удалось заставить его работать.

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

Другие вопросы по тегам