Clear setgid when hardening Windows VM directories

A numeric chmod keeps setuid/setgid on a directory, so a setgid ~/Windows
stayed 2700 and failed the exact 700 privacy check, aborting the launch.
dockur marks an initially empty /shared setgid (chmod 2777) on first boot,
so this hits fresh installs the next time the bind anchors are recreated.
This commit is contained in:
Atos Lins committed 2026-09-17 17:44:26 -03:00
1 parent 9c5482c58d
commit bce0f512e0
3 files changed
+23 -2

No files matched your search

+4 -2
View File
@@ -580,7 +580,9 @@ prepare_caller_mounts() {
# Privacy is an explicit preflight step for both already-pinned sources, not
# a side effect halfway through the two-mount transaction. Old umask-022
# installs are hardened together before either Docker-facing anchor changes.
chmod 0700 -- "/proc/$BASHPID/fd/$storage_fd" "/proc/$BASHPID/fd/$shared_fd" || {
# The mode is symbolic because a numeric chmod keeps setuid/setgid on a
# directory, and dockur marks an initially empty /shared setgid (2777).
chmod u=rwx,go=,a-s -- "/proc/$BASHPID/fd/$storage_fd" "/proc/$BASHPID/fd/$shared_fd" || {
exec {storage_fd}<&-
exec {shared_fd}<&-
return 1
@@ -1015,7 +1017,7 @@ prepare_user_mount_sources() {
echo "omarchy-windows-vm: storage and shared must be different directories" >&2
return 1
}
chmod 0700 -- "$storage" "$shared"
chmod u=rwx,go=,a-s -- "$storage" "$shared"
}
storage_space_path() {