[Dovecot] Dovecot doesn't call pam_open_session, thus dodging pam_mkhomedir (fwd)
On Tue, 1 Feb 2005, it was written:
Nicolas Lopez wrote:
maildir and most of my accounts in LDAP. Since the accounts are created through a web interface on another server home directories on the mail server don't get created automatically. There's the handy pam module pam_mkhomedir.so to automagically create home directories, but unfortunatly Dovecot wasn't calling pam_open_session to run the session setup pam modules. I made a small patch to passdb-pam.c to call pam_open_session between pam_acct_mgmt and pam_get_item and now I my home dirs are automagically created and everyone is happy. So, I figured I'd share the little patch in case someone else finds it useful. My patch doesn't properly close the session which will probably iritate more advanced session modules that actually have something to clean up, oh well.
This patch closes the session.. but you will see many "opened session\n closed session"-lines on your log files. =) --cut-- --- src/auth/passdb-pam.c-org 2004-10-07 08:38:28.000000000 +0300 +++ src/auth/passdb-pam.c 2004-10-07 08:38:59.000000000 +0300 @@ -193,6 +193,18 @@ return status; } + if ((status = pam_open_session(pamh, 0)) != PAM_SUCCESS) { + *error = t_strdup_printf("pam_open_session(%s) failed: %s", + user, pam_strerror(pamh, status)); + return status; + } + + if ((status = pam_close_session(pamh, 0)) != PAM_SUCCESS) { + *error = t_strdup_printf("pam_close_session(%s) failed: %s", + user, pam_strerror(pamh, status)); + return status; + } + status = pam_get_item(pamh, PAM_USER, (linux_const void **)&item); if (status != PAM_SUCCESS) { *error = t_strdup_printf("pam_get_item(%s) failed: %s", --cut--
I am running dovecot-0.99.13 on FC2 with pam_mkhomedir, and it has been working fine. Not sure why you are having a problem. If I could just figure out how to get Exim to do the same, I'd be happy :-)
I think that Fedora has probably patched that version of dovecot which they are providing. -- Pasi Sjöholm
participants (1)
-
Pasi Sjoholm