
У меня CentOS 5.5 с установленным Postfix. Хочу использоватьместныйагент доставки с настройками по умолчанию, но я хочу, чтобы он сохранял почту сMaildir-каталогпочтовые ящики в стиле.
Когда я настраиваю хранение почтовых ящиков (по умолчанию) в:
mail_spool_directory = /var/spool/mail/
И я вручную создаю maildir, поэтому он выглядит так:
[root@dx2200 /]# ls -lah /var/spool/mail/
total 32K
drwxrwxr-x 4 root mail 4.0K Mar 15 15:01 .
drwxr-xr-x 13 root root 4.0K Mar 15 14:33 ..
drwxr-xr-x 5 root root 4.0K Mar 15 14:52 marshra
drwxr-sr-x 5 pedro mail 4.0K Mar 15 15:01 pedro
[root@dx2200 /]#
[root@dx2200 /]# ls -lah /var/spool/mail/pedro/
total 40K
drwxr-sr-x 5 pedro mail 4.0K Mar 15 15:01 .
drwxrwxr-x 4 root mail 4.0K Mar 15 15:01 ..
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:01 cur
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:01 new
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:03 tmp
[root@dx2200 /]#
А потом я пытаюсь отправить почту локальному пользователю pedro
, сообщение не доставляется, и мой /var/log/maillog
говорит:
Mar 15 15:11:00 dx2200 postfix/local[4266]: warning: maildir access problem for UID/GID=1014/1014: error writing message: Permission denied
Mar 15 15:11:00 dx2200 postfix/local[4266]: warning: perhaps you need to create the maildirs in advance
Mar 15 15:11:00 dx2200 postfix/local[4266]: 8D5D11310056: to=<[email protected]>, orig_to=<pedro>, relay=local, delay=0.04, delays=0.02/0.01/0/0.01, dsn=5.3.0, status=bounced (maildir delivery failed: error writing message: Permission denied)
У меня была похожая проблема свиртуальныйагент доставки, и изменение virtual_mailbox_base
с /var/spool/vmail
на домашний каталог /home/vmail
помогло. Мне нужно сделать это также сместныйАгент доставки ?И ЕСЛИ ТАК- почему я не могу хранить почту в /var/spool
?
решение1
Редактировать: ответ полностью переписан в соответствии с комментариями.
Проблема может быть связана с SELinux. Вы можете запустить eg, sestatus
чтобы проверить, включен он или выключен.
Для доставки maildir postfix изменяет соответствующего пользователя, поэтому целевой каталог должен быть доступен для записи пользователем. Кажется, это уже так. Из соображений конфиденциальности я предлагаюchmod -R o-rwx /var/spool/mail/*
Для полноты картины:Если используются файлы mbox, каталог спула должен быть доступен для записи mail
группе, которую вы получаете с помощью chmod -R g+rwX /var/spool/mail
.
решение2
разрешить запись политики SELinux в командной строке
semanage permissive -a postfix_local_t
решение3
У меня была та же ошибка с пользовательскими каталогами в подкаталоге, у которого были неправильные разрешения. Например, домашний каталог для "user1" был /home/subdir/user1
. А у подкаталога не было разрешений на выполнение для "others".
chmod 755 /home/subdir
Устранил проблему для меня. Каталоги пользователей по-прежнему имеют разрешения "700".
Сообщение об ошибке вводило в заблуждение, поскольку отказ в доступе был связан не с каталогом пользователя, а с каталогом, расположенным выше.
решение4
Ваши разрешения:
drwxr-sr-x 2 pedro mail xxxx cur,new,tmp
только pedro(вы) можете писать, mail(сервер) может только читать.
- изменить пользователя на почту,
chmod 700
- Попробуйте еще раз