J'ai installé dovecot
sur OS X Yosemite
via Homebrew
. Mais pour une raison quelconque, je ne peux plus le faire fonctionner correctement en commençant par le 10.10.3
mise à jour du système par Apple. Il existe une sorte de problème d’autorisation insoluble en ce qui concerne la création des fichiers dotlock lorsque pigeonnier souhaite accéder à la boîte de réception. Il est intéressant de noter que postfix n'a aucun problème à créer les fichiers dotlock dans le même répertoire.
$ dovecot --version
2.2.18
Le chemin par défaut configuré sous OS X, également officiellement pris en charge / documenté dans le wiki de dovecot. J'aimerais le conserver comme cela, car les mises à jour du système modifient généralement les autorisations ici de toute façon:
$ ls -lae /var/
...
drwxrwxr-x 3 root mail 102 Aug 14 18:52 mail
...
$ ls -lae /var/mail
...
-rw------- 1 haru mail 542 Aug 14 18:53 haru
...
C'était ma configuration initiale jusqu'à OS X 10.10.2
. J'ai supprimé un tas d'options non pertinentes de la sortie:
$ cat /usr/local/etc/dovecot/local.conf
protocols = pop3
listen = localhost
# Note: user _dovecot is member of the 'mail' group.
default_internal_user = _dovecot
default_login_user = _dovenull
mail_location = mbox:~/.mail:INBOX=/var/mail/%u
mail_privileged_group = mail
Tout fonctionnait bien jusqu'à la OS X 10.10.3
mise à jour est venu et tout à coup dovecot[PID]: pop3(haru): Error: setegid(privileged) failed: Operation not permitted
des erreurs ont été vidées lors de la récupération des mails. Il pouvait toujours récupérer les e-mails, mais n'a pas réussi à les supprimer de la boîte de réception. Ainsi, à chaque extraction, les mêmes e-mails sont entrés encore et encore.
Après beaucoup de recherches et d'essais aléatoires, j'ai fini par ajouter mail_access_groups = mail
à la config de pigeonnier Je ne comprends pas vraiment ce que l'option fait exactement.
$ cat /usr/local/etc/dovecot/local.conf
protocols = pop3
listen = localhost
# Note: user _dovecot is member of the 'mail' group.
default_internal_user = _dovecot
default_login_user = _dovenull
mail_location = mbox:~/.mail:INBOX=/var/mail/%u
mail_privileged_group = mail
mail_access_groups = mail
Tout fonctionnait bien jusqu'à ce que le OS X 10.10.5
mise à jour est venu hier et tout à coup l'enfer s'est déchaîné et il échouait complètement avec dovecot[PID]: pop3(haru): Fatal: setgroups(mail,) failed: Too many extra groups
. Enlever mail_access_groups = mail
a corrigé cette erreur, mais a ramené les comportements incorrects décrits précédemment qui avaient débuté avec 10.10.3. En fin de compte, j'ai dû désactiver le verrouillage du fichier de points en supprimant le paramètre par défaut. dotlock
entrée du mbox_write_locks
option:
$ cat /usr/local/etc/dovecot/local.conf
protocols = pop3
listen = localhost
# Note: user _dovecot is member of the 'mail' group.
default_internal_user = _dovecot
default_login_user = _dovenull
mail_location = mbox:~/.mail:INBOX=/var/mail/%u
mail_privileged_group = mail
mbox_read_locks = fcntl
mbox_write_locks = fcntl
Est-ce que je manque quelque chose ici ou ne parviens pas à comprendre? Pourquoi la configuration des autorisations par défaut (décrite dans la documentation de dovecot) ne fonctionne-t-elle pas? C'est peut-être même une sorte d'incompatibilité qui commence à apparaître avec OS X 10.10.3, ou un bogue dans le pigeonnier?