You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
T65 — Lay out the split users, directories and socket modes for a split-user VMM #2560
min finalize-install can lay out the split users and directories at the T57 design's modes, minvmd accepts and enforces those modes, and the guest and telemetry doors admit the minimal-vmm uid.
cargo nextest run -p minimal finalize_install_creates_the_split_users_dirs_and_drop_in
sockets:
crates/minvmd/src/sock.rs: prepare_socket_dir, restrict_owned_dir and verify_provider_dir_ownership accept 0710 with group minimal-vmm; enforce_socket_permissions and verify_socket_permissions take the mode and the group from the design's table
crates/minvmd/src/cmd/vmm_child.rs: creates the boot log with mode 0640
crates/minvmd/src/volume.rs: create_sparse_raw creates the data volume with mode 0600
crates/minvmd/src/control.rs: the guest door admits the minimal-vmm uid and the supervisor's own uid; the host door keeps its check
crates/minvmd/src/guest_telemetry.rs: accept_loop admits the minimal-vmm uid and the supervisor's own uid
cargo nextest run -p minvmd split_user_provider_dir_modes_are_enforced
### T65 — Lay out the split users, directories and socket modes for a split-user VMM
slice: S8
kind: task
covers: BEP-047
size: L
est: 380 code, 320 tests
executor: agent
difficulty: needs care
model: strongest
diagnostics: `min finalize-install` names the vm-users item and why it cannot set up the split users (a user-writable binary path, or a home directory the dedicated users cannot search)
observability: one debug log line when minvmd gives a socket 0600 because it does not hold the socket's group
layers:
- install:
- crates/minimal/src/cmd/finalize_install.rs: the vm-users script creates the `minimal-vmm` and `minimal-gvproxy` users and groups, the provider dir at 0710 group `minimal-vmm`, `vmm/`, `<gvproxy dir>`, `<gvproxy config dir>` and `<gate dir>` as `docs/design/2026-10-25-split-user-vmm-provider-dir.md` lays them out, and renders the sudoers drop-in; the item is not offered until T66 spawns through `sudo -n` (narrowed 2026-10-25 by the epic owner to the foundation #2561 delivered; arch C3 on #2561)
test: cargo nextest run -p minimal finalize_install_creates_the_split_users_dirs_and_drop_in
- sockets:
- crates/minvmd/src/sock.rs: `prepare_socket_dir`, `restrict_owned_dir` and `verify_provider_dir_ownership` accept 0710 with group `minimal-vmm`; `enforce_socket_permissions` and `verify_socket_permissions` take the mode and the group from the design's table
- crates/minvmd/src/cmd/vmm_child.rs: creates the boot log with mode 0640
- crates/minvmd/src/volume.rs: `create_sparse_raw` creates the data volume with mode 0600
- crates/minvmd/src/control.rs: the guest door admits the `minimal-vmm` uid and the supervisor's own uid; the host door keeps its check
- crates/minvmd/src/guest_telemetry.rs: `accept_loop` admits the `minimal-vmm` uid and the supervisor's own uid
test: cargo nextest run -p minvmd split_user_provider_dir_modes_are_enforced
produces: none
consumes: none
proof: `min finalize-install` can lay out the split users and directories at the T57 design's modes, minvmd accepts and enforces those modes, and the guest and telemetry doors admit the `minimal-vmm` uid.
depends on:
- blocked by T57
changed the title [-]T65 — Run gvproxy and the VMM child as their dedicated users[/-][+]T65 — Lay out the split users, directories and socket modes for a split-user VMM[/+]on Oct 25, 2026
Task
Covers:
Layers:
minimal-vmmandminimal-gvproxyusers and groups, the provider dir at 0710 groupminimal-vmm,vmm/,<gvproxy dir>,<gvproxy config dir>and<gate dir>asdocs/design/2026-10-25-split-user-vmm-provider-dir.mdlays them out, and renders the sudoers drop-in; the item is not offered until T66 spawns throughsudo -n(narrowed 2026-10-25 by the epic owner to the foundation feat(minimal): lay out the split VM users, directories and socket modes (T65) #2561 delivered; arch C3 on feat(minimal): lay out the split VM users, directories and socket modes (T65) #2561)cargo nextest run -p minimal finalize_install_creates_the_split_users_dirs_and_drop_inprepare_socket_dir,restrict_owned_dirandverify_provider_dir_ownershipaccept 0710 with groupminimal-vmm;enforce_socket_permissionsandverify_socket_permissionstake the mode and the group from the design's tablecreate_sparse_rawcreates the data volume with mode 0600minimal-vmmuid and the supervisor's own uid; the host door keeps its checkaccept_loopadmits theminimal-vmmuid and the supervisor's own uidcargo nextest run -p minvmd split_user_provider_dir_modes_are_enforcedWaits on:
Plan block
Generated by Claude Code