Skip to main content
User guide

ID ranges

How the local range and each trusted domain's range decide uid / gid, what the range types mean, how an AD user's uid is derived from its SID, and why a range cannot simply be edited later.

ID ranges define the intervals uid / gid are allocated from. Local users take sequential numbers from the local range; AD users are not in the directory, their uid is computed from the SID through the trust range, so every Linux host sees the same number.

ID ranges

Shipped ranges

RangeTypeNotes
<REALM>_id_rangelocal domain rangea random 200000-ID block chosen at install (example 60000–261999); all IPA users / groups come from it. The random start avoids collisions when IPA domains are merged later
<REALM>_subid_rangesubordinate ID rangefor Subordinate IDs, from 2147483648
<AD domain>_id_rangeAD trust rangecreated with the trust, 200000 IDs, one per trusted AD domain

IPA implements the subordinate range internally as an AD-trust type range (ipa-ad-trust, with an internal SID); ipa idrange-show --raw returns the same value, so the list showing its type as "Active Directory domain range" is expected.

Fields

Range

FieldMeaning
First Posix ID of the range / Number of IDs in the rangethe interval; ranges must not overlap
Primary RID base / Secondary RID baselocal range only, for Samba: an IPA user's SID = domain SID + RID, RID = base + (uid − start). Secondary base is for groups
Range typesee below
Domain SIDthe AD domain a trust range is bound to
Range typeMeaning
ipa-locallocal
ipa-ad-trustAD users' uids are computed: start + (RID mod range size). AD needs no POSIX attributes
ipa-ad-trust-posixread uidNumber / gidNumber from the AD user object (AD carries and maintains RFC 2307 attributes). The range must cover the numbers actually used in AD

The ipa-ad-trust algorithm guarantees the same SID yields the same uid on every client; once RIDs exceed the range size (more than 200000 AD users) a second range for the same domain is needed.

Boundaries

  • A range that has handed out IDs cannot be shrunk or have its start moved; growth means adding a range, not editing one.
  • Changing the local range does not renumber existing users; only new ones are affected.
  • Deleting a trust range makes AD users' uids vanish on Linux and file ownership turns numeric; recreating the range with the same parameters restores the same uids.
  • Client sssd caches do not follow range changes; run sss_cache -E afterwards.

On this page