Вопрос или проблема
Пытаюсь использовать always_bcc для его наиболее распространенного использования: архивирование почты.
always_bcc = mailarchive@localhost
Это не удается из-за ошибок доступа.
postfix/local[2798499]: warning: maildir access problem for UID/GID=65534/65534: create maildir file {$HOMEDIR}1732630339.P2798499.{$HOSTNAME} Permission denied
Это показывает, что демон ‘local’ правильно вызывается.
Чтобы все ‘работало’, мне пришлось использовать этот хак, который не идеален, так как он ограничивает postfix поставкой только одному пользователю локально следующим образом:
always_bcc = mailarchive@localhost
default_privs = mailarchive
псевдонимы:
postmaster: root
mailarchive: /mnt/archive/mail/
Почему postfix не может найти моего пользователя и продолжает доставлять как nobody, если я не принудительно не переопределю это? Пользователь mailarchive существует локально. Письма попадают в /mnt/archive/mail/
. Что еще нужно, чтобы их добавить?
Если мне действительно нужно сообщить postfix, что mailarchive@localhost
— это пользователь linux mailarchive
на localhost
… то где?
Ответ или решение
Вопрос, который вы подняли, касается конфигурации Postfix в контексте использования параметра always_bcc
для архивирования почты. Давайте разберем вашу ситуацию более подробно.
Проблема с always_bcc
Вы пытаетесь настроить Postfix так, чтобы он отправлял все входящие сообщения на адрес mailarchive@localhost
, однако сталкиваетесь с проблемами доступа, что проявляется в ошибках, связанных с правами:
postfix/local[2798499]: warning: maildir access problem for UID/GID=65534/65534: create maildir file {$HOMEDIR}1732630339.P2798499.{$HOSTNAME} Permission denied
Ваша текущая настройка always_bcc = mailarchive@localhost
приводит к тому, что Postfix использует пользователя nobody
, у которого нет прав на запись в директорию назначения для архивированной почты.
Причины проблемы
-
Идентификация пользователя: По умолчанию, если Postfix не может определить правильные права доступа для указанного в
always_bcc
адреса, он использует UID/GID пользователяnobody
, что и приводит к проблемам с доступом. Это связано с тем, что Postfix должен знать, какому пользователю соответствует адрес электронной почты, чтобы использовать соответствующие права доступа. -
Настройки
aliases
: Вы уже указали, что у вас существует почтовый пользовательmailarchive
, который настроен в файлеaliases
. Однако, чтобы Postfix мог корректно связать адресmailarchive@localhost
с соответствующим пользователем и его правами, необходимо убедиться, что система знает о существовании этого пользователя.
Решение проблемы
Учитывая ваше описание, вот несколько шагов, которые вы можете предпринять для решения этой проблемы:
-
Настройка пользовательских прав: Убедитесь, что пользователь
mailarchive
имеет права на запись в директорию/mnt/archive/mail/
. Это можно проверить с помощью команд:ls -ld /mnt/archive/mail/
Если права недостаточны, измените их, используя команду
chown
илиchmod
:chown mailarchive:mailarchive /mnt/archive/mail/ chmod 700 /mnt/archive/mail/
-
Проверка файла
aliases
: Вам нужно убедиться, что ваш файлaliases
правильно настроен и протестировать его:postalias /etc/aliases newaliases
-
Указание
default_privs
: Вы уже упомянули, что использовали параметрdefault_privs
. Это полностью допустимый подход:always_bcc = mailarchive@localhost default_privs = mailarchive
Тем не менее, это действительно ограничивает почтовую систему. Старайтесь использовать этот подход только в том случае, если другие варианты не работают.
-
Использование параметров конфигурации: Проверьте, есть ли у вас директива
transport_maps
, которая может указать, куда направлять почту дляmailarchive@localhost
. Возможно, вам также стоит рассмотреть использованиеvirtual_alias_maps
. -
Логи Postfix: Проверяйте логи Postfix для дополнительной информации о том, что происходит во время обработки почты. Логи могут дать подсказки о том, почему возникла ошибка.
Заключение
Ваша проблема с отправкой почты на mailarchive@localhost
, связанная с использованием UID/GID nobody
, вероятно происходит из-за отсутствия соответствующей конфигурации и прав доступа. Убедитесь, что пользователь mailarchive
имеет необходимые права и что все конфигурации Postfix корректно определяют, какой пользователь будет ответственен за обработку почты.
Следуйте предложенным шагам, чтобы устранить проблемы и правильно настроить конфигурацию вашего сервера. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.