2016-06-07 9 views
-1

그래서 Postfix를 사용하여 간단한 메일 필터를 설정하는 방법에 대한 [가이드] [1]을 따르면서 찾기가 가능합니다 - 나가는 이메일 본문을 대체하십시오. 나는 /tmp/mailfilter.sh에서 스크립트를 생성, 그리고 사용자라는 필터를 생성CentOS의 Postfix에 대기열 메일 필터를 추가하려고하면 getvs permission이 거부됩니다.

# ========================================================================== 
# service type private unpriv chroot wakeup maxproc command + args 
#    (yes) (yes) (yes) (never) (100) 
# ========================================================================== 
smtp  inet n  -  n  -  -  smtpd 
     -o content_filter=filter:dummy 

filter unix -  n  n  -  10  pipe 
    flags=Rq user=filter null_sender= 
    argv=/tmp/mailfilter.sh -f ${sender} -- ${recipient} 

지침에 따라 /etc/postfix/master.cf 파일을 변경하고 스크립트의 소유자했다.

Jun 7 03:01:53 localhost postfix/qmgr[31288]: 134D944A0673: from=<[email protected]>, size=894, nrcpt=1 (queue active) 
Jun 7 03:01:53 localhost pipe[31603]: fatal: pipe_command: execvp /tmp/mailfilter.sh: Permission denied 
Jun 7 03:01:53 localhost postfix/pipe[31562]: 134D944A0673: to=<[email protected]>, relay=filter, delay=8974, delays=8974/0/0/0.01, dsn=4.3.0, status=deferred (temporary failure. Command output: pipe: fatal: pipe_command: execvp /tmp/mailfilter.sh: Permission denied) 

특히 제가 믿고있어 관련하여

(temporary failure. Command output: pipe: fatal: pipe_command: execvp /tmp/mailfilter.sh: Permission denied) 

/tmp/mailfilter.sh chmod를 a를 가지고 + x와이다 : 나는 이메일을 전송하려고 할 때, 나는 다음과 같은 오류가 필터 소유. 난 그 안에있는 모든 것을 제거하려고했는데, 그것은 빈 파일 일 뿐이며, 나는 여전히 허가 거부 오류를 얻는다.

제가 누락 된 항목을 파악할 수 없습니다. 찾을 수있는 모든 권한을 설정했지만 Postfix는 내가 이해할 수없는 비밀스런 일을하고 있습니다.

답변

2

CentOS는 SELinux를 MAC 프레임 워크로 사용하므로 실행 파일의 유형을 올바르게 설정해야합니다. 보안 위반이 있는지 /var/log/audit/audit.log에서 확인할 수 있습니다. SELinux가 당신을 거부하는 경우, 당신은 root이 명령을 시도 할 수 있습니다 :

chcon -t postfix_pipe_exec_t /tmp/mailfilter.sh 

매뉴얼은 좋은 참고 것을 : http://linux.die.net/man/8/postfix_selinux