Postfix/Dovecot は pam_mkhomedir を使用しません

Postfix/Dovecot は pam_mkhomedir を使用しません

外部データベースにユーザーがいます。これまでのところ、ssh、postfix、dovecot、その他いくつかのエントリは問題なく使用されています
メールディレクトリ内部/home/[ユーザー]ホームディレクトリが存在する場合、送信、受信はすべて正常です。
ホームディレクトリが存在しない場合はポストフィックス/Dovecotエラーを出力します。ssh - ログイン後、新しいホームディレクトリが作成されます - 使用されますpam_mkhomedir.so/etc/pam.d/[いくつかのファイル内]のエントリ。

ポストフィックス/Dovecot- うまく使用するパムデータベースバックエンドではあるが、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

関連情報