Страница 1 из 1

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

Добавлено: 2007-03-03 15:02:24
ant
Здравствуйте, друзья! :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
Граждане, если кто-либо понимает где я затупил, подскажите пожалуйста.

Добавлено: 2007-03-03 15:38:26
Alex Keda
э....
в директории кто письма раскладывает?
exim?
тогда, в транспорте, что раскладывает, укажи режим директории и нужных юзеров...

Добавлено: 2007-03-03 18:27:23
ant
Я полагаю, что корень зла кроется в создании файлов вот этим куском конфига:

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

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

Добавлено: 2007-03-03 19:43:15
gregor
У курьера можно выставить тоже права, в debian смотри файл:

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

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

Добавлено: 2007-03-03 20:06:07
ant
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, в других статьях я находил другие значения, а что это такое я так и не понял.

Добавлено: 2007-03-03 21:33:30
ant
Эврика! Товарищи.
Я понял что это.

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


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

Добавлено: 2007-03-03 21:54:56
ant
А решение проблемы вот этой:

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

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 уже слушается.