Postfix 파이프는 항상 없음으로 실행됩니다.

Postfix 파이프는 항상 없음으로 실행됩니다.

문제

www-data에 있는 그룹이 소유한 파일에서 작동하는 스크립트로 이메일을 파이프하는 postfix를 원합니다 /var/www/. 그러나 권한이 부족하다는 오류 메시지가 나타납니다. 스크립트를 실행함으로써 whoami올바른 사용자 scriptuser(내 /etc/postfix/transport파일에 설정된 대로)가 스크립트를 실행했는지 확인할 수 있습니다. 또한 를 사용하여 스크립트를 실행하면 오류가 발생하지 않아 사용자에게 충분한 액세스 권한이 있음을 확인할 수 있습니다 sudo -u scriptuser /path/to/script.

그러므로 나는 매우 혼란스럽고 약간 길을 잃었습니다. 사용자가 파일에 대한 액세스 권한을 가지고 있고 Postfix에서 이 특정 사용자로 스크립트를 실행했지만 여전히 메시지를 받는 것이 어떻게 가능합니까 permission denied?

나는 또한 에서 제안한대로 default_privs = www-data에 추가하려고 시도했습니다./etc/postfix/main.cf여기성공하지 못했습니다. via를 통한 액세스를 활성화하면 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=<[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

관련 정보