Debian Policy Manual ยง 9.2.2 UID and GID classes

Version 4.7.4.1, read 2026-08-07. Source

RangeAllocationClass
0–99staticGlobally allocated by the Debian project, identical on every Debian system. Maintained in base-passwd.
100–999dynamicDynamically allocated system users and groups. Created with adduser --system, which picks a free id according to adduser.conf.
1000–59999dynamicDynamically allocated user accounts.
60000–64999staticGlobally allocated by the Debian project, but created only when needed.
65000–65533reservedReserved.
65534–65534staticThe user nobody. The corresponding gid is the group nogroup.
65535–65535prohibitedMust not be used. It was the error return value when uid_t was 16 bits.
65536–99999dynamicDynamically allocated user accounts. adduser does not allocate here by default.
100000–600100000dynamicDynamically allocated subordinate user ids (subuid).
600100001–4294967293dynamicDynamically allocated user accounts. adduser does not allocate here by default.
4294967294–4294967294prohibited(uid_t)(-2). Used as the anonymous, unauthenticated user by some NFS implementations.
4294967295–4294967295prohibited(uid_t)(-1). Error return value.
Alpine Linux: no published range policy was found. No published UID/GID range policy for Alpine was found in the inspected aports tree. Searching the whole cloned tree for FIRST_SYSTEM_UID and LAST_SYSTEM_UID returns no matches. In practice Alpine allocates statically in alpine-baselayout, including above 100: ntp=123 and guest=405 as uids, abuild=300, utmp=406 and ping=999 as gids. The absence of a policy is recorded as an absence, not filled in with an assumption.

Sources

DistributionSource packagePackage versionCommitRead from source
Debianbase-passwd3.6.8a080557e1d592026-08-07
Alpine Linuxalpine-baselayout3.7.2a9c597c5cee02026-08-07