Idmap feature request/suggestion
Nimrod Sapir
NIMRODS at il.ibm.com
Tue May 15 03:04:58 MDT 2012
Hello
I am working for a development team in IBM which is planing to use Samba
as a CIFS front-end solution for our product. When looking into the id
mapping capabilities of Samba, I came up with a few gaps which are
required to adjust Samba to our needs. As far as I understand, some of
those features required to close those gaps were already discussed by the
Samba team. The gaps we are seeing are:
LDAP is not supported as id mapping only backend, but as a full
authentication/id mapping mechanism. So, if we would like to allow the
user to authenticate windows accounts using AD, while using ldap to match
the SID of those users to the UID of their corresponding linux accounts,
that cannot be done.
When using NIS (by using idmap_nss), the system assumes that mapping is
done in the form of domain_name\userName -> userName. We would like to
allow the user some more flexibility regarding the name mapping between
Windows and Linux user accounts. Looking at the code, it seems that a
solution could be to extand the idmap_nss module to support those kind of
rules (the list of rules can be kept on a text file or tdb). Of course,
this should not affect the default behavior of the module. I'm not sure if
such feature has ever been discussed.
For all of the mapping methods, failing to retrieve the uid using the
external database, will fail the entire id mapping process. This means
that the customer will have to keep and maintain the mapping for all
windows accounts to linux UIDs on the external database (including for the
many users which do not have both Windows and Linux user names). I believe
that a feature that allows multiple idmap backend was already discussed in
this presentation:
http://www.samba.org/~obnox/presentations/sambaXP-2011/sambaxp-2011-talk-idmap-handout.pdf
Anyway, a reasonable solution would be to add two additional
parameters: "idmap config: secondary_backend" and "idmap config :
secondary_range" which will contain details of a secondary backend (which
will likely be rid/autorid or tdb2). If the system fails in locating
the mapping in the external DB it will fail back to the secondary backend,
thus allowing the user to minimize the amount of administration needed for
id mapping. Since the id mapping code is extremely modular, it seems that
it shouldn't be very hard to create a generic solution to support
secondary backend.
I'm not a Samba expert, so you are welcome to correct me if I'm wrong
here. Of course, if some of my suggestion will be accepted by the
community, my team will probably be able to help with the development and
testing of the relevant code.
Thanks a lot!
Nimrod Sapir
IBM - Israel
More information about the samba-technical
mailing list