Main.cfとmaster.cfの両方で-oプレフィックスを使用して同じ設定を指定できることがよくあります。
私の質問は、一方が他方をオーバーライドするかどうか、そしてその場合、同じ設定(異なる値を持つ)が両方で見つかった場合、どちらのファイルが優先されるかです。
たとえば、
smtpd_tls_auth_only=yes
main.cfで指定されましたが、
-o smtpd_tls_auth_only=no
master.cfで指定されましたが、postfixが注意を払うのはどれですか?
-o name=value
Override the named main.cf configuration
parameter.
main.cf
は、master.cfで定義されているすべてのサービスで使用されるデフォルト値を設定します。 master.cfの-oオプションは、サービスごとにこれらをオーバーライドできます。
基本的にmain.cfの設定は有効で、特定のPostfixデーモン(smtpd、trivial-rewrite、cleanup、pickupなど)のmaster.cfでオーバーライドされない限り、グローバルに使用されます。たとえば、main.cfでsmtp_tls_security_level = may
を指定して、smtpd
デーモンのlocalhostにバインドされた送信ポートに対して無効にすることができます。
localhost:submission inet n - - - - smtpd
-o smtpd_tls_security_level=none
ただし、外部IPアドレスの送信ポートについては、暗号化を適用できます。
1.2.3.4:submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o ...
特定の状況では、haveを使用してグローバル設定を上書きすることができます。たとえば、Amavisdを使用する場合、Amavisd smtpd
デーモンを介してメールを送信するときにアドレスマッピング(エイリアス拡張など)を無効にする必要があります。 。そうしないと、受信者が重複したメッセージを受信する可能性があります。
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 ...
もちろん、Amavis以外の通常の運用では、アドレスマッピングが必要なので、デフォルトではmain.cfで有効になっています。