Hi! I'm struggling with pam_mkhomedir. Accounts are stored in LDAP (CentOS Directory Server AKA 389 Directory Server). I am not pre-creating user home directories, and would like to use the pam_mkhomedir module to create the directories on the fly, when a user is authenticated via pop3s. pam_mkhomedir is working for interactive (e.g. SSH logins), but I don't want to require users to login interactively just so their home directory is created.
Dovecot version: 1.0.7 dovecot -n output: protocols: pop3s >ssl_cert_file: /etc/pki/tls/certs/mail.ourdomain.tld.pem >ssl_key_file: /etc/pki/tls/private/mail.ourdomain.tld.pem >login_dir: /var/run/dovecot/login >login_executable: /usr/libexec/dovecot/pop3-login >mail_privileged_group: mail >mail_location: mbox:~/mail:INBOX=/var/spool/mail/%u >mail_executable: /usr/libexec/dovecot/pop3 >mail_plugin_dir: /usr/lib64/dovecot/pop3 >pop3_client_workarounds: oe-ns-eoh, outlook-no-nuls >auth default: > verbose: yes > debug: yes > passdb: > driver: pam > args: session=yes dovecot > userdb: > driver: ldap > args: /etc/dovecot-ldap.conf /etc/pam.d/dovecot: authsufficientpam_ldap.so >authrequiredpam_deny.so > > >accountsufficientpam_ldap.so >accountrequiredpam_deny.so > > >passwordsufficientpam_ldap.so use_authtok >password requiredpam_deny.so > > >sessionoptionalpam_ldap.so >sessionrequiredpam_mkhomedir.so skel=/etc/skel umask=0022 > >With the pam_mkhomedir.so line, I see the following in maillog: Jul 14 16:14:26 mail dovecot: auth(default): client in: AUTH 1 PLAIN service=POP3 secured lip=xxx.xxx.xxx.xxx rip=xxx.xxx.xxx.xxx resp=<hidden> Jul 14 16:14:26 mail dovecot: auth(default): client out: CONT 1 Jul 14 16:14:26 mail dovecot: auth(default): client in: CONT<hidden> Jul 14 16:14:26 mail dovecot: auth(default): pam(joe.schmoe,xxx.xxx.xxx.xxx): lookup service=dovecot Jul 14 16:14:26 mail dovecot: auth(default): new auth connection: pid=25209 Jul 14 16:14:26 mail dovecot: auth(default): pam(joe.schmoe,xxx.xxx.xxx.xxx): pam_open_session() failed: Permission denied Jul 14 16:14:28 mail dovecot: auth(default): client out: FAIL 1 user=joe.schmoe Jul 14 16:14:28 mail dovecot: auth(default): client in: AUTH 2 PLAIN service=POP3 secured lip=xxx.xxx.xxx.xxx rip=xxx.xxx.xxx.xxx resp=<hidden> With the pam_mkhomedir.so line commented out: Jul 14 16:15:27 mail dovecot: auth(default): client out: CONT 1 Jul 14 16:15:27 mail dovecot: auth(default): client in: CONT<hidden> Jul 14 16:15:27 mail dovecot: auth(default): pam(joe.schmoe,xxx.xxx.xxx.xxx): lookup service=dovecot Jul 14 16:15:27 mail dovecot: auth(default): client out: OK 1 user=joe.schmoe Jul 14 16:15:27 mail dovecot: auth(default): master in: REQUEST 1 25286 1 Jul 14 16:15:27 mail dovecot: auth(default): ldap(joe.schmoe,xxx.xxx.xxx.xxx): user search: base=ou=People, dc=ourdomain, dc=tld scope=subtree filter=(&(objectClass=posixAccount)(uid=joe.schmoe)) fields=homeDirectory,uidNumber,gidNumber Jul 14 16:15:27 mail dovecot: auth(default): master out: USER 1 joe.schmoe home=/home/joe.schmoe uid=1057 gid=1000 Jul 14 16:15:27 mail dovecot: POP3(joe.schmoe): mkdir_parents(/home/joe.schmoe/mail) failed: Permission denied Jul 14 16:15:27 mail dovecot: POP3(joe.schmoe): Failed to create storage with data: mbox:/home/joe.schmoe/mail:INBOX=/var/spool/mail/joe.schmoe Jul 14 16:15:27 mail dovecot: child 25292 (pop3) returned error 89 Jul 14 16:15:27 mail dovecot: pop3-login: Login: user=<joe.schmoe>, method=PLAIN, rip=xxx.xxx.xxx.xxx, lip=xxx.xxx.xxx.xxx, TLS Jul 14 16:19:05 mail dovecot: auth(default): client in: AUTH 1 PLAIN service=POP3 secured lip=xxx.xxx.xxx.xxx rip=xxx.xxx.xxx.xxx resp=<hidden> Any Suggestions? Thank you!