У меня есть маршрутизатор, который доставляет почту в определенные домены в MailDir для домена и использует карту домен: пользователь, чтобы предоставить право собственности на файл нужному пользователю.
Проблема в том, что после обновления uid пользователей (необходимого для синхронизации с другими серверами) exim выдает ошибки в журнал паники, говоря:
Не удалось получить имя пользователя для uid 1001
Где 1001 - это старый uid для одного из заинтересованных пользователей (новый - 1008). Он также генерирует эти ошибки для 1002, другого пользователя, которого я изменил.
Вот роутер
domain_catch_all_transport:
debug_print = "T: domain_catch_all_transport for $local_part@$domain"
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
maildir_format
user = ${lookup{$domain}lsearch{/etc/exim4/civicrm-catchalls}}
group = ${lookup{$domain}lsearch{/etc/exim4/civicrm-catchalls}}
А вот формат файла поиска:
example.com:usernameone
example.org.uk:usernametwo
Обратите внимание, что идентификаторы uid не указаны. Бег id usernameone
показывает нового пользователя и группу.
update-exim4.conf
и service restart exim4
/etc/exim4
для вызывающего нарушения uid, 1001 и ничего не нашел.Я все еще получаю эти предупреждения / ошибки. Глядя на mainlog, я вижу, что ошибки возникают в случайное время, а не при обработке почты (!), Например.
2014-03-03 09:00:01 Failed to get user name for uid 1001
2014-03-03 09:00:01 Failed to get user name for uid 1003
2014-03-03 09:10:01 Failed to get user name for uid 1001
2014-03-03 09:11:38 Start queue run: pid=3457
2014-03-03 09:11:38 End queue run: pid=3457
2014-03-03 09:15:01 Failed to get user name for uid 1003
2014-03-03 09:20:01 Failed to get user name for uid 1001
2014-03-03 09:30:01 Failed to get user name for uid 1003
2014-03-03 09:30:01 Failed to get user name for uid 1001
Я использую Debian 7 (стабильный / Wheezy) с Exim4 4.80.7.
Когда exim помещает сообщение в очередь, он сохраняет много дополнительной информации вместе с сообщением в очереди. Одна из вещей, которые хранятся вместе с сообщением, - это uid и gid, под которыми должен запускаться процесс. Готов поспорить, если вы введете grep в заголовки своей очереди почты (вероятно, в / var / spool / exim4 / input / * - H), вы найдете эти устаревшие записи 1001 и 1003 во второй строке некоторых файлов * -H. Предлагаю следующие варианты:
Также возможно, что в транспортных конфигурациях есть жестко запрограммированные uid / gid? Фактический файл конфигурации exim в Debian автоматически генерируется из настроек конфигурации, и его местоположение может быть отображено с помощью exim -bV
. Последняя строка будет местоположением файла конфигурации. Выполните поиск и просмотрите этот файл, чтобы увидеть, есть ли что-нибудь жестко запрограммированное.