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