配置Ubuntu邮件服务器,Ubuntu Server 10.04,安装postfix,安装dovecot-postfix,修改dovecot.conf配置文件,启用disable_plaintext_auth无效,经研究发现需要修改conf.d目录下的配置文件……
Ubuntu官方文档这部分的配置叙述得并不详细,相关信息是在一篇日文博客<ubuntu 10.04 をメールサーバーに (Dovecot 編)>中找到的。
9.10 以前の ubuntu で提供されている Dovecot では /etc/dovecot/dovecot.conf ファイルを直接編集するしかなかった。
どのバージョンからかは調べていないが、少なくとも 10.04 の Dovecot では include_try ディレクティブが導入され、/etc/dovecot/dovecot.conf ファイルの中で適宜この include_try ディレクティブを使って、/etc/dovecot/conf.d ディレクトリにある拡張子が .conf のファイルと、/etc/dovecot/auth.d ディレクトリにある拡張子が .auth のファイルを読み込むようになった。
ただし、10.04 になった今でも一部の設定については /etc/dovecot/dovecot.conf ファイルを直接編集する必要がある。
9.10以前的ubuntu提供的Dovecot只能直接编辑/etc/dovecot/dovecot.conf文件。
没有调查从哪个版本开始,至少10.04的Dovecot导入了inlude_try指令,/etc/dovecot/conf.d文件中使用include_try指令,读取/etc/dovecot/conf.d目录中扩展名为.conf的文件和/etc/dovecot/auth.d目录中扩展名为.auth的文件。
但是,目前10.04中的一部分设定仍然需要直接编辑/etc/dovecot/dovecot.conf文件。
打开dovecot.conf文件,搜索include_try,可以发现以下代码
# Optional configurtaions, don't give an error if it's not found:
!include_try /etc/dovecot/conf.d/*.conf
因为是直接安装dovecot-postfix这个包,在/etc/dovecot/conf.d/目录下已经有一个经过配置的01-dovecot-postfix.conf文件,将disable_plaintext_auth设置添加到这个文件即可生效。没试过分别安装postfix和dovecot再整合是什么情况。
Ubuntu上的其它软件也启用了include_try,比如Apache:<Apache configuration files on Ubuntu>
Google了一下,CentOS的一些配置中也涉及到了conf.d目录。
Google关于Linux的include_try和Optional configurations的信息,返回的结果很少,难道这是很基础的Linux概念?
引入include_try的优点是:可以保持初始的.conf文件,conf.d目录下可以导入多个配置文件,可以将配置分配在不同的文件中,可以快速地隔离出一个错误的配置修改。
缺点方面,多个配置文件增加了复杂度。目前Ubuntu有些配置需要修改主配置文件,有些配置则只能添加在conf.d目录下的配置文件中才能生效。同时因为很多文档都基于单个conf配置文件编写,文档不能跟上更是增加了配置过程中的混乱。