Postfix/Dovecot verwenden pam_mkhomedir nicht

Postfix/Dovecot verwenden pam_mkhomedir nicht

Ich habe Benutzer in einer externen Datenbank. Bisher - ssh, postfix, dovecot und einige andere - verwenden Einträge ohne Probleme.
Ich habeMaildirsinnen/Heimanwender]und wenn das Homedir existiert, ist alles in Ordnung - Senden, Empfangen.
Wenn das Homedir nicht existiertPostfix/Dovecotdruckt Fehler, ssh - nach dem Login Ergebnisse in brandneuen Homedir gemacht - es verwendetpam_mkhomedir.soEintrag in /etc/pam.d/[in wenigen Dateien].

Postfix/Dovecot- erfolgreich nutzenpam.dmit Datenbank-Backend, ignoriert aber Einträge mitpam_mkhomedir- Ich habe viele Hinweise gelesen, in welche Datei und an welcher Position sie platziert werden soll.
Vielleicht geht es darum, die Datei /etc/pam.d/[Datei] zu benennen??

Antwort1

Postfix ist nicht für die Erstellung von Home-Verzeichnissen verantwortlich. Postfix geht davon aus, dass die Home-Verzeichnisse bereits vorhanden sind, wenn der integrierte localZustellungsagenten verwendet wird.

Wenn Sie stattdessen Dovecot als LDA verwenden, verlässt sich Dovecot auch auf die Tatsache, dass das Home-Verzeichnis existiert.

Bei virtuellen Benutzern kann man die Variable lda_mailbox_autocreate = yesso setzen, dass Dovecot automatisch die benötigten Verzeichnisse anlegt.


Und da Dovecot (und Postfix) einen Benutzer für die E-Mail-Zustellung nicht „anmelden“, pam_mkhomedirwird dies nie ausgelöst. PAM wird in diesem Fall nur zur Authentifizierung verwendet.

Antwort2

Nur für alle, die wie ich zufällig beim Googeln nach dem Dovecot-Problem darauf stoßen: Dovecot kann verwendet werden, pam_mkhomedirwenn Sie es entsprechend einrichten. Die Dokumentation finden Sie unterhttp://wiki2.dovecot.org/PasswordDatabase/PAM#PAM_sessions

Auf einem typischen Debian/Ubuntu-System können Sie Folgendes einfügen /etc/pam.d/dovecot:

#%PAM-1.0

@include common-auth
@include common-account
@include common-session

(Das mkhomedirModul wird innerhalb aufgerufen common-session)

Und bearbeiten Sie dann /etc/dovecot/conf.d/auth-system.conf.extden Abschnitt mit folgendem Text:

passdb {
  driver = pam
  # [session=yes] ...
  #args = dovecot
}

um diese argssagen zu lassen:

  args = session=yes dovecot

verwandte Informationen