Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-2120GitHub issuePublicReceived

omarchy-windows-vm launch fails: chmod 0700 does not clear setgid bit on ~/Windows

Reported by m13072234271 · filed Sep 30, 2026Closed upstream on 2026-09-30 by its own reporter m13072234271. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

omarchy-windows-vm launch fails: chmod 0700 does not clear setgid bit on ~/Windowsrevision 1 · captured 2026-09-30 08:01 UTC via poll

What happened

omarchy windows vm launch exits with ❌ Failed to start Windows VM! even though the VM itself is healthy. omarchy windows vm status reports the container as stopped/exited, and re-running launch keeps failing.

Root cause

omarchy-windows-vm's prepare_caller_mounts() runs this privacy preflight on the user's mount sources (~/.windows and ~/Windows):

chmod 0700 -- "/proc/$BASHPID/fd/$storage_fd" "/proc/$BASHPID/fd/$shared_fd"
storage_mode=$(stat -Lc '%a' ...)
shared_mode=$(stat -Lc '%a' ...)
if [[ $storage_mode != 700 || $shared_mode != 700 ]]; then
  return 1
fi

The check assumes chmod 0700 results in mode 0700. On Linux that is true for files, but not for directories: chmod 0700 does not clear the setgid bit on a directory (only chmod g-s does). Verified on this system:

$ mkdir d && touch f && chmod 2755 d f
$ chmod 0700 d f
$ stat -c '%a %A %n' d f
2700 drwx--S--- d    # setgid survives on the directory
700  -rwx------ f    # cleared on the file

The setgid bit gets onto ~/Windows because the dockurr/windows container's Samba setup runs chmod 2777 on /shared when it is empty (/run/samba.sh):

elif [[ "$empty" == "Y" ]] && chmod 2777 "$dir" 2>/dev/null; then
...
# Keep newly created content in the shared group through the setgid bit.
if ! chmod 2777 "$dir"; then

So on first start with an empty ~/Windows, Samba sets the setgid bit; the next launch's chmod 0700 cannot remove it, the != 700 check fails, and launch bails out with the generic "Failed to start Windows VM!" message.

Steps to reproduce

  1. omarchy windows vm install (leaves ~/Windows empty)
  2. Start the VM once and let Samba initialize /shared (it runs chmod 2777)
  3. omarchy windows vm stop
  4. omarchy windows vm launch
  5. Launch fails; stat -c '%a' ~/Windows shows 2700 instead of 700

Expected

launch starts the VM.

Actual

launch prints ❌ Failed to start Windows VM! and exits 1.

Workaround

chmod g-s ~/Windows
omarchy windows vm launch

(Also drop a placeholder file into ~/Windows so Samba never sees it as empty and re-applies chmod 2777 on the next container start.)

Suggested fix

Clear the setgid bit explicitly on the mount sources in prepare_caller_mounts() (and anywhere else the script relies on chmod 0700 on a directory), e.g.:

chmod g-s -- "/proc/$BASHPID/fd/$storage_fd" "/proc/$BASHPID/fd/$shared_fd"

or accept a setgid-only mode (2xxx) as valid in the check.

System

  • Omarchy 4.0.4-1
  • Kernel 7.2.5-3-omarchy
  • CPU: AMD Ryzen 7 H 255 w/ Radeon 780M Graphics
  • Root filesystem: btrfs (LUKS)
  • docker image: dockurr/windows v6.05

Full diagnostic log: omarchy debug --no-sudo --print (898 lines) available on request.

View raw text
## What happened

`omarchy windows vm launch` exits with `❌ Failed to start Windows VM!` even though the VM itself is healthy. `omarchy windows vm status` reports the container as stopped/exited, and re-running launch keeps failing.

## Root cause

`omarchy-windows-vm`'s `prepare_caller_mounts()` runs this privacy preflight on the user's mount sources (`~/.windows` and `~/Windows`):

```bash
chmod 0700 -- "/proc/$BASHPID/fd/$storage_fd" "/proc/$BASHPID/fd/$shared_fd"
storage_mode=$(stat -Lc '%a' ...)
shared_mode=$(stat -Lc '%a' ...)
if [[ $storage_mode != 700 || $shared_mode != 700 ]]; then
  return 1
fi
```

The check assumes `chmod 0700` results in mode `0700`. On Linux that is true for **files**, but **not for directories**: `chmod 0700` does not clear the setgid bit on a directory (only `chmod g-s` does). Verified on this system:

```bash
$ mkdir d && touch f && chmod 2755 d f
$ chmod 0700 d f
$ stat -c '%a %A %n' d f
2700 drwx--S--- d    # setgid survives on the directory
700  -rwx------ f    # cleared on the file
```

The setgid bit gets onto `~/Windows` because the `dockurr/windows` container's Samba setup runs `chmod 2777` on `/shared` when it is empty (`/run/samba.sh`):

```bash
elif [[ "$empty" == "Y" ]] && chmod 2777 "$dir" 2>/dev/null; then
...
# Keep newly created content in the shared group through the setgid bit.
if ! chmod 2777 "$dir"; then
```

So on first start with an empty `~/Windows`, Samba sets the setgid bit; the next `launch`'s `chmod 0700` cannot remove it, the `!= 700` check fails, and launch bails out with the generic "Failed to start Windows VM!" message.

## Steps to reproduce

1. `omarchy windows vm install` (leaves `~/Windows` empty)
2. Start the VM once and let Samba initialize `/shared` (it runs `chmod 2777`)
3. `omarchy windows vm stop`
4. `omarchy windows vm launch`
5. Launch fails; `stat -c '%a' ~/Windows` shows `2700` instead of `700`

## Expected

`launch` starts the VM.

## Actual

`launch` prints `❌ Failed to start Windows VM!` and exits 1.

## Workaround

```bash
chmod g-s ~/Windows
omarchy windows vm launch
```

(Also drop a placeholder file into `~/Windows` so Samba never sees it as empty and re-applies `chmod 2777` on the next container start.)

## Suggested fix

Clear the setgid bit explicitly on the mount sources in `prepare_caller_mounts()` (and anywhere else the script relies on `chmod 0700` on a directory), e.g.:

```bash
chmod g-s -- "/proc/$BASHPID/fd/$storage_fd" "/proc/$BASHPID/fd/$shared_fd"
```

or accept a setgid-only mode (`2xxx`) as valid in the check.

## System

- Omarchy 4.0.4-1
- Kernel 7.2.5-3-omarchy
- CPU: AMD Ryzen 7 H 255 w/ Radeon 780M Graphics
- Root filesystem: btrfs (LUKS)
- docker image: `dockurr/windows` v6.05

Full diagnostic log: `omarchy debug --no-sudo --print` (898 lines) available on request.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.