47 lines
2.9 KiB
Markdown
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.
|