Eu instalei dovecot
em OS X Yosemite
via Homebrew
. Mas, por algum motivo, não consigo mais que ele funcione corretamente, começando com a atualização do sistema 10.10.3
pela Apple. Há algum tipo de problema de permissão insolúvel quando se trata de criar os arquivos dotlock quando o dovecot quer acessar as caixas de entrada. Curiosamente, o postfix não tem problemas para criar os arquivos dotlock no mesmo diretório.
$ dovecot --version
2.2.18
A configuração do caminho padrão no OS X, também oficialmente suportada / documentada no wiki dovecot. Eu gostaria de mantê-lo assim, já que as atualizações do sistema geralmente alteram as permissões aqui de qualquer maneira:
$ 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
...
Esta foi minha configuração inicial até OS X 10.10.2
. Eu removi várias opções irrelevantes da saída:
$ 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
Tudo estava funcionando bem até que a atualização OS X 10.10.3
aparecesse e, de repente, os erros dovecot[PID]: pop3(haru): Error: setegid(privileged) failed: Operation not permitted
fossem eliminados ao buscar e-mails. Ele ainda pode buscar e-mails, mas não conseguiu excluí-los da caixa de entrada, então, a cada busca, os mesmos e-mails chegavam de novo e de novo.
Depois de muitas pesquisas e tentativas aleatórias, acabei adicionando mail_access_groups = mail
à configuração do dovecot. Eu realmente não entendo o que a opção faz exatamente.
$ 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
Tudo estava funcionando bem até que a atualização de OS X 10.10.5
apareceu ontem e, de repente, todo o inferno acabou perdendo e estava falhando completamente com dovecot[PID]: pop3(haru): Fatal: setgroups(mail,) failed: Too many extra groups
. Remover mail_access_groups = mail
corrigiu esse erro, mas trouxe de volta os erros anteriormente descritos que começaram com 10.10.3. No final, tive que desabilitar o bloqueio do arquivo de ponto removendo a entrada dotlock
padrão da opção mbox_write_locks
:
$ 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
Eu sinto falta de algo aqui ou não entendo? Por que a configuração de permissão padrão (conforme descrito na documentação do dovecot) não está funcionando? Talvez seja mesmo algum tipo de incompatibilidade começando a aparecer com o OS X 10.10.3, ou algum bug no dovecot?