[Résolu] Emails ne fonctionnent plus

Matériel: serveur dédié kimsufi
YunoHost version: 2.7.12

Description de mon problème

Roundcube ne fonctionne plus. (Je ne sais pas depuis quand car je ne m’en sers pas)
Pour tester une application, j’ai eu besoin d’envoyer un email et j’ai voulu me connecter à Roundcube. Quand je m’y connecte, j’ai le message suivant :

Erreur de serveur : STATUS: Internal error occurred. Refer to server log for more information. [2018-05-20 23:29:21]

Dans /var/log/mail.err, j’ai :

May 20 22:20:06 yunohost dovecot: lda(toto@example.org): Error: open(/var/mail/toto/maildirsize) failed: Permission denied
May 20 22:20:06 yunohost dovecot: lda(toto@example.org): Error: Internal quota calculation error
May 20 22:20:06 yunohost dovecot: lda(toto@example.org): Error: open(/var/mail/toto/tmp/1526847606.M644323P27426.yunohost) failed: Permission denied
May 20 22:20:06 yunohost dovecot: lda(toto@example.org): Error: sieve: msgid=<6a94ed8b44a4124fe89ffebfa3840401@lbc.example.org>: failed to store into mailbox 'INBOX': Internal error occurred. Refer to server log for more information. [2018-05-20 22:20:06]
May 20 22:20:06 yunohost dovecot: lda(toto@example.org): Error: sieve: execution of script /etc/dovecot/global_script/rspamd.sieve was aborted due to temporary failure
May 20 22:20:27 yunohost dovecot: imap(toto): Error: open(/var/mail/toto/maildirsize) failed: Permission denied
May 20 22:20:28 yunohost dovecot: imap(toto): Error: file_dotlock_create(/var/mail/toto/dovecot-uidlist) failed: Permission denied (euid=500(vmail) egid=8(mail) missing +w perm: /var/mail/toto, dir owner missing perms)
May 20 22:20:28 yunohost dovecot: imap(toto): Error: Index is read-only, can't write-lock /var/mail/toto/dovecot.index.log
May 20 22:20:28 yunohost dovecot: imap(toto): Error: file_dotlock_create(/var/mail/toto/dovecot-uidlist) failed: Permission denied (euid=500(vmail) egid=8(mail) missing +w perm: /var/mail/toto, dir owner missing perms)
May 20 22:20:28 yunohost dovecot: imap(toto): Error: file_dotlock_create(/var/mail/toto/dovecot-uidlist) failed: Permission denied (euid=500(vmail) egid=8(mail) missing +w perm: /var/mail/toto, dir owner missing perms)
May 20 22:20:28 yunohost dovecot: imap(toto): Error: Index is read-only, can't write-lock /var/mail/toto/dovecot.index.log
May 20 22:20:28 yunohost dovecot: imap(toto): Error: Index is read-only, can't write-lock /var/mail/toto/dovecot.index.log
May 20 22:20:28 yunohost dovecot: imap(toto): Error: open(/var/mail/toto/maildirsize) failed: Permission denied
May 20 22:20:28 yunohost dovecot: imap(toto): Error: file_dotlock_create(/var/mail/toto/dovecot-uidlist) failed: Permission denied (euid=500(vmail) egid=8(mail) missing +w perm: /var/mail/toto, dir owner missing perms)
[...]

En regardant les permissions, dans /var/mail il manque l’écriture pour certains utilisateurs.
Je n’ai rien modifié de ce côté là pourtant et ce sont les plus anciens.

root@yunohost:~# ls -al /var/mail/
total 36
drwxrwsr-t  9 root  mail 4096 avril 27 18:31 .
drwxr-xr-x 12 root  root 4096 févr.  8  2016 ..
drwx--S---  2 vmail mail 4096 févr. 21 20:26 XXX
drwx--S---  2 vmail mail 4096 févr. 21 19:21 XXX
dr-x--S--- 10 vmail mail 4096 déc.  30 06:25 toto
dr-x--S---  5 vmail mail 4096 juin   3  2017 XXX
dr-x--S---  2 vmail mail 4096 mai   24  2016 XXX
drwx--S---  2 vmail mail 4096 avril 27 18:31 user_is_ok
dr-x--S---  2 vmail mail 4096 mai   10  2016 XXX

J’ai donc testé avec l’utilisateur qui possède des droits corrects (user_is_ok) et Roundcube ne fonctionne toujours pas. Rainloop semble fonctionner d’après les logs. Je n’ai pas de mails configurés (DNS MX) sur le domaine utilisé par cet utilisateur et ne peux vérifier pour le moment.

Avez-vous déjà rencontré ce problème ?

Corrections

Après quelques essais, j’ai pu récupérer l’accès à Roundcube :star_struck:

rsync -a /var/mail/toto /var/mail/toto_backup

find /var/mail/toto -type d -exec chmod u+w {} +
find /var/mail/toto -type f \( -name 'dovecot-uidlist' -o -name 'dovecot-uidvalidity' -o -name 'dovecot.index' -o -name 'dovecot.index.cache' -o -name 'dovecot.index.log' -o -name 'maildirsize'  \) -exec chmod u+w {} \;

Source : What are the right permissions on dovecot /var/vmail ( on ispconfig, Debian) - Stack Overflow

Merci au guide YunoHost • index pour l’emplacement des fichiers de logs