
No puedo encontrar un tutorial completo sobre Maildir y las carpetas donde reside el propietario y los permisos, si los hay y ya lo encontró, compártalo.
De todos modos, me pregunto si hay una manera de obtener errores relacionados con la configuración de Maildir con Postfix, Dovecot log o cualquier otra herramienta, algo así como (oye, esta carpeta tiene un propietario incorrecto o faltan permisos o incluso si no está creada)
Sé que me vas a decir: envíanos tu carpeta y configuración, pero me gustaría saber cómo depurar esto para otros casos futuros.
Lo que realmente me gustaría saber es, por ejemplo: Mis usuarios virtuales tienen /home/user/domain/usermail/Maildir
¿Qué permisos y propietario deben tener: inicio, usuario, dominio, correo de usuario y Maildir?
Tenga en cuenta que lo que más me importa es APRENDER A DEPURAR problemas relacionados con los permisos de las carpetas.
y tengo en dovecot.conf:
verbose_ssl=yes
mail_debug=yes
auth_debug=yes
auth_verbose=yes
y en master.cf postfix conf en estas líneas
smtp inet n - n - - smtpd -v
submission inet n - n - - smtpd -v
Por cierto, ¿el permiso drwxr-s--- está bien con la carpeta de correo del usuario?
Respuesta1
Para los usuarios virtuales, debe crear una cuenta de usuario del sistema y hacer que sea propietaria de los correos electrónicos, y luego configurar el UID y GID de ese usuario en Postfix y Dovecot.
Aquí están las partes relevantes de mi dovecot.conf
:
userdb {
driver = static
args = uid=8 gid=12 home=/var/spool/mail/%n
}
mail_location = maildir:~
mail_uid = 8
mail_gid = 12
Userdb es un archivo tipo passwd realmente simple con solo nombres de usuario y contraseñas y todo lo demás está codificado en el userdb {...}
bloque real anterior, por lo que UID y GID, y la "casa" del usuario están /var/spool/mail
y comienzan con cualquier inicio de sesión que se haya utilizado (asumiendo se definió de antemano en el archivo passwd; de lo contrario, se denegará el acceso).
mail_location
le dice que los correos están en formato maildir y ubicados en ~
(inicio), que corresponde a la ruta "inicio" que obtuvo de la base de datos de usuario anterior.
mail_gid/uid
nuevamente establezca la propiedad de los correos al usuario del sistema correspondiente que debería ser propietario de los correos; Obviamente debería ser lo mismo en Postfix.
Sufijo main.cf
:
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = hash:/etc/postfix/vmailboxes
virtual_uid_maps = static:8
virtual_gid_maps = static:12
El mismo directorio base que Dovecot, solo /etc/postfix/vmailboxes
tiene la sintaxis <mail user account> <mail directory>/
, por ejemplo, si contiene, serverfault serverfault/
le dice a Postfix que cualquier correo recibido serverfault@domain
terminará en /var/spool/mail/serverfault
, que corresponde a donde Dovecot los buscará cuando inicie sesión con el serverfault
nombre de usuario.
Nuevamente debemos virtual_uid/gid_maps
establecer la propiedad de los correos electrónicos para el usuario del sistema que elegimos/creamos de antemano, debería ser el mismo que Dovecot.
No conozco ninguna opción particular de registro necesaria para mostrar errores. Si estropeo los permisos de la carpeta de correo virtual, mi Dovecot comienza a gritar en los registros sin ninguna configuración especial (no hay opciones relacionadas con el registro en mi dovecot.conf). :
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username/) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username) failed: Permission denied
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: opendir(/var/spool/mail/username) failed: Permission denied (euid=8(mail) egid=12(mail) missing +r perm: /var/spool/mail/username)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: opendir(/var/spool/mail/username) failed: Permission denied (euid=8(mail) egid=12(mail) missing +r perm: /var/spool/mail/username)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username/) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username) failed: Permission denied
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:10 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:10 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Lo mismo ocurre con Postfix cuando intento enviar un correo electrónico con los permisos en mal estado:
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: warning: maildir access problem for UID/GID=8/12: create maildir file /var/spool/mail/username/tmp/1425729405.P2736.sanctuary: Permission denied
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: warning: perhaps you need to create the maildirs in advance
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: E752F186: to=<username@sanctuary>, relay=virtual, delay=0.05, delays=0.03/0.01/0/0.01, dsn=4.2.0, status=deferred (maildir delivery failed: create maildir file /var/spool/mail/username/tmp/1425729405.P2736.sanctuary: Permission denied)
Respuesta2
Supongo que está utilizando dovecot-lda
para entregar sus correos a su Maildir. IIRC dovecot-lda
le muestra información detallada sobre los permisos que le faltan.
dovecot-lda
no tiene acceso a la instalación de registro global de dovecot. Por lo tanto, debe configurar el registro por dovecot-lda
separado. Por lo tanto tienes que buscar "protocol lda {" en tu configuración de dovecot y cambiar los parámetros log_path
según info_log_path
tus necesidades. Si coloca aquí archivos, dovecot-lda debería poder escribirlos y si desea usar syslog (también conocido como dejar los parámetros vacíos), debe modificar el permiso de /dev/log.
La wiki del palomar tiene más detalles:http://wiki2.dovecot.org/LDA
Por cierto: no necesita smtp ni envío de registro detallado en postfix si desea averiguar cuál es el problema con la entrega de correo local.