
У меня есть пользователи во внешней базе данных. Пока что - ssh, postfix, dovecot и некоторые другие - используют записи без проблем.
У меня естьMaildirsвнутри/home/[пользователь]и если homedir существует - все ок - отправка, получение.
Если homedir не существуетПостфикс/Голубятнявыводит ошибку, ssh - после входа в систему создается совершенно новый домашний каталог - он используетpam_mkhomedir.soзапись в /etc/pam.d/[в нескольких файлах].
Постфикс/Голубятня- успешно использоватьпам.дс базой данных, но игнорирует записи сpam_mkhomedir- Я прочитал много подсказок, в каком файле и на какой позиции его разместить.
Может быть, дело в названии файла /etc/pam.d/[file] ??
решение1
Postfix не отвечает за создание домашних каталогов. Postfix предполагает, что домашние каталоги уже существуют при использовании встроенного local
агента доставки.
Если вместо этого вы используете Dovecot в качестве LDA, то Dovecot также полагается на тот факт, что домашний каталог существует.
С помощью виртуальных пользователей вы можете задать переменную lda_mailbox_autocreate = yes
, чтобы Dovecot автоматически создавал необходимые каталоги.
И поскольку Dovecot (и Postfix) не «логинят» пользователя для доставки почты, то pam_mkhomedir
никогда не срабатывает. В этом случае PAM используется только для аутентификации.
решение2
Просто для пользы других, кто наткнется на это, гугля проблему Dovecot, как я только что: 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