Courier imapd: не удалось подключиться к сокету /tmp/fam--
Я пытаюсь настроить почтовый сервер на Ubuntu Natty на основе postfix и с помощью интерфейса imarier Courier. Электронные письма без проблем принимаются в виртуальных почтовых ящиках, а затем могут быть получены и прочитаны с помощью клиента imap, но я не могу отправлять электронные письма от клиента. Mail.log включает в себя множество записей, таких как <time> <hostname> imapd: Failed to connect to socket /tmp/fam--
,
По-видимому /tmp/fam--
является частью интерфейса к fam
(или в случае сервера Ubuntu) gamin
, который отслеживает файлы почтовых ящиков, позволяя Курьеру сразу узнавать о новых письмах. Из того, что я могу определить, это связано с монитором изменения файлов Courier, который позволяет нескольким клиентам одновременно открывать одну и ту же папку и получать обновления содержимого папки в режиме реального времени. Я надеялся, что установка IMAP_ENHANCEDIDLE
до 0 в /etc/courier/imapd
устранит зависимость, устранит дальнейшие ошибки /tmp/fam-- и позволит начать отправку писем. Нет такой удачи.
Gamin
установлен в системе и ps -A|grep gam
находки gam_server
Бег. Возможно, есть проблема с настройкой, но я не вижу соответствующих параметров конфигурации ни для Courier, ни для Gamin.
В поисках советов по этой проблеме я нашел несколько ссылок, которые предполагают, что гамин имеет тенденцию расти со временем (утечка памяти) и его необходимо периодически убивать. Похоже, это приносит больше неприятностей, чем стоит, и не является необходимым для imapd.
На данный момент я склонен скомпилировать courier-imap без зависимости от FAM и заменить то, что было установлено с помощью apt-get, но я не решаюсь это сделать, опасаясь, что при этом я открою еще большую банку с червями.
Любые предложения о том, как заставить IMAPD говорить с Gamin? Правильно ли я хочу просто отказаться от использования гамина с помощью imapd? Любые советы, рекомендации или предостережения о перекомпиляции courier-imapd без зависимости от FAM?
3 ответа
Я получал ту же ошибку, но проблема была вызвана неправильными правами доступа к файлу /etc/passwd. Кто-то изменил его на 600, что помешало другим программам, таким как (postfix или courier), читать пользователей и группы, которые им нужны.
Мое исправление было:
-bash-3.2# chmod 644 /etc/passwd
-bash-3.2# chmod 644 /etc/group
На самом деле тоже столкнулся с этим, и ошибка курьера очень обманчива. В моем случае это было вызвано тем, что корневой каталог maildir был настроен как принадлежащий uid, для которого не был определен пользователь в /etc/passwd (поэтому, по сути, проблема была решена тем же ответом, что и Nexus2k в 2012 году).
Мой корневой каталог maildir (и почтовые каталоги пользователей) принадлежал uid=9000, и я не создавал пользователя с помощью useradd. Добавление пользователя/группы (без пароля и оболочки в виде /bin/false) избавило от ошибок курьера в mail.log, в результате чего вся жалоба на famd стала неактуальной и запутанной.
Если кто-то еще сталкивается с этой проблемой. Вот решение:
groupadd -g 2000 vmail
useradd -u 2000 -g vmail vmail
Сделал трюк для меня. Кажется, gam_server не запускается, если пользователь не существует. Я не смог переключиться на dovecot, потому что я люблю exim4 как MTA, а dovecot нужен постфикс.