idmap_tdb2 - Samba's idmap_tdb2 Backend for Winbind
The idmap_tdb2 plugin is a substitute for the default idmap_tdb backend
used by winbindd for storing SID/uid/gid mapping tables in clustered
environments with Samba and CTDB.
In contrast to read only backends like idmap_rid, it is an allocating
backend: This means that it needs to allocate new user and group IDs in
order to create new mappings. The allocator can be provided by the
idmap_tdb2 backend itself or by any other allocating backend like
idmap_tdb or idmap_ldap. This is configured with the parameter idmap
Note that in order for this (or any other allocating) backend to
function at all, the default backend needs to be writeable. The ranges
used for uid and gid allocation are the default ranges configured by
"idmap uid" and "idmap gid".
Furthermore, since there is only one global allocating backend
responsible for all domains using writeable idmap backends, any
explicitly configured domain with idmap backend tdb2 should have the
same range as the default range, since it needs to use the global uid /
gid allocator. See the example below.
range = low - high
Defines the available matching uid and gid range for which the
backend is authoritative. If the parameter is absent, Winbind fails
over to use the "idmap uid" and "idmap gid" options from smb.conf.
The tdb2 idmap backend supports a script for performing id mappings
through the smb.conf option idmap : script. The script should accept
the following command line options.
IDTOSID UID xxxx
IDTOSID GID xxxx
And it should return one of the following responses as a single line of
Note that the script should cover the complete range of SIDs that can
be passed in for SID to Unix ID mapping, since otherwise SIDs unmapped
by the script might get mapped to IDs that had previously been mapped
by the script.
This example shows how tdb2 is used as a the default idmap backend. It
configures the idmap range through the global options for all domains
encountered. This same range is used for uid/gid allocation.
idmap backend = tdb2
idmap uid = 1000000-2000000
idmap gid = 1000000-2000000
The original Samba software and related utilities were created by
Andrew Tridgell. Samba is now developed by the Samba Team as an Open
Source project similar to the way the Linux kernel is developed.