Postfix Policyd-spf 구성의 Python 오류: "경고: 서버 private/policyd-spf와 통신하는 데 문제가 있습니다."

Postfix Policyd-spf 구성의 Python 오류: "경고: 서버 private/policyd-spf와 통신하는 데 문제가 있습니다."

pypolicyd-spfPostfix 3.3.1에서 지원 구현RHEL 8, 에서 다음 오류가 발생했습니다 /var/log/maillog.

spawn[xxxx]: fatal: spawn_comand: execvp /usr/bin/python: No such file or directory
postfix/spawn[xxxx]: warning: command /usr/bin/python exit status 1
spawn[xxxx]: fatal: spawn_comand: execvp /usr/bin/python: No such file or directory
postfix/spawn[xxxx]: warning: command /usr/bin/python exit status 1
postfix/smtpd[xxxx]: warning: problem talking to server private/policyd-spf: Connection reset by peer

사용자이므로 경로 문제가 될 수 없습니다.접미사경로가 없습니다:

$ getent passwd postfix
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

이거 어디서 고치나요?

답변1

문제:

처음에는 경로 문제인 것처럼 보였지만 그렇지 않았습니다.정책-spf필요하다옳은Python을 찾는 절대 경로접미사구성 에서 master.cf.

처음에 내가 가지고 있던 길 -내 생각에는 인터넷 어딘가에 있는 HowTo에서 복사한 것 같습니다.- master.cf통합 내용은 다음과 같습니다.

policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python /usr/libexec/postfix/policyd-spf

비슷했지만 시가는 없었습니다. 제공된 Python의 경로에 argv버전 번호가 포함되지 않아 오류가 발생했습니다.

해결책:

첫 번째: 파이썬이 사는 곳을 찾아보세요. ~ 안에RHEL 8.1, 알겠어요:

whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6m /usr/lib/python3.6 /usr/lib64/python3.6 /usr/include/python3.6m /usr/share/man/man1/python.1.gz

두번째: 공급옳은Python의 절대 경로정책-spf구성 /etc/postfix/master.conf:

policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python3.6 /usr/libexec/postfix/policyd-spf

마지막으로, Postfix를 다시 시작하세요:

systemctl restart postfix

결론:

경로 문제를 조사하면서 꼬리를 쫓지 마십시오. 이는 특정 문제가 아닙니다.RHEL 8어느 하나. 오류는 다음에 지정된 Python의 절대 경로에 묻힐 것입니다.정책-spf구성master.cf

관련 정보