我有外部数据库中的用户。 到目前为止 – ssh,postfix,dovecot和其他一些 – 使用没有问题的条目。
我有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