Postfix/Dovecot no usa pam_mkhomedir

Postfix/Dovecot no usa pam_mkhomedir

Tengo usuarios en base de datos externa. Hasta ahora (ssh, postfix, dovecot y algunos otros) utilizan entradas sin problemas.
Tengodirecciones de correoadentro/Usuario doméstico]y si el homedir existe, todo está bien, enviando, recibiendo.
Si homedir no existePostfijo/Palomarimprime error, ssh - después de iniciar sesión se genera un nuevo directorio de inicio creado - utilizapam_mkhomedir.soentrada en /etc/pam.d/[en pocos archivos].

Postfijo/Palomar- utilizar con éxitopam.dcon el backend de la base de datos pero ignora las entradas conpam_mkhomedir- He leído muchos consejos sobre en qué archivo y en qué posición colocarlo.
¿Quizás sea una cuestión de nombrar el archivo /etc/pam.d/[archivo]?

Respuesta1

Postfix no es responsable de la creación de directorios personales. Postfix asume que los directorios de inicio ya existen cuando se utiliza el agente de entrega integrado local.

Si, en cambio, utiliza Dovecot como LDA, Dovecot también dependerá del hecho de que exista el directorio de inicio.

Con los usuarios virtuales puedes configurar la variable lda_mailbox_autocreate = yespara que Dovecot cree automáticamente los directorios necesarios.


Y como Dovecot (y Postfix) no "inician sesión" con un usuario para la entrega de correo, pam_mkhomedirnunca se activa. En este caso, PAM sólo se utiliza para la autenticación.

Respuesta2

Solo para beneficio de otros que se topan con esto al buscar en Google el problema de Dovecot como acabo de hacer: Dovecot se puede utilizar pam_mkhomedirsi lo configura de esa manera. La documentación está enhttp://wiki2.dovecot.org/PasswordDatabase/PAM#PAM_sessions

En un sistema Debian/Ubuntu típico, puedes poner esto en /etc/pam.d/dovecot:

#%PAM-1.0

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

(El mkhomedirmódulo se invoca dentro common-session)

Y luego edite /etc/dovecot/conf.d/auth-system.conf.exten la sección que dice:

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

para que argsdigan:

  args = session=yes dovecot

información relacionada