Linux3 min read· 3 practice problems

When only install scripts or runners fail because of /tmp noexec

A guide to separating the cases where noexec on /tmp makes only certain installers, self-hosted runners, or temp-file-based deploys fail.

On this page
  1. Typical symptom
  2. Signals to check first
  3. Logs and CLI examples
  4. Common misdiagnoses
  5. Safe recovery order
  6. Prevention
  7. Related InfraTree problems

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.

Practice with this guide

Reviewed problems about the same failure. Write the cause, recovery, and prevention yourself, then compare with the model answer.

Read next