Я установил 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. В конце концов мне пришлось отключить блокировку dotfile, удалив 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?