ISO-Bau ohne sudo, Unit wieder voll gehaertet

build_customer_iso.sh braucht seit der Squashfs-Schicht kein root mehr:
sudo-Aufruf und sudoers-Datei entfallen, NoNewPrivileges,
CapabilityBoundingSet/AmbientCapabilities und RestrictSUIDSGID wieder an
(Ausnahmen aus ADR-0027 zurueckgenommen).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5.5 committed 2026-10-03 16:19:43 +02:00
1 parent b8015567f3
commit 16d2de6c3a
4 files changed
+25 -54

No files matched your search

+8 -10
View File
@@ -13,10 +13,10 @@ Dienst, siehe [ADR-0011](https://git.tuxflotte.de/admin/platform-docs/raw/branch
- Läuft unter einem eigenen, unprivilegierten System-User
`provisioning-server` (nicht root - siehe `provisioning-server.service`
und [ADR-0027](https://git.tuxflotte.de/admin/platform-docs/raw/branch/main/adr/0027-provisioning-server-de-root-per-scoped-sudo.md)).
Der Self-Service-ISO-Bau (`run_iso_build()` in `app.py`) braucht für
`unsquashfs`/`mksquashfs` weiterhin echtes root (Datei-Eigentümer-Erhalt im
Squashfs) - dafür eskaliert genau dieser eine Aufruf per eng gefasster
sudo-Regel, siehe `provisioning-server-iso-build.sudoers`.
Seit 03.10.2026 braucht auch der Self-Service-ISO-Bau (`run_iso_build()`
in `app.py`) kein root mehr: `build_customer_iso.sh` legt die Kundendaten
als eigene Squashfs-Schicht auf das Boot-Medium. Die frühere sudo-Regel
(ADR-0027) ist entfallen, die Unit hat die volle Härtung.
## Setup (lokal)
@@ -56,12 +56,10 @@ zusätzlich zum Code-Deploy nötig (einmalig, nicht Teil von `git pull`):
diesem User gehörend.
2. `provisioning-server.service` nach `/etc/systemd/system/` kopieren,
`systemctl daemon-reload && systemctl enable --now provisioning-server`.
3. `provisioning-server-iso-build.sudoers` nach
`/etc/sudoers.d/provisioning-server-iso-build` kopieren (Eigentümer
root:root, Modus 440), mit `visudo -cf` prüfen.
4. `tuxflotte-installer`-Repo an den Pfad aus `TUXFLOTTE_INSTALLER_DIR`
klonen (für den diese Sudo-Regel gilt - bei einem anderen Pfad die Regel
entsprechend anpassen).
3. `tuxflotte-installer`-Repo an den Pfad aus `TUXFLOTTE_INSTALLER_DIR`
klonen (für den Dienstbenutzer lesbar).
4. Arbeitsverzeichnis für den ISO-Bau `/srv/tuxflotte/build-tmp` dem
Dienstbenutzer übereignen (ohne dieses Verzeichnis `/var/tmp`).
**Öffentliche Erreichbarkeit über Pangolin ist nicht Teil dieses Repos** —
das ist ein separater Ops/DNS/Reverse-Proxy-Schritt.