Я установил dovecot
на OS X Yosemite
через Homebrew
. Но по какой-то причине я больше не могу заставить его работать должным образом, начиная с обновления системы 10.10.3
от Apple. Существует некоторая неразрешимая проблема с разрешениями, когда дело доходит до создания файлов с точками блокировки, когда dovecot хочет получить доступ к INBOX. Интересно, что у postfix нет проблем с созданием файлов с точками в той же директории.
$ dovecot --version
2.2.18
Настройка пути по умолчанию в OS X, также официально поддерживается / документируется в вики dovecot. Я бы хотел оставить это так, поскольку системные обновления обычно меняют права доступа здесь в любом случае:
$ 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
...
Это была моя первоначальная настройка до OS X 10.10.2
. Я удалил кучу ненужных опций из вывода:
$ 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
Все работало нормально, пока не появилось обновление OS X 10.10.3
и внезапно dovecot[PID]: pop3(haru): Error: setegid(privileged) failed: Operation not permitted
ошибки, были сброшены при получении почты. Он все еще мог получать почту, но не мог удалить их из INBOX, поэтому при каждой загрузке одни и те же письма приходили снова и снова.
После долгих исследований и случайных попыток я добавил mail_access_groups = mail
в конфигурацию dovecot . Я действительно не понимаю, что именно делает этот вариант.
$ 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
Все снова работало нормально, пока вчера не появилось обновление OS X 10.10.5
и вдруг весь ад сломался, потерпел неудачу и полностью потерпел неудачу с dovecot[PID]: pop3(haru): Fatal: setgroups(mail,) failed: Too many extra groups
. Удаление mail_access_groups = mail
исправило эту ошибку, но вернуло ранее описанные ошибки, которые начинались с 10.10.3. В конце концов мне пришлось отключить блокировку dotlock
файла, удалив запись о точечной блокировке по умолчанию из опции 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
Я что-то здесь скучаю или не понимаю? Почему настройка разрешений по умолчанию (как описано в документации dovecot) не работает? Возможно, это даже какая-то несовместимость, начинающая появляться с OS X 10.10.3, или какая-то ошибка в dovecot?