Exim4 журнал паники: "Не удалось получить имя пользователя для UID 1001"
У меня есть маршрутизатор, который доставляет почту в определенные домены в 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
Вы заметите, что идентификаторы не указаны. Бег id usernameone
показывает нового пользователя и группу.
Что я пробовал
- Я просканировал всю файловую систему на наличие каких-либо пользователей или групп, принадлежащих старым uid, и обновил их.
- Я бегал
update-exim4.conf
а такжеservice restart exim4
- Я рекурсивно выскочил
/etc/exim4
для оскорбительного uid, 1001 и ничего не нашел. - Я проверил, что exim способен доставить (и правильно установить пользователя, группу) в рассматриваемые домены - все хорошо там.
Я все еще получаю эти предупреждения / ошибки. Глядя на 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.
1 ответ
Когда exim ставит сообщение в очередь, он сохраняет много дополнительной информации с сообщением в очереди. Одной из вещей, которые хранятся в сообщении, является uid и gid, который должен запускать процесс. Бьюсь об заклад, если вы grep заголовки вашей почтовой очереди (вероятно, в /var/spool/exim4/input/*-H), вы найдете эти длительные записи 1001 и 1003 во второй строке некоторых * -H файлов. Я предлагаю ваши варианты:
- Удалить эти записи из очереди, или...
- Стоп exim. Вручную отредактируйте эти файлы, изменив "uid gid" в соответствии с вашими новыми uid и gid. Запустите exim и посмотрите, правильно ли он работает.
Также возможно, что в транспортных конфигурациях есть некоторые жестко запрограммированные uid / gid? Фактический файл конфигурации exim в Debian генерируется автоматически из параметров конфигурации, и его местоположение может быть отображено с помощью exim -bV
, Последняя строка будет местом расположения файла конфигурации. Сделайте поиск и просмотр этого файла, чтобы увидеть, есть ли что-нибудь жестко запрограммированное.