Implementando pypolicyd-spf
suporte no Postfix 3.3.1 emRHEL 8, encontrou o seguinte erro em /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
Não pode ser um problema de caminho porque o usuáriopós-fixadonão tem caminho:
$ getent passwd postfix
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
Onde você conserta isso?
Responder1
PROBLEMA:
À primeira vista, parecia ser um problema de caminho, mas não era.Policyd-spfrequer umCORRETOcaminho absoluto para encontrar Python dentroPós-fixona master.cf
configuração.
O caminho que eu inicialmente tive-Acredito que copiei de algum HowTo em algum lugar da rede- na master.cf
integração foi:
policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python /usr/libexec/postfix/policyd-spf
Estava perto, mas sem charuto: o caminho para Python fornecido argv
não incluía o número da versão, então erros estavam sendo vomitados.
SOLUÇÃO:
Primeiro: Descubra onde o Python mora. EmRHEL 8.1, Eu vejo:
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
Segundo: Forneça umCorretocaminho absoluto para Python noPolicyd-spfconfiguração em /etc/postfix/master.conf
:
policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python3.6 /usr/libexec/postfix/policyd-spf
Finalmente, reinicie o Postfix:
systemctl restart postfix
CONCLUSÃO:
Não persiga o seu rabo investigando problemas de caminho, e este não é um problema específico paraRHEL 8qualquer. A falha será enterrada no caminho absoluto para Python especificado noPolicyd-spfconfigurar emmaster.cf