user_exim и права доступа на файлах писем

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ant
проходил мимо
Сообщения: 5
Зарегистрирован: 2007-03-03 14:22:24
Контактная информация:

user_exim и права доступа на файлах писем

Непрочитанное сообщение ant » 2007-03-03 15:02:24

Здравствуйте, друзья! :P

Настроил я себе на Debian-е такую связочку:
exim + clamav + courier imap/pop3 + mysql

Следовал инструкциям по статье Алексея Кеды aka lissyara (хоть инструкция и для FreeBSD, но суть и корень там затронуты за самое живое. За что я и выражаю ему уважение и почёт).

У меня не сразу, но всё завелось, но осталась одна дурацкая проблема с раздачей прав доступа связанная (вероятнее всего).

exim и у меня работает из под пользователя Debian-exim.

а письма (нигадзя-я-яи!) не забираются из директорий (имя домена и имя пользователя изменены):

/var/mail/exim/mydomain.com/username/cur/
/var/mail/exim/mydomain.com/username/new/

Захожу в это директории, смотрю.
А там у них всё как надо. Владелец файлов Debian-exim, группа mail.
На файле права такие: -rw------. Т.е. разрешено только владельцу Debian-exim, а на группу прав нету у файла.
Ставлю ручками файлам права доступа для всех (-rwxrwxrwx) и почта начинает забираться.

Под кем работает courier-pop я даже не знаю и что я не так напортачил с правами.

Код: Выделить всё

  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:03 init [2]
 3665 ?        Ss     0:00 /sbin/syslog-ng
 3816 ?        Ss     0:00 /usr/sbin/atd
 3819 ?        Ss     0:00 /usr/sbin/cron
12657 ?        Ss     0:00 /usr/sbin/inetd
15239 ?        Ss     0:00 /sbin/syslog-ng -p /var/run/syslog-ng.pid
15612 ?        Ss     0:00 /usr/sbin/sshd
14709 ?        Ss     0:00 /usr/sbin/apache2 -k start -DSSL
18396 ?        S      0:00 /bin/sh /usr/bin/mysqld_safe
18433 ?        S    249:23 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/my
18434 ?        S      0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
11600 ?        Ss     0:00 /usr/sbin/vsftpd
 3360 ?        S      0:00 /usr/sbin/couriertcpd -address=0 -stderrlogger=/usr/sbin/courierlogger -stderrloggername=imapd-ssl
 3363 ?        S      0:00 /usr/sbin/courierlogger imapd-ssl
11179 ?        Rs     0:00 sshd: root@pts/0
11205 pts/0    Ss     0:00 -bash
11219 pts/0    R+     0:00 mc
11221 pts/2    Ss     0:00 bash -rcfile .bashrc
17009 ?        S      0:00 /usr/sbin/couriertcpd -pid=/var/run/courier/pop3d.pid -stderrlogger=/usr/sbin/courierlogger -maxpro
17011 ?        S      0:00 /usr/sbin/courierlogger courierpop3login
17303 ?        S      0:00 /usr/sbin/couriertcpd -address=0 -stderrlogger=/usr/sbin/courierlogger -maxprocs=40 -maxperip=20 -p
17305 ?        S      0:00 /usr/sbin/courierlogger imaplogin
17351 ?        S      0:00 /usr/sbin/courierlogger -pid=/var/run/courier/authdaemon/pid -start /usr/lib/courier/authlib/authda
17352 ?        S      0:00 /usr/lib/courier/authlib/authdaemond.mysql
17353 ?        S      0:00 /usr/lib/courier/authlib/authdaemond.mysql
10310 ?        S      0:06 /usr/sbin/apache2 -k start -DSSL
13859 ?        S      0:04 /usr/sbin/apache2 -k start -DSSL
13862 ?        S      0:04 /usr/sbin/apache2 -k start -DSSL
22876 ?        S      0:02 /usr/sbin/apache2 -k start -DSSL
23060 ?        S      0:02 /usr/sbin/apache2 -k start -DSSL
29323 ?        S      0:01 /usr/sbin/apache2 -k start -DSSL
29348 ?        S      0:01 /usr/sbin/apache2 -k start -DSSL
29677 ?        S      0:01 /usr/sbin/apache2 -k start -DSSL
30829 ?        S      0:00 /usr/sbin/apache2 -k start -DSSL
31849 ?        Ss     0:00 /usr/sbin/exim4 -bd -q30m
 1607 ?        S      0:00 /usr/sbin/apache2 -k start -DSSL
 3713 pts/2    R+     0:00 ps ax
Граждане, если кто-либо понимает где я затупил, подскажите пожалуйста.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35069
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-03 15:38:26

э....
в директории кто письма раскладывает?
exim?
тогда, в транспорте, что раскладывает, укажи режим директории и нужных юзеров...
Убей их всех! Бог потом рассортирует...

ant
проходил мимо
Сообщения: 5
Зарегистрирован: 2007-03-03 14:22:24
Контактная информация:

Непрочитанное сообщение ant » 2007-03-03 18:27:23

Я полагаю, что корень зла кроется в создании файлов вот этим куском конфига:

Код: Выделить всё

mysql_delivery:
    driver = appendfile
    check_string = ""
    create_directory
    delivery_date_add
    directory = ${lookup mysql{SELECT CONCAT('/var/mail/exim/', `maildir`) \
	    FROM `mailbox` WHERE `username`='${local_part}@${domain}'}}
    directory_mode = 770
    envelope_to_add
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0600 
Простите, я 4-ый день в глаза вижу Linux. Какой именно mode и directory_mode нужно поставить, чтобы файлы были доступны для забора курьером POP3 (courier-pop)?

Но с другой стороны, может быть сам courier-pop должен хорошенько подумать и забрать эти файлы из под нужного пользователя и группы.


P.S:
И плюс к этой проблеме ещё вот что нашлось в exim4 -bd -d+all

Код: Выделить всё

...........
15:21:16  2774 LOG: MAIN
15:21:16  2774   IPv6 socket creation failed: Address family not supported by protocol
15:21:16  2774 LOG: MAIN
15:21:16  2774   Failed to create IPv6 socket for wildcard listening (Address family not supported by protocol): will use IPv4
15:21:16  2774 LOG: MAIN
15:21:16  2774   socket bind() to port 25 for address (any IPv4) failed: Address already in use: waiting before trying again
15:21:46  2774 LOG: MAIN
15:21:46  2774   socket bind() to port 25 for address (any IPv4) failed: Address already in use: waiting before trying again
15:22:16  2774 LOG: MAIN
15:22:16  2774   socket bind() to port 25 for address (any IPv4) failed: Address already in use: waiting before trying again

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-03-03 19:43:15

У курьера можно выставить тоже права, в debian смотри файл:

Код: Выделить всё

~# grep UID /etc/courier/authmysqlrc
MYSQL_UID_FIELD         111
~# grep GID /etc/courier/authmysqlrc
MYSQL_GID_FIELD         111
если у тебя mysql backend'ом конечно :)

ant
проходил мимо
Сообщения: 5
Зарегистрирован: 2007-03-03 14:22:24
Контактная информация:

Непрочитанное сообщение ant » 2007-03-03 20:06:07

gregor писал(а):У курьера можно выставить тоже права, в debian смотри файл:

Код: Выделить всё

~# grep UID /etc/courier/authmysqlrc
MYSQL_UID_FIELD         111
~# grep GID /etc/courier/authmysqlrc
MYSQL_GID_FIELD         111
если у тебя mysql backend'ом конечно :)
У меня там mysql backend-ом конечно. :lol:

Но, что означают эти UID и GID в данном случае, ты выставил 111. Я попробовал исправить так у себя. Не сработало. Любопытно, почему lissyara ставит GID и UID 26, в других статьях я находил другие значения, а что это такое я так и не понял.

ant
проходил мимо
Сообщения: 5
Зарегистрирован: 2007-03-03 14:22:24
Контактная информация:

Непрочитанное сообщение ant » 2007-03-03 21:33:30

Эврика! Товарищи.
Я понял что это.

Я посмотрел цифирьку одну через cat /etc/passwd. Заглянул какая цифирька стоит возле Debian-exim пользователя, и "о, чудо!" - оно заработало.


Искренне благодарю сей форум и отзывчивых людей.

ant
проходил мимо
Сообщения: 5
Зарегистрирован: 2007-03-03 14:22:24
Контактная информация:

Непрочитанное сообщение ant » 2007-03-03 21:54:56

А решение проблемы вот этой:

Код: Выделить всё

15:22:16  2774 LOG: MAIN 
15:22:16  2774   socket bind() to port 25 for address (any IPv4) failed: Address already in use: waiting before trying again
Оказалось вообще простым.
Дело в том, что это проблема надумана моим больным мозгом.

Я пытался запустить вторую копию exim4 и конечно же он ругался на меня, что уже он запущен и порт 25 уже слушается.