popa3d + pam_pwdfile + патч(выкладывал в @FUG) - использую сам, очень доволен.
Т.к. много народу попросило, выкладываю свой постинг в @uafug сюда: Прелюдия: попытка прикрутить popa3d к pam_pwdfile/freebsd5.1. Неудача. Пачка breakpoint'ов показала, что он делает getpwnam PAM'овского пользователя. В случае, если такого пользователя нет (а его в 99,99% нет в master.passwd, и не должно быть), естественно getpwnam возвращает ошибку. Не сдалана правда проверка на существование самого виртуального пользователя. diff'ы: *** auth_pam.c.orig Sat Apr 12 17:14:33 2003 --- auth_pam.c Fri Oct 10 11:54:27 2003 *************** *** 190,199 **** --- 190,203 ---- if (pam_end(pamh, PAM_SUCCESS) != PAM_SUCCESS || !template) { *known = is_user_known(user); return NULL; } + # if AUTH_PAM + template = PAM_VIRTUAL_USER; + # endif + if ((pw = getpwnam(template))) { memset(pw->pw_passwd, 0, strlen(pw->pw_passwd)); *known = 1; } endpwent(); *** params.h.orig Sat Apr 12 17:16:01 2003 --- params.h Fri Oct 10 12:06:01 2003 *************** *** 150,159 **** --- 150,160 ---- #define AUTH_PAM_USERPASS 0 #define USE_LIBPAM_USERPASS 0 #if AUTH_PAM || AUTH_PAM_USERPASS #define AUTH_PAM_SERVICE POP_SERVER + #define PAM_VIRTUAL_USER "virtuser" #endif #endif В итоге, если задефайнен AUTH_PAM, то мы будем переключаться только на виртуального пользователя при работе с мейлбоксом, не смотря на наличие аналогичного пользователя по getpwnam(). -- UKR.NET Postmaster =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message