Postfix / Dovecot不使用pam_mkhomedir

我有外部数据库中的用户。 到目前为止 – ssh,postfixdovecot和其他一些 – 使用没有问题的条目。
我有Maildirs / home / [user]里面 ,如果homedir存在 – 一切正常 – 发送,接收。
如果homedir不存在Postfix / Dovecot会输出错误,ssh – login后会产生全新的homedir – 它使用/etc/pam.d/ [在几个文件中]的pam_mkhomedir.so条目。

Postfix / Dovecot – 成功使用pam.d与数据库后端,但忽略与pam_mkhomedir条目 – 我已经读了很多提示在哪个文件,并在什么位置放置它。
也许这是一个命名文件/etc/pam.d/[file]的问题?

Postfix不负责创build主目录。 Postfix在使用内置的local交付代理时假定主目录已经存在。

如果你使用Dovecot作为LDA,那么Dovecot也依赖于主目录的存在。

使用虚拟用户,您可以设置variableslda_mailbox_autocreate = yes以便Dovecot自动创build必要的目录。


由于Dovecot(和Postfix)不“login”用户邮件传递, pam_mkhomedir永远不会被触发。 在这种情况下,PAM仅用于身份validation。

只是为了其他人的利益,通过用GooglesearchDovecot这个问题偶然发现:如果你这样设置,Dovecot可以使用pam_mkhomedir 。 文档位于http://wiki2.dovecot.org/PasswordDatabase/PAM#PAM_sessions

在典型的Debian / Ubuntu系统上,你可以把它放在/etc/pam.d/dovecot

 #%PAM-1.0 @include common-auth @include common-account @include common-session 

mkhomedir模块在common-session调用)

然后编辑/etc/dovecot/conf.d/auth-system.conf.ext部分中的内容:

 passdb { driver = pam # [session=yes] ... #args = dovecot } 

有这些args说:

  args = session=yes dovecot