Watch
0
0
Fork
You've already forked hyperhive
0

refuse a namespaced agent whose /nix/store cannot be idmapped

Refs #5888
This commit is contained in:
atlas 2026-11-06 11:04:45 +01:00
commit af739dc8ea

View file

@ -488,6 +488,11 @@ hive-c0re can't read, or none, leaves the agent as it is.
user. hive-priv mounts the agent's `state/`, `harness/`, `work/` and
`claude/` dirs and its socket dir with `owneridmap`, and every other bind too
(config, `/knowledge`, the runtime dir), whose owner shows as root inside.
- **`/nix/store` has to be on ext4, btrfs or xfs.** nspawn mounts the store
into a namespaced container idmapped, which other filesystems (overlayfs,
tmpfs, older zfs) refuse. `WriteNspawnFlags` for an opted-in agent checks
the `statfs` type of `/nix/store` and fails with the type and the fix,
before it moves anything. Check a host with `findmnt -no FSTYPE /nix/store`.
- **The container starts with `--private-users=pick --private-users-ownership=map`.**
nspawn idmaps the root at mount time, so a different range for `pick` never
walks or chowns it.