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 файлов. Я предлагаю ваши варианты:

  1. Удалить эти записи из очереди, или...
  2. Стоп exim. Вручную отредактируйте эти файлы, изменив "uid gid" в соответствии с вашими новыми uid и gid. Запустите exim и посмотрите, правильно ли он работает.

Также возможно, что в транспортных конфигурациях есть некоторые жестко запрограммированные uid / gid? Фактический файл конфигурации exim в Debian генерируется автоматически из параметров конфигурации, и его местоположение может быть отображено с помощью exim -bV, Последняя строка будет местом расположения файла конфигурации. Сделайте поиск и просмотр этого файла, чтобы увидеть, есть ли что-нибудь жестко запрограммированное.

Другие вопросы по тегам