Record the parent-only descriptor requirement
The runtime presence identity is handed to the workload as an inherited file descriptor, so Idunn requires the source file to be root-owned, mode 0400, and singly linked. Enrolment leaves it 0600, which fails. The nlink check is the interesting one: a second hard link would be a second path to the signing key, and a descriptor that cannot be reopened is the whole point of passing it this way. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
5a12ec2af8
commit
cc97ff9eaa
1 changed files with 1 additions and 0 deletions
|
|
@ -393,6 +393,7 @@ binding cannot widen access, and each one cost a failed deployment to discover:
|
|||
| `cache_root` parent | root-owned, not group- or world-writable | `/srv/build` is `idunn:idunn` and therefore fails; put caches under Idunn.s own root |
|
||||
| frozen source stage | root-owned, non-writable | source is frozen *as* `idunn`, then copied into a root-owned actuation stage |
|
||||
| runner network | must exist | the binding names a docker network; the operator provisions it |
|
||||
| runtime presence identity | `root:root`, mode `0400`, `nlink` 1 | passed to the workload as a parent-only descriptor, so it must be unwritable and unaliased -- a second hard link would be a second path to the signing key |
|
||||
|
||||
**The Idunn unit also needs the target.s roots.** `ProtectSystem=full` makes
|
||||
`/etc` read-only, so a target whose `runtime_root` is not in `ReadWritePaths`
|
||||
|
|
|
|||
Loading…
Reference in a new issue