我经常看到可以在 main.cf 和 master.cf 中使用 -o 前缀指定相同的设置。
我的问题是,一个是否会覆盖另一个?如果是,如果在两个文件中都找到相同的设置(具有不同的值),则优先考虑哪个文件?
例如,如果
smtpd_tls_auth_only=yes
在 main.cf 中指定,但是
-o smtpd_tls_auth_only=no
master.cf中指定了,postfix要注意哪一个?
我经常看到可以在 main.cf 和 master.cf 中使用 -o 前缀指定相同的设置。
我的问题是,一个是否会覆盖另一个?如果是,如果在两个文件中都找到相同的设置(具有不同的值),则优先考虑哪个文件?
例如,如果
smtpd_tls_auth_only=yes
在 main.cf 中指定,但是
-o smtpd_tls_auth_only=no
master.cf中指定了,postfix要注意哪一个?
据记载,
main.cf
设置 master.cf 中定义的所有服务使用的默认值;master.cf 中的 -o 选项可以在每个服务的基础上覆盖这些。基本上 main.cf 中的设置是有效的并且全局使用,除非它们在 master.cf 中被特定的 Postfix 守护进程(smtpd、trivial-rewrite、cleanup、pickup,...)覆盖。例如,您可以在 main.cf 中指定并为守护进程
smtp_tls_security_level = may
绑定到 localhost 的提交端口禁用它:smtpd
但是对于外部 IP 地址上的提交端口,您可以强制加密:
在某些情况下,您可能必须覆盖全局设置,例如,当使用 Amavisd 时,地址映射(别名扩展等)需要在通过 Amavisd
smtpd
守护程序发送邮件时被禁用。否则收件人可能会收到重复的邮件:当然,在 Amavis 之外的常规操作期间,您需要地址映射,因此默认情况下它们在 main.cf 中启用。