The idmap_tdb plugin is the default backend used by winbindd for storing SID/uid/gid mapping tables.
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_tdb backend itself or by any other allocating backend like idmap_ldap or idmap_tdb2. This is configured with the parameter idmap alloc backend.
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 tdb 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
This example shows how tdb 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.
[global] # "idmap backend = tdb" is redundant here since it is the default idmap backend = tdb idmap uid = 1000000-2000000 idmap gid = 1000000-2000000
This (rather theoretical) example shows how tdb can be used as the allocating backend while ldap is the default backend used to store the mappings. It adds an explicit configuration for some domain DOM1, that uses the tdb idmap backend. Note that the same range as the default uid/gid range is used, since the allocator has to serve both the default backend and the explicitly configured domain DOM1.
[global] idmap backend = ldap idmap uid = 1000000-2000000 idmap gid = 1000000-2000000 # use a different uid/gid allocator: idmap alloc backend = tdb idmap config DOM1 : backend = tdb idmap config DOM1 : range = 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.