rig/commands/lib
Claude b8e8e79b87 fix(users): the host= marker gates the box role, not the incus group
users apply consulted the host= trait only when group incus was ABSENT,
so a host=no or marker-less box that nonetheless carried the group handed
box-role users a bare `usermod -aG incus` — the socket with no tier, which
incus-user answers by lazily building an unhardened project under whoever
opens it.

The marker now decides in both directions through one pure gate,
assert_marker_hosts_vms, so the verdict is identical whether or not the
group exists. The marker wins over the machine deliberately — it is the
box's declared identity and every other host= decision already treats it
as authoritative — but not silently: when the group exists and the trait
disagrees, the skip names the contradiction and rig bootstrap as the fix.

Closes #58

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 17:29:20 +00:00
..
runner-config.sh bootstrap: infer the tailnet tag from the pre-auth key, verify the granted tag 2026-07-17 15:27:09 +00:00
sshd.sh feat(bootstrap): box tenant roles — claude, codex, grok, staging (#31) 2026-07-18 19:49:20 +00:00
tenant-config.sh feat(bootstrap): box tenant roles — claude, codex, grok, staging (#31) 2026-07-18 19:49:20 +00:00
users-config.sh fix(users): the host= marker gates the box role, not the incus group 2026-07-19 17:29:20 +00:00