El error típico:
imap(usuario)<1004392><tVwb4s0DteE940B>: Error: Mailbox Sent2correos: open() failed with mbox: Permission denied
Si alguna vez te has topado con este mensaje en tu servidor Postfix + Dovecot, la solución suele ser tan simple como eficaz: reajustar permisos.
En esta entrada veremos por qué ocurre, cómo arreglarlo paso a paso y qué hacer para blindarte ante futuros sustos.
1. ¿Qué está pasando?
Dovecot abre los buzones con los UID/GID del usuario que inicia sesión.
Si un fichero — en nuestro ejemplo, Sent2correos
— pertenece a root y está a 0600
, ningún proceso IMAP podrá leerlo ni bloquearlo:
-rw------- 1 root root 20539 jun 7 2024 /home/usuario/mail/Sent2correos
El resultado es un rotundo Permission denied.
2. Solución rápida: chown + chmod
- Cambiar propietario/grupo
sudo chown usuario:usuario /home/usuario/mail/Sent2correos
- Asegurar permisos adecuados (600 es perfecto para mbox):
sudo chmod 600 /home/usuario/mail/Sent2correos
Inicia sesión por IMAP y la bandeja debería abrirse sin quejas.
3. ¿Cómo terminó a nombre de root?
- Copias o migraciones manuales ejecutadas como root (
cp
,rsync
,mc
…). - Entrega local mal configurada: Postfix invoca
/usr/bin/mail
oprocmail
(que corren como root) en lugar dedovecot-lda
o LMTP.
Compruébalo:
postconf mailbox_command # ¿aparece procmail o mail?
postconf virtual_transport # ¿algo distinto a lmtp:unix:private/dovecot-lmtp?
Configuración recomendada
# /etc/postfix/main.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
# o, para buzones del sistema:
mailbox_transport = dovecot
# /etc/postfix/master.cf (extracto)
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}
Así la entrega se hace con el UID real del destinatario, evitando crear ficheros “huérfanos”.
4. Busca y corrige otros buzones comprometidos
Para un usuario:
find /home/usuario/mail -maxdepth 1 -type f ! -user usuario -ls
sudo chown -R usuario:usuario /home/usuario/mail
Para muchos usuarios, un pequeño script que recorra /home
o tu carpeta vmail
es tu amigo.
5. Buenas prácticas si sigues con mbox
- Revisa bloqueos:
mbox_write_locks = fcntl dotlock mbox_read_locks = fcntl
- Monitorea logs con
journalctl -u dovecot
o/var/log/maillog
. - Considera migrar a Maildir: menos propenso a problemas de bloqueo y más apto para acceso concurrente.
6. Comprobaciones finales
- Conéctate por IMAP y copia un mensaje a Sent2correos.
- Verifica que no aparezcan nuevas líneas Permission denied ni Failed to lock mailbox.
- Automatiza un script periódico (cron o systemd-timer) que avise si detecta buzones con UID/GID incorrectos.
Conclusión
El error “Mailbox … Permission denied” casi siempre se soluciona corrigiendo propietarios y revisando la cadena de entrega de correo.
Con unos pocos comandos y buenas prácticas, tu servidor Postfix + Dovecot quedará libre de buzones rebeldes y listo para seguir enviando y recibiendo sin sobresaltos.
¿Tienes dudas sobre la migración a Maildir, la integración LMTP o cómo automatizar el chequeo de permisos? ¡Déjalas en los comentarios y seguimos afinando servidores!