Re: [exim] local_user section with check_local_user removed …

Top Page
Delete this message
Reply to this message
Author: Graeme Fowler
Date:  
To: Luke Kenneth Casson Leighton
CC: exim-users
New-Topics: Re: [exim] local_user section with check_local_user removed (as advised
Subject: Re: [exim] local_user section with check_local_user removed (as advised by most cyrus HOWTOs) causes problems
On 01/02/2007 02:12, Luke Kenneth Casson Leighton wrote:
> many things that i should say before describing the issue i've
> discovered: not least is that i am not subscribed to this list so
> please cc me on any correspondance (without worrying about me getting it
> twice cos i won't ha ha)


I was tempted to just reply to the list, but then you wouldn't get the
reply (ha ha). That's really not a good way to introduce yourself to a
mailing list, is it?

Anyway:

> secondly is that whilst this deals with the configuration that is
> supplied by debian, what i don't wanna hear is replies along the lines
> of 'well that's a debian config, so get lost and go talk to the debian
> people who created that config'. the reason is because i do not believe
> this to be _specific_ to the debian config setup, but to be with the
> local_user section _itself_.


Incorrect. It's entirely down to the advice supplied by the Debian Cyrus
packages when interfacing with the Debian Exim4 package. Neither (I
expect, not being a Debian expert but having some small knowledge of the
Exim4 package) are likely to be "vanilla" systems and both will (as
Exim4 does) have their own Debian-isms.

I'd love to tell you to get lost, but as one of the list admins that
would be rude. So I'll just say that this really, *really* isn't a
problem with the source-supplied Exim configuration. This *is* a Debian
specific issue when using Exim4 with Cyrus. I'll point out a little more
below.

> additionally, i'd like people here to dream up a solution, which i can
> _then_ go to the debian maintainers and say 'oh lookee here, there's
> a bug report, and a solution, and the solution wasn't created by me,
> so damn well go fix it' (or something a bit more polite but with the
> same general intent, anyway).


You need to go to the Cyrus maintainers, ideally. Or add in a method in
that router which is capable of checking the user, as described below.

> now, the really really _really_ bad thing is that this is a default
> exim4 config issue (for the past three years) and the removal of
> check_local_user is advice listed in the cyrus21 and cyrus22 Debian
> Exim HOWTOs. so it's kinda important that it gets fixed.


None of which relate to Exim in its' default, source-supplied state.
This config:

> the issue is caused by removing check_local_user from this:
>
>     ### router/900_exim4-config_local_user
>     #################################

>
>     # This router matches local user mailboxes. If the router fails,
>     # the error message is "Unknown user".

>
>     local_user:
>       debug_print = "R: local_user for $local_part@$domain"
>       driver = accept
>       domains = +local_domains
>       #check_local_user
>       local_parts = ! root
>       transport = LOCAL_DELIVERY
>       cannot_route_message = Unknown user


router/900_exim4-config_local_user is from the Debian split
configuration. The default, source-supplied config contains a completely
different local_user router which *does* include the check_local_user
option.

Removing that option makes the router accept any recipient except root
in any domain the local_domains list.

What you need is to replace check_local_user with a relevant local_parts
expansion instead, or a condition (exercise for anyone who's remotely
interested). If you had a file with all the Cyrus users in it, you could
have the following in your local_user router:

local_parts = lsearch;/etc/cyrus/listofusers

Hopefully that's enough for you to be getting on with. You'll find lots
of other information by linking from http://www.exim.org/ or with the
README.debian file that came with your various packages.

Now do we tell you to get lost? ;-)

Graeme