Dovecot:如何从 conf.d/99-custom.conf 中的 dovecot.conf 取消设置命名空间配置?

Dovecot:如何从 conf.d/99-custom.conf 中的 dovecot.conf 取消设置命名空间配置?

/etc/dovecot/dovecot.confLinux(Ubuntu 16.04)发行版附带的我的版本有一个命名空间部分:

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

我需要从配置中删除整个部分,但我需要在文件中执行此操作,因为我希望此修改对于发行版附带/etc/dovecot/conf.d/99-custom.conf的自动更新能够保持稳定。dovecot.conf

如何在 中的稍后时间点“取消设置”较早的命名空间配置99-custom.conf?所需的行为是 dovecot 的配置,该配置是由于 中的命名空间通道完全删除而导致的dovecot.conf。基本上,我想在不修改 的情况下实现这一点dovecot.conf

谢谢。

答案1

您的信息似乎dovecot.conf已被修改。

dovecot-coreUbuntu 16.04 LTS 软件包用于处理配置文件,因此您的系统上应该有ucf一份发行版当前“出厂默认”的副本。软件包提供的所有 Dovecot 配置文件也应该如此。(软件包的脚本中有相当多的脚本来处理这些配置文件。)dovecot.conf/usr/share/dovecot/dovecot.confpostinst

我刚刚下载并解压16.04 LTS 的 dovecot-core并检查了默认配置文件。它根本没有命名空间条目,实际上有一个注释,确认默认情况下它不应该有活动命名空间或插件设置:

# 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尝试保留本地配置更改,因此,如果您已从早期主要版本升级此系统,则您的命名空间配置实际上可能是在本地完成的配置,或者是迄今为止保存完好的早期版本的残余。

在我使用 Dovecot 的 Debian 10 系统上,/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 版本差异很大,因此我们构建了自己的软件包。许多在 Plesk 环境中没有多大意义的 Dovecot 功能被忽略(提供的版本是在没有支持的情况下构建的)。

因此,您可能会得到一个实际上部分硬编码和/或在其他方面也受到限制的 Dovecot 配置。似乎 Plesk 提供的 Dovecot 配置可能经过优化,主要或完全通过托管控制面板进行管理。

但是,有了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改为。”

请明智地使用这些知识,因为如果不经过深思熟虑地使用,它也会以惊人的方式让你搬起石头砸自己的脚。

相关内容