exim+dovecot astra se 1.6

dened

New member
Сообщения
39
#1
Решил настроить связку и пришел к тому, что письма не ходят от пользователя к пользователю, накапливаясь в /var/spool/exim4/input
Сделал всё по руководству администратора. Кроме этого добавил пользаков в группу mail.
ДНС сервер не настраивал, обошелся рамками одного хоста и правкой /etc/hosts.
В системе зарегистрировал пару пользователей и попытался послать письмо от одного к другому через thunderbird. Письма помещаются
в отправленные но до адресата не доходят, накапливаясь в /var/spool/exim4/input
В логе exim пишет:
2020-04-08 15:53:36 1jM3ea-0007Ih-96 <= den@astra H=([192.168.0.107]) [192.168.0.107] P=esmtp S=539 id=86140b1a-c5f0-5f8f-32b0-c6e699f1cc34@astra
2020-04-08 15:53:54 1jM3ea-0007Ih-96 == new@astra R=local_user T=maildir_home defer (1): Operation not permitted: failed to open tmp/1586325234.H617588P28069.astra (10 t
ries
Dovecot отрабатывает без ошибок в логах.

Для проверки настроил аналогично на Debian9, без проблем всё ходит, даже если из консоли отправлять через:
echo "message" | mail -s "subject" den@debian.home.org
 

oko

New member
Сообщения
1 257
#2
to dened
Если ALD не используется (судя по всему, не используется), то вот это пробовали?
Судя по логу, exim4 явно не хватает прав на чтение tmp-каталога с письмами. Насколько помню, после установки exim4 и dovecot дополнительно никому из них никаких прав добавлять не нужно. Поэтому проверьте еще раз по ссылке выше - если не сработает, будем думать...
 

dened

New member
Сообщения
39
#3
exim4 -qff -v
-----------------------
LOG: queue_run MAIN
Start queue run: pid=15598 -qff
delivering 1jM2os-0002Zi-5a (queue run pid 15598)
R: system_aliases for den@astra
R: userforward for den@astra
R: procmail for den@astra
R: maildrop for den@astra
R: lowuid_aliases for den@astra (UID 1002)
R: local_user for den@astra
uid=0(root) gid=114(Debian-exim) groups=114(Debian-exim)
T: maildir_home for den@astra
LOG: MAIN
== den@astra R=local_user T=maildir_home defer (1): Operation not permitted: failed to open tmp/1586339288.H830848P15600.astra (10 tries)
...
-----------------------
В процессе выполнения этой команды с помощью lsof | grep exim не видно обращения к какому-либо каталогу tmp
 

dened

New member
Сообщения
39
#4
pdp-ls -M /var/mail/den
итого 24
drwx--S---m-- 2 den mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:CCNRA cur
-rw-------m-- 1 den mail Уровень_0:Низкий:Нет:ehole dovecot-uidlist
-rw-------m-- 1 den mail Уровень_0:Низкий:Нет:ehole dovecot-uidvalidity
-r--r--r--m-- 1 den mail Уровень_0:Низкий:Нет:ehole dovecot-uidvalidity.5e8daa9a
-rw-------m-- 1 den mail Уровень_0:Низкий:Нет:ehole MAC-0-0x0.dovecot.index.log
drwx--S---m-- 2 den mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:CCNRA new
drwx--S---m-- 2 den mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:CCNRA tmp
 

oko

New member
Сообщения
1 257
#5
to dened
А у вас точно по конфигу exim4 именно в /var/mail хранит maildir_home? Насколько помню, по умолчанию должен использоваться /var/spool/mail. Тогда понятно, почему maildir_home defer ругается на права (не может найти tmp-каталог или tmp-файл в непредназначенной для этого директории)...
 
Последнее редактирование:

dened

New member
Сообщения
39
#6
"А у вас точно по конфигу exim4 именно в /var/mail хранит maildir_home?"
Как проверить?
Я запускаю dpkg-reconfigure exim4-conf, после того, как прошел все пункты делаю update-exim4.conf
в /var/lib/exim4/config.autogenerated:


debug_print = "T: maildir_home for $local_part@$domain"
driver = appendfile
.ifdef MAILDIR_HOME_MAILDIR_LOCATION
directory = MAILDIR_HOME_MAILDIR_LOCATION
.else
directory = /var/mail/$local_part
.endif
.ifdef MAILDIR_HOME_CREATE_DIRECTORY
create_directory
.endif
.ifdef MAILDIR_HOME_CREATE_FILE
create_file = MAILDIR_HOME_CREATE_FILE
.endif
delivery_date_add
envelope_to_add
return_path_add
maildir_format
.ifdef MAILDIR_HOME_DIRECTORY_MODE
directory_mode = MAILDIR_HOME_DIRECTORY_MODE
.else
directory_mode = 0700
.endif
.ifdef MAILDIR_HOME_MODE
mode = MAILDIR_HOME_MODE
.else
mode = 0600
.endif
mode_fail_narrower = false
current_directory = /var/mail/$local_part
 

dened

New member
Сообщения
39
#7
Короче дело тёмное. Чтобы знали - установлен Смоленск 1.6 со всеми обновлениями. Тут дело в правах на папки, и в костылях русбитеха, которыми они подпирают свой парсек. Но где именно сломался костыль не ясно. Скорее всего обновили пакет и забыли протестить.
 

oko

New member
Сообщения
1 257
#8
to dened
Поглядел. Да, по умолчанию все-таки /var/mail, а не /var/spool/mail. Только конфиг вам надо было показывать из /etc/exim4/*.conf, а не файл автогенерации. Хотя суть одно и то же...
Проблема в том, что вместо нормального postfix выбрали exim с его извращенным синтаксисом и схемой работы. Вестимо, потому что МКЦ к нему было прикрутить проще...
 

dened

New member
Сообщения
39
#9
to dened
Поглядел. Да, по умолчанию все-таки /var/mail, а не /var/spool/mail. Только конфиг вам надо было показывать из /etc/exim4/*.conf, а не файл автогенерации. Хотя суть одно и то же...
Проблема в том, что вместо нормального postfix выбрали exim с его извращенным синтаксисом и схемой работы. Вестимо, потому что МКЦ к нему было прикрутить проще...
/etc/exim4/update-exim4.conf.conf - это шаблон, генерируемый dpkg-reconfigure exim4-config, на его основе потом создаётся настоящий конфиг, который и лежи в /var/lib/exim4. Последний exim4 и использует.
Но дело не в этом. Если удалить все папки, используемые под почту, то exim их заново создаст и поставит на них права по своему усмотрению. И права эти будут мешать его же работе. Отсюда вывод - виноват сборщик пакета. Отправляю в багтрекер.
 

dened

New member
Сообщения
39
#11
Частично решено.
Вместо пакета exim4-daemon-light нужно использовать exim4-daemon-heavy, который поддерживает дополнительные атрибуты файлов.
Однако о консольной почте в этом случае можно забыть.

echo "Hello" | mail -s "Hello from root" user@host
2020-04-09 18:13:41 1jMSJh-000669-Pg Failed to create spool file /var/spool/exim4//input//1jMSJh-000669-Pg-D: Operation not permitted
Can't send mail: sendmail process failed with error code 1
 

oko

New member
Сообщения
1 257
#12
to dened
Это все здорово, конечно, но для Смоленска использование exim4-daemon-heavy как бы в Руководстве администратора, Часть 1 прописано. Не совсем явно, конечно, но зато с упором на мандатные метки (читай, стандартный вариант)...
Т.е. проблема была в том, что был установлен неверный вариант exim4?
Кстати, /var/lib/exim4/config.autogenerated - это только часть. Правки можно вносить в /etc/exim4/update-exim4.conf.conf и /etc/exim4/exim4.conf.template - они будут приниматься сразу после рестарта демона. Что крайне тупо, повторюсь (ибо template - это ж должен быть "шаблон" для создания конфиг-файла. а не сам конфиг-файл, ага)...