LINUX.ORG.RU

История изменений

Исправление Dima_228, (текущая версия) :

Первый блин комом. Изменил ACL на RCPT TO на такой чтобы можно было настроить индивидуальные правила для каждого юзера каждого домена (в теории) но чтобы не забивать дефолтным файлом всех юзеров - только при наличии файла используются правила из него, при отсутствии файла используется дефолтное правило acl_check_rcpt которое стояло в конфиге до того как я туда полез.

#acl_smtp_rcpt = acl_check_rcpt
acl_smtp_rcpt = ${if exists{/etc/exim4/domains/$domain/acl_rule_$local_part} {/etc/exim4/domains/$domain/acl_rule_$local_part} {acl_check_rcpt}}

Имеется 2 юзера: user1 и user2. На первого есть файл с кастомным правилом, на второго нет. Первый юзер перестал принимать письма:

attempt to use tainted ACL text "/etc/exim4/domains/test.mydomain.com/acl_rule_user1"
temporarily rejected RCPT <user1@test.mydomain.com>: internal configuration error

но при этом видно что acl_smtp_rcpt корректно разворачивается в путь, этот файл находит (а для юзера 2 не находит потому используется дефолтное значение. По запросу attempt to use tainted ACL text в кавычках гугл выдает ровно 1 не релевантный результат…

Написано в доках что значение is expanded before use, далее If the string begins with a slash, Exim uses it as a filename, and reads its contents as an ACL. То есть сначала подставляются переменные, потом это рассматривается как строка, и если она как в моем случае начинается со слеша - правило читается из файла.

internal configuration error возникает независимо от содержимого файла: это может быть даже одно слово accept. Права на файл правильные, те же что accounts, aliases и прочие рядом. В чем может быть проблема?

Исходная версия Dima_228, :

Первый блин комом. Изменил ACL на RCPT TO на такой чтобы можно было настроить индивидуальные правила для каждого юзера каждого домена (в теории) но чтобы не забивать дефолтным файлом всех юзеров - только при наличии файла используются правила из него, при отсутствии файла используется дефолтное правило acl_check_rcpt которое стояло в конфиге до того как я туда полез.

#acl_smtp_rcpt = acl_check_rcpt
acl_smtp_rcpt = ${if exists{/etc/exim4/domains/$domain/acl_rule_$local_part} {/etc/exim4/domains/$domain/acl_rule_$local_part} {acl_check_rcpt}}

Имеется 2 юзера: user1 и user2. На первого есть файл с кастомным правилом, на второго нет. Первый юзер перестал принимать письма:

attempt to use tainted ACL text "/etc/exim4/domains/test.mydomain.com/acl_rule_user1"
temporarily rejected RCPT <user1@test.mydomain.com>: internal configuration error

но при этом видно что acl_smtp_rcpt корректно разворачивается в путь, этот файл находит (а для юзера 2 не находит потому используется дефолтное значение. По запросу attempt to use tainted ACL text в кавычках гугл выдает ровно 1 не релевантный результат…