Назад | Перейти на главную страницу

Dovecot: Как отключить конфигурацию пространства имен из dovecot.conf в conf.d / 99-custom.conf?

Мой /etc/dovecot/dovecot.conf который поставляется с дистрибутивом Linux (Ubuntu 16.04), имеет раздел пространства имен:

namespace inbox { 
  ...
  mailbox Sent {
    ...
  }
  ...
}

Мне нужно удалить весь этот раздел из конфигурации, но мне нужно сделать это в таком файле, как /etc/dovecot/conf.d/99-custom.conf потому что я хочу, чтобы эта модификация была устойчивой к автоматическим обновлениям dovecot.conf поставляется дистрибутивом.

Как мне "отключить" более раннюю конфигурацию пространства имен в более поздний момент в 99-custom.conf? Желаемое поведение - это конфигурация dovecot, которая является результатом полного удаления прохождения пространства имен в dovecot.conf. В принципе, я хотел бы добиться этого, не изменяя dovecot.conf.

Спасибо.

Похоже, твой dovecot.conf уже изменен.

В dovecot-core пакет Ubuntu 16.04 LTS использует ucf для обработки файлов конфигурации, поэтому копия текущего «заводского значения по умолчанию» дистрибутива dovecot.conf должен быть в /usr/share/dovecot/dovecot.conf в вашей системе. То же самое должно быть верно практически для всех файлов конфигурации Dovecot, поставляемых в пакете. (Для обработки этих файлов конфигурации в postinst сценарий пакета.)

Я только что скачал и распаковал dovecot-ядро 16.04 LTS и проверил файл конфигурации по умолчанию. У него вообще нет записей пространства имен, и на самом деле есть комментарий, который подтверждает, что по умолчанию в нем не должно быть активного пространства имен или настроек плагина:

# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.

ucf пытается сохранить локальные изменения конфигурации, поэтому возможно, что ваша конфигурация пространства имен на самом деле является либо чем-то, что было сделано локально, либо остатком от еще более ранней версии, которая хорошо сохранилась до сих пор, если вы обновили эту систему с более ранний основной выпуск.

В моей системе Debian 10 с использованием Dovecot /etc/dovecot/dovecot.conf на 100% идентичен /usr/share/dovecot/dovecot.conf. Ни один из них не содержит разделов пространства имен.

Вам, вероятно, следует бежать diff -u /usr/share/dovecot/dovecot.conf /etc/dovecot/dovecot.conf чтобы найти различия между "заводской конфигурацией по умолчанию" дистрибутива и вашей текущей конфигурацией. Возможно, это просто объявление пространства имен, которое было помещено в dovecot.conf вместо того /etc/dovecot/conf.d/99-custom.conf назад, когда система была новой, и вы не знали лучшего способа.

Или, возможно, вы обнаружите, что есть много различий, вероятно, потому, что текущие dovecot.conf был перенесен из более ранней версии? В этом случае может показаться, что вы понесли некоторую техническую задолженность по крайней мере за один цикл выпуска, и сегодня может быть хороший день, чтобы начать избавляться от него, тщательно разбирая различия и перемещая локальные настройки в 99-custom.conf.


При использовании панели управления хостингом, такой как Plesk, конфигурация может существенно отличаться. Документация Plesk говорит об использовании Dovecot:

Из-за большого разнообразия версий Dovecot в репозиториях поставщиков ОС мы создаем собственные пакеты. Многие функции Dovecot, которые не имеют особого смысла в контексте Plesk, не учитываются (предоставленная версия создана без их поддержки).

Таким образом, вы можете получить конфигурацию Dovecot, которая частично жестко запрограммирована и / или ограничена другими способами. Похоже, что конфигурация Dovecot, предоставленная Plesk, может быть оптимизирована для администрирования в основном или исключительно через панель управления хостингом.

Однако с dpkg система упаковки, есть функция, которую вы можете использовать в подобных ситуациях.

sudo dpkg-divert --local --rename --add /etc/dovecot/dovecot.conf

Эта команда заставит управление пакетами переименовать существующий dovecot.conf файл в /etc/dovecot/dovecot.conf.distrib и он будет продолжать перенаправлять любые будущие версии предоставленного пакетом файла на новое имя так что фактический dovecot.conf больше не управляется пакетами. После этой команды вы можете / должны запустить:

sudo cp /etc/dovecot/dovecot.conf.distrib /etc/dovecot/dovecot.conf

а затем вы можете манипулировать dovecot.conf как вам будет угодно, будьте уверены, что любые изменения, которые будут применены в управлении пакетами, будут dovecot.conf.distrib вместо. Фактически, вы сказали dpkg что "когда в пакете говорится о dovecot.conf, это на самом деле означает dovecot.conf.distrib вместо."

Пожалуйста, используйте эти знания с умом, поскольку они также позволяют вам зрелищно выстрелить себе в ногу, если использовать их без должного внимания.