From 06ba89697b95b14db35189e43e758c03e87b49fb Mon Sep 17 00:00:00 2001 From: Thomas Stallinger Date: Tue, 1 Sep 2026 15:45:57 +0200 Subject: [PATCH] mint-image: device_fingerprint ohne sudo lesbar machen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /etc/tuxflotte auf 0755 gelockert (war 0700) + device_fingerprint explizit chmod 0644 - andere Dateien darin (agent.credentials) bleiben per eigenem chmod 0600 individuell geschuetzt, wie /etc/shadow trotz durchsuchbarem /etc selbst. Nutzer-Feedback (01.09.2026, echter Hardware-Test): "/etc/tuxflotte/ device_fingerprint sollte für User lesbar ohne sudo sein" - war trotz der schon vorhandenen Absicht (Klartext, kein Secret, siehe Kommentar dort) nicht moeglich, weil das umschliessende Verzeichnis 0700 blieb. --- backends/mint-image/postinstall.sh | 16 +++++++++++++--- .../tuxflotte/backends/mint-image/postinstall.sh | 16 +++++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/backends/mint-image/postinstall.sh b/backends/mint-image/postinstall.sh index f20f032..c4a13bb 100644 --- a/backends/mint-image/postinstall.sh +++ b/backends/mint-image/postinstall.sh @@ -16,7 +16,12 @@ tuxflotte_agent_fatal() { ANODE_URL="https://anode.tuxflotte.de" AGENT_REPO_RAW="https://git.tuxflotte.de/admin/provisioning-agent/raw/branch/main" -install -d -m 0700 /etc/tuxflotte || +# 0755 statt 0700: /etc/tuxflotte muss fuer alle Nutzer durchsuchbar sein, +# damit device_fingerprint (siehe unten) ohne sudo lesbar ist - einzelne +# Dateien darin bleiben trotzdem individuell geschuetzt (agent.credentials +# unten explizit chmod 0600, genau wie /etc/shadow trotz durchsuchbarem +# /etc selbst geschuetzt bleibt). +install -d -m 0755 /etc/tuxflotte || tuxflotte_agent_fatal "Verzeichnis /etc/tuxflotte konnte nicht angelegt werden." # Identifikation soll in beide Richtungen moeglich sein: die Geraeteliste @@ -24,10 +29,15 @@ install -d -m 0700 /etc/tuxflotte || # gab es auf dem installierten Geraet selbst keine Datei, um ihn mit einem # einfachen "cat" gegenzupruefen - build_device_fingerprint() (10_hardware.sh) # berechnet ihn nur einmalig waehrend des Live-Boots und haelt ihn sonst -# nirgends fest. Absichtlich Klartext, kein Secret - reiner Hardware-Hash, -# kein chmod 0600 noetig wie bei agent.credentials. +# nirgends fest. Absichtlich Klartext, kein Secret - reiner Hardware-Hash. +# Live gefunden (01.09.2026, echter Hardware-Test): trotz dieser Absicht +# war die Datei vorher nicht ohne sudo lesbar, weil das umschliessende +# Verzeichnis 0700 war (siehe oben) - explizites chmod 0644 hier, damit +# sich das nicht auf einen zufaelligen umask verlaesst. echo "${TUXFLOTTE_DEVICE_FINGERPRINT}" > /etc/tuxflotte/device_fingerprint || tuxflotte_agent_fatal "device_fingerprint konnte nicht abgelegt werden." +chmod 0644 /etc/tuxflotte/device_fingerprint || + tuxflotte_agent_fatal "Rechte fuer device_fingerprint konnten nicht gesetzt werden." cat > /etc/tuxflotte/runtime_blueprint.json <<'RUNTIME_BLUEPRINT_EOF' ${TUXFLOTTE_BLUEPRINTS_JSON} diff --git a/boot-medium/config/includes.chroot/opt/tuxflotte/backends/mint-image/postinstall.sh b/boot-medium/config/includes.chroot/opt/tuxflotte/backends/mint-image/postinstall.sh index f20f032..c4a13bb 100644 --- a/boot-medium/config/includes.chroot/opt/tuxflotte/backends/mint-image/postinstall.sh +++ b/boot-medium/config/includes.chroot/opt/tuxflotte/backends/mint-image/postinstall.sh @@ -16,7 +16,12 @@ tuxflotte_agent_fatal() { ANODE_URL="https://anode.tuxflotte.de" AGENT_REPO_RAW="https://git.tuxflotte.de/admin/provisioning-agent/raw/branch/main" -install -d -m 0700 /etc/tuxflotte || +# 0755 statt 0700: /etc/tuxflotte muss fuer alle Nutzer durchsuchbar sein, +# damit device_fingerprint (siehe unten) ohne sudo lesbar ist - einzelne +# Dateien darin bleiben trotzdem individuell geschuetzt (agent.credentials +# unten explizit chmod 0600, genau wie /etc/shadow trotz durchsuchbarem +# /etc selbst geschuetzt bleibt). +install -d -m 0755 /etc/tuxflotte || tuxflotte_agent_fatal "Verzeichnis /etc/tuxflotte konnte nicht angelegt werden." # Identifikation soll in beide Richtungen moeglich sein: die Geraeteliste @@ -24,10 +29,15 @@ install -d -m 0700 /etc/tuxflotte || # gab es auf dem installierten Geraet selbst keine Datei, um ihn mit einem # einfachen "cat" gegenzupruefen - build_device_fingerprint() (10_hardware.sh) # berechnet ihn nur einmalig waehrend des Live-Boots und haelt ihn sonst -# nirgends fest. Absichtlich Klartext, kein Secret - reiner Hardware-Hash, -# kein chmod 0600 noetig wie bei agent.credentials. +# nirgends fest. Absichtlich Klartext, kein Secret - reiner Hardware-Hash. +# Live gefunden (01.09.2026, echter Hardware-Test): trotz dieser Absicht +# war die Datei vorher nicht ohne sudo lesbar, weil das umschliessende +# Verzeichnis 0700 war (siehe oben) - explizites chmod 0644 hier, damit +# sich das nicht auf einen zufaelligen umask verlaesst. echo "${TUXFLOTTE_DEVICE_FINGERPRINT}" > /etc/tuxflotte/device_fingerprint || tuxflotte_agent_fatal "device_fingerprint konnte nicht abgelegt werden." +chmod 0644 /etc/tuxflotte/device_fingerprint || + tuxflotte_agent_fatal "Rechte fuer device_fingerprint konnten nicht gesetzt werden." cat > /etc/tuxflotte/runtime_blueprint.json <<'RUNTIME_BLUEPRINT_EOF' ${TUXFLOTTE_BLUEPRINTS_JSON}