Мой /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
вместо."
Пожалуйста, используйте эти знания с умом, поскольку они также позволяют вам зрелищно выстрелить себе в ногу, если использовать их без должного внимания.