POSIX identity
The POSIX identity is the Linux user and groups a person's tool calls run as, derived from the policy.
| Policy object | Linux object |
|---|---|
| person | bc_person_<shortID> user with a primary group of the same name |
| circle | bc_circle_<circleID> group |
| everyone | bc_shared supplementary group |
| service internals | blueclaw user |
Names are lowercased, reduced to [a-z0-9_-] and capped at 31 characters, with a hash suffix when normalizing lost information, so two people cannot collide onto one account (internal/security/posix_identity.go). The admin circle is not projected to a group; admin authority is a policy concept.
UIDs and GIDs are allocated from 100000 upward through a persisted table, which also adopts existing bc_ users and groups, so a person keeps the same numeric identity across restarts and file ownership does not drift. Resolving an identity fails closed: an unknown user or group is an error and never falls back to the daemon's own identity.
On macOS the helper creates identities through dscl and dseditgroup and reads accounts from Directory Service; projected people get /usr/bin/false as a shell and are hidden from the login window. On Linux it uses useradd, groupadd and usermod.