Postfix master.cf 与 main.cf

Dal*_*son 13 postfix ubuntu-12.04

我经常看到可以在 main.cf 和 master.cf 中使用 -o 前缀指定相同的设置。

我的问题是,一个是否会覆盖另一个,如果是,如果在两者中找到相同的设置(具有不同的值),哪个文件优先?

例如,如果

smtpd_tls_auth_only=yes
Run Code Online (Sandbox Code Playgroud)

在 main.cf 中指定,但是

-o smtpd_tls_auth_only=no 
Run Code Online (Sandbox Code Playgroud)

是在master.cf中指定的,postfix会关注哪一个?

ada*_*ptr 14

正如记录的那样

-o name=value
                 Override  the  named  main.cf  configuration
                 parameter.
Run Code Online (Sandbox Code Playgroud)

main.cf设置 master.cf 中定义的所有服务使用的默认值;master.cf 中的 -o 选项可以在每个服务的基础上覆盖这些。


daf*_*aff 6

基本上,main.cf 中的设置是有效的并在全局范围内使用,除非它们在 master.cf 中被特定 Postfix 守护进程(smtpd、trivial-rewrite、cleanup、pickup 等)覆盖。例如,您可以smtp_tls_security_level = may在 main.cf 中指定并为smtpd守护进程绑定到 localhost 的提交端口禁用它:

localhost:submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=none
Run Code Online (Sandbox Code Playgroud)

但是对于外部 IP 地址上的提交端口,您可以强制加密:

1.2.3.4:submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o ...
Run Code Online (Sandbox Code Playgroud)

在某些情况下,您可能必须覆盖全局设置,例如在使用 Amavisd 时,通过 Amavisdsmtpd守护程序发送邮件时需要禁用地址映射(别名扩展等)。否则收件人可能会收到重复的邮件:

127.0.0.1:10025 inet    n       -       -       -       -       smtpd
  -o content_filter=
  -o ...
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
  -o ...
Run Code Online (Sandbox Code Playgroud)

当然,在常规操作期间,在 Amavis 之外,您需要地址映射,因此默认情况下它们在 main.cf 中启用。