URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 82495
[ Назад ]

Исходное сообщение
"Procmail + Postfix"

Отправлено GonzzzaBatler , 21-Окт-08 11:19 
Приветствую многоуважаемый All !

RedHat EL 5.2
postfix-2.3.3-2.i386.rpm
procmail-3.22-17.1.i386.rpm

После установки postfix к нему необходимо прикрутить ряд сортировок и проверок уже написанных под procmail.
Procmail установлен.

1.  В /etc/postfix/main.cf добавил:
    mailbox_command = /usr/bin/procmail

2. Создал общий файл
     /etc/procmailrc
    и локальный
     /home/user/.procmailrc

# cat procmailrc
:0
* ^From.*@mail.ru.*
admin

Со стороннего ящика mail.ru отсылаю письмо на ящик пользователя моего домена - user@domain.ru

В логах вижу строку:

Oct 21 08:45:26 ns postfix/local[9500]: 75F6F11A003D: to=<user@domain.ru>, relay=local, delay=0.06, delays=0.04/0/0/0
.01, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail)

Принимаю письмо на ящик user, хотя должно было упасть в admin.

ПРОБЛЕМА !
Письмо приходит, но никаким сортировкам не подвергаеться.

Как правильно настроить работу procmail ?


Содержание

Сообщения в этом обсуждении
"Procmail + Postfix"
Отправлено Medlar , 21-Окт-08 12:06 
># cat procmailrc
>:0
>* ^From.*@mail.ru.*
>admin

Так вы определяете внутренний From: (header From), а не конвертный
Вы уверены, что в вашем случае они совпадают в доменной части?

Вот кусок работающего конфига
0
* ^From:.*hotline@pechka.tver.ru
/var/spool/mail/paradise

>Со стороннего ящика mail.ru отсылаю письмо на ящик пользователя моего домена -
>user@domain.ru
>
>В логах вижу строку:

Это не лог.
Лог - это когда есть строка про отправителя, про получателя и про все фильтры, которые это письмо обрабатывали
И именно в логе отображается конвертный отправитель

>[оверквотинг удален]
>
>Oct 21 08:45:26 ns postfix/local[9500]: 75F6F11A003D: to=<user@domain.ru>, relay=local, delay=0.06, delays=0.04/0/0/0
>.01, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail)
>
>Принимаю письмо на ящик user, хотя должно было упасть в admin.
>
>ПРОБЛЕМА !
>Письмо приходит, но никаким сортировкам не подвергаеться.
>
>Как правильно настроить работу procmail ?


"Procmail + Postfix"
Отправлено Medlar , 21-Окт-08 12:07 
Поправочка
0 = :0

"Procmail + Postfix"
Отправлено GonzzzaBatler , 21-Окт-08 16:01 
Оказалось, что procmail работал.
Проблема в том, что procmail запускаеться от имени пользователя, которому осуществляеться локальная доставка и соответственно наследует свои права и права группы этого пользователя.
В результате отсутствовали права на запись в те каталоги и файлы, куда отсортировывалась почта (вне каталога пользователя), в том числе procmail не может создать файлы почты пользователя /var/spool/mail/user с нуля.
Тоесть, если тот случайно удалён или не существует, то:

can't create user output file. Command output: procmail:
Couldn't create "/var/mail/user" procmail: Error while writing to
    "/var/spool/mail/user"

Procmail-у не хватает прав на запись в каталог /var/spool/mail
Тут либо менять всем пользователям группу на mail.
Либо давать полные права на каталог mail, в этом случае в "/var/spool/mail создаються фалы почты пользователей с группой users.


Хотя без использования procmail, тоесть без опции:
main.cf: mailbox_command = /usr/bin/procmail,
несмотря на то, что все пользователи находяться в группе users, в "/var/spool/mail создаються фалы почты пользователей с группой mail, причём и с нуля тоже.


"Procmail + Postfix"
Отправлено Medlar , 21-Окт-08 16:09 
>Couldn't create "/var/mail/user" procmail: Error while writing to
>    "/var/spool/mail/user"

в конфиг в начале добавьте
SHELL=/bin/bash


"Procmail + Postfix"
Отправлено GonzzzaBatler , 21-Окт-08 16:35 
>в конфиг в начале добавьте
>SHELL=/bin/bash

Добавил но:

can't create user output file. Command output: procmail:
    Couldn't create "/var/mail/user"


"Procmail + Postfix"
Отправлено GonzzzaBatler , 21-Окт-08 16:30 
Получаеться, что доставщик по умолчанию запускаеться от имени root.
Соответственно:
- может создавать файлы почты пользователей с нуля в /var/spool/mail
- после любой записи в эти файлы назначает этим файлам права соответствующего локального пользователя и группы mail

А procmail работающий с ограниченными правами:
- НЕ может создавать файлы почты пользователей с нуля в /var/spool/mail
- назначает этим файлам права локального пользователя и группы этого пользователя (users)

Соответственно, наверное нужно запускать procmail с правами root ?
Если да, то как это реализовать ?


"Procmail + Postfix"
Отправлено GonzzzaBatler , 21-Окт-08 16:42 
При запуске procmail от root из командной строки образовывется (тобищь создаётся!)
/var/spool/mail/user файл, причём именно с владельцем/группой user/mail как положено.

Значит наверное всёжтаки следует с правами рута запускать.
Может какие то опции в main.cf нужно указать ?


"Procmail + Postfix"
Отправлено GonzzzaBatler , 22-Окт-08 10:54 
Соответственно хотел спросить тех, кто использует эту связку
посредством активизации в /etc/postfix/main.cf:
    mailbox_command = /usr/bin/procmail

Итак:

1. какие у Вас права выставлены на каталог /var/spool/mail
2. соответственно создаёться ли файл почты пользователя с нуля, если
   например этот файл предварительно удалить, а потом послать этому пользователию
   почту ?
3. и если файл создаёться, то кто владельцы этого файла (влоаделец,
   группа) и с какими правами ?