Я часто вижу, что одни и те же настройки можно указать как в 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; Параметры -o в master.cf могут отменять их для каждой службы.
В основном настройки в main.cf действительны и используются глобально, если они не переопределены в master.cf для определенных демонов Postfix (smtpd, trivial-rewrite, cleanup, pickup, ...). Вы можете указать, например, smtp_tls_security_level = may
в main.cf и отключите его для порта отправки, привязанного к localhost для smtpd
демон:
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 ...
В определенных ситуациях вы можете иметь чтобы переопределить глобальную настройку, например, при использовании 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.