the-custodian/docs/changes/CUST-WP-0073/privileged-preflight-r1/OPERATOR.md
codex 03f10eb91c
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Reject generated-only commits / generated-commit-guard (push) Successful in 9s
Record delivery choices and protected preflight preparation
2026-10-19 14:37:51 +02:00

47 lines
2.9 KiB
Markdown

# Review-only privileged preflight, CUST73 existing-host addendum
Prepared but NOT executed. This is a separate proposed read-only action; it grants
no unit replacement, sudo-policy change, credential issuance or service restart.
The original credential-boundary revision2 and existing-host addendum are unchanged.
Owner: railiance-cluster (effective k3s configuration); attended privileged executor
and execution approval remain the supervisor's responsibility. This script requires
root only to inspect protected service environment/config selectors and the active
k3s process environment. Protected values exist transiently in its memory; they
are never printed, hashed into receipts, logged, evaluated or forwarded elsewhere.
Only fixed boolean predicates and presence of four explicitly named configuration
keys leave the process. Any exception prints one constant refusal, never traceback.
After review, the human owner must place the exact reviewed script in a private
root-owned non-agent-writable directory and verify its SHA256 against SHA256SUMS.
Do not execute an agent-writable /tmp file under sudo or pipe a live checkout into
root Python. Proposed owner command, on the verified Railiance01 host:
```sh
sudo -- /usr/bin/python3 -I -B /root/cust73-preflight/preflight.py
```
No command above has been executed by this worker. Stage/install/approval are still
needed before the command is usable. No password, token or environment value is to
be pasted into the transcript. The script makes no writes, reload, restart, network
request or credential issuance call. Its only subprocess is read-only systemctl show
with fixed service and property names; all subprocess output is captured.
The checks bind the expected hashed machine identity, exact original unit digest
and root-owned file identity, stable main-process PID/starttime, absent unit drop-ins,
no pending reload, mode644 launch argument, no CLI config selector, and only known
EnvironmentFile sources. It parses a deliberately conservative simple assignment
subset; unsupported quoting/continuations, duplicate keys, unknown source paths,
selector presence, unreadable source or a changed unit/process require owner review.
It never follows a protected selector's value into another file. Default config and
config drop-ins must be absent for this exact baseline packet to pass.
A pass settles only the protected-input predicates for the prepared mode600 unit
change. It does not authorize that change or prove workload health, account isolation,
SSH principal denial, interactive assignment admission, native-model acceptance or
supervised privileged execution. A present selector is an owner inspection gate,
not an instruction to disclose its value or to clear it automatically.
Validation: eight fixture tests pass, including sensitive-value non-emission,
selector detection, complex/duplicate syntax refusal, non-root refusal before reads,
and constant-output exception handling. There is no live privileged receipt yet.