LINUX.ORG.RU
ФорумAdmin

Exim, Ldap, чем заменить check_local_user?


0

0

Есть пользователи в ldap'e, которые видны в системе, но у некоторых пользователей local_part в email'e отличается от логина. 

Конфиг соответствующего router'a:
local_user:
  debug_print = "R: local_user for $local_part@$domain"
  driver = accept
  domains = +local_domains
  condition = ${if eq{}{${lookup ldapdn{LDAP_AUTH \
                ldap:///ou=Users,dc=example,dc=com??sub?(&(objectClass=CourierMailAccount) \
                mail=${local_part}@${domain}))}}}{no}{yes}}
  transport = LOCAL_DELIVERY
  cannot_route_message = Unknown user

Естественно так работать exim не хочет.
Например email - test@example.com, a пользователь находится в контейнере uid=testuser,ou=Users,dc=example,dc=com. 
Как заставить exim доставлять почту на test@example.com с правами пользователя testuser?

Использовать redirect.
local_user воообше не трогать

после правил для alias-ов вставить что-то типа

ldap_some_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup ldapm {DAP_AUTH ldap:///ou=Users,dc=example,dc=com?uid?sub?(&(objectClass=CourierMailAccount)(m
ail=${local_part}@${domain}))}}
  user = exim
  group = exim
  file_transport = address_file
  pipe_transport = address_pipe

tungus
()
Ответ на: комментарий от tungus

Спасибо, все работает )))

Теперь удивляюсь, чего ж сам-то не додумался через redirect сделать.

anti_social
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.