Реализация pypolicyd-spf
поддержки в Postfix 3.3.1 наРХЕЛ 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
конфигурации.
Путь, который я изначально выбрал...Я думаю, что я скопировал это из какого-то руководства в сети.- в master.cf
интеграции было:
policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python /usr/libexec/postfix/policyd-spf
Было близко, но не совсем так: указанный путь к Python argv
не включал номер версии, поэтому возникали ошибки.
РЕШЕНИЕ:
Первый: Найдите, где живет Python. ВRHEL8.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
ЗАКЛЮЧЕНИЕ:
Не гонитесь за своим хвостом, исследуя проблемы с путями, и эта проблема не является специфичной дляРХЕЛ 8либо. Ошибка будет спрятана в абсолютном пути к Python, указанном вПолитика-spfконфигурация вmaster.cf