Typical symptom
When only install scripts or runners fail because of /tmp noexec is rarely a single wrong setting — it usually appears when the deploy boundary, runtime state, cache, permissions, and network path drift together. Users arriving from search should first narrow the symptom, using this guide's search intent — Targets search intents like /tmp noexec installer failed, runner setup fails on tmp noexec, and temporary extraction permission denied. — as the basis for the first signals to check.
Early on, rather than attempting a full rollback or a blind restart, check which node, Pod, job, user, or path the blast radius is tied to. If the scope is narrow, compare recent changes against the healthy state; if it is wide, start from the shared dependencies.
Signals to check first
The first thing to look at is not the last error line but the boundary where the same failure recurs. Grouping the problem around signals like permission denied in /tmp, runner install fails, temporary extraction execute denied, works after changing TMPDIR narrows the root-cause candidates even when the logs are long.
- First check which temp path the failing script actually extracts to and runs from.
- Check whether the mount option has noexec set and whether you can switch to a different tmp path.
- Distinguish whether the installer and runner fail only on shell scripts or on binary execution too.
- Compare whether the systemd service and manual execution use the same TMPDIR.
- If security policy requires keeping noexec, specify a working directory that can be used as a workaround.
Logs and CLI examples
The commands below don't hand you the answer directly; they are the first observation points for narrowing the cause. Comparing their output against a known-good point in time or a healthy resource with the same role cuts down time spent just retrying.
journalctl -u <service> --since '30 min ago'
df -h && df -ih
Common misdiagnoses
The most dangerous pattern in operational incidents is mistaking the symptom name for the cause. The same timeout, permission denied, or rollout failure can have its real cause in a different layer — cache, permission inheritance, Secret scope, stale client connections, or proxy headers.
- Changing only the file mode just because the failure message shows permission denied.
- Assuming that because manual execution works, systemd or the runner setup uses the same TMPDIR.
Safe recovery order
Recovery starts at the smallest unit. First pin the current state with read-only checks, then verify changes on a limited-impact resource. Hard-to-reverse actions like a full service restart, clearing the entire cache, or relaxing security policy should be chosen only after the root-cause candidates are narrowed.
- In environments that use noexec for hardening, first check whether deploy tools and runners extract to and execute from a temp path.
- This type looks like a bug in the script itself, but in fact the mount option makes the same binary fail only from certain paths.
Prevention
After an incident ends, record "why that state lingered" rather than just a one-line cause. Check whether there was a gap between automation and operational procedure — in the deploy pipeline, runtime reload, permission inheritance, certificate renewal, or network policy.
Following the related hubs and problems lets you re-diagnose the same symptom in other environments.
Related InfraTree problems
The problems below are public exercises for practicing this guide as real scenarios. Solving them after reading lets you practice splitting signals first and writing out the recovery direction as sentences.