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

+7 -9
View File
@@ -3841,15 +3841,13 @@ def run_iso_build(
golden_image_file = str(golden_image)
try:
# De-Root-Umzug (07.09.2026): der Dienst selbst laeuft nicht mehr als
# root, aber build_customer_iso.sh braucht es weiterhin zwingend
# (unsquashfs/mksquashfs, CAP_MKNOD - siehe Kommentar dort). Statt den
# ganzen Prozess wieder privilegiert laufen zu lassen, nur dieser eine
# Aufruf per eng gefasster NOPASSWD-sudo-Regel (siehe
# /etc/sudoers.d/provisioning-server-iso-build).
# Laeuft seit 03.10.2026 ohne jede Privilegien-Eskalation:
# build_customer_iso.sh legt die Kundendaten als eigene kleine
# Squashfs-Schicht auf das Boot-Medium, statt das ganze Squashfs als
# root neu zu packen (vorher scoped sudo, ADR-0027 - abgeloest durch
# das Berechtigungskonzept, siehe platform-docs).
result = subprocess.run(
[
"sudo",
"bash",
f"{TUXFLOTTE_INSTALLER_DIR}/scripts/build_customer_iso.sh",
BOOT_MEDIUM_PATH,
@@ -3857,8 +3855,8 @@ def run_iso_build(
activation_code,
wifi_ssid or "",
# Geheimnisse per stdin statt als Argument (Kunden-ISO-Test
# 02.10.2026, Befund B6): Argumente landen ueber sudo im
# Klartext im Journal - siehe build_customer_iso.sh.
# 02.10.2026, Befund B6): Argumente stehen in der
# Prozessliste - siehe build_customer_iso.sh.
"-",
volid,
],