Назад | Перейти на главную страницу

Журнал паники 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

Обратите внимание, что идентификаторы uid не указаны. Бег id usernameone показывает нового пользователя и группу.

Что я пробовал

Я все еще получаю эти предупреждения / ошибки. Глядя на 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. Предлагаю следующие варианты:

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

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