Testen Sie den Schreibzugriff in einem entsorgbaren Geschwisterverzeichnis auf demselben eingebundenen Dateisystem – niemals durch Bearbeiten einer aktiven Home-Assistant-Datei.
Ein Container kann Konfigurationen lesen und dennoch scheitern, wenn Recorder, Backups, Kameras oder Integrationen Daten erstellen oder ersetzen müssen. Beginnen Sie damit, die Containeridentität und den exakten Mount zu erfassen. Führen Sie anschließend in einem leeren, für Tests reservierten Verzeichnis eine Prüfung zum Erstellen, Umbenennen, Synchronisieren und Löschen durch. Brechen Sie ab, wenn der aufgelöste Pfad in Produktivdaten führt oder Änderungen am Eigentümer bestehende Dateien beeinträchtigen würden.
Bestätigen Sie vor dem Testen den Laufzeitpfad
Ermitteln Sie den exakten Pfad, den Home Assistant sieht, sowie den Hostpfad oder das Volume dahinter. Eine Shell auf dem Host, eine Add-on-Shell und eine Shell im Home-Assistant-Container können unterschiedliche Dateisysteme anzeigen. Ein erfolgreicher Schreibvorgang auf dem Host beweist nicht, dass der Anwendungs-Namespace in das eingebundene Ziel schreiben kann.
Dieser Unterschied zwischen Namespaces zeigt sich in einer ausführlich besprochenen Situation, in der Änderungen an den Hostberechtigungen den separaten temporären Pfad des Containers nicht beeinflussten. Die praktische Lehre aus dem Prüfen der Berechtigungen innerhalb des Containers lautet, aus derselben Laufzeitumgebung und über denselben Pfad zu testen, die Home Assistant verwendet.
PASS bedeutet, dass der Containerpfad auf den vorgesehenen Mount verweist und die Testshell den relevanten Laufzeitkontext verwendet. FAIL bedeutet, dass der Pfad fehlt, an einen anderen Ort verweist oder nur auf dem Host sichtbar ist. Korrigieren Sie die Mount-Definition, bevor Sie Berechtigungen testen. Andernfalls beschreibt jedes spätere Ergebnis das falsche Dateisystem.
Erstellen Sie ein isoliertes Prüfverzeichnis
Erstellen Sie, sofern das Speicherlayout dies zulässt, ein leeres Verzeichnis neben dem Produktivbaum – nicht innerhalb davon. Geben Sie ihm einen unverwechselbaren temporären Namen und prüfen Sie, dass es nichts enthält. Die Prüfung muss denselben Mount, dasselbe Dateisystem und dieselben übergeordneten Zugriffskontrollen wie das Ziel verwenden, darf aber keine Konfigurations-, Datenbank-, Backup- oder Mediendateien enthalten.
Containerbenutzer stellen häufig fest, dass Eigentümer und der konfigurierte Laufzeitbenutzer im gesamten Verzeichnisbaum übereinstimmen müssen. Eine auf Docker ausgerichtete Home-Assistant-Diskussion empfiehlt, den Containerbenutzer an den Verzeichniseigentümer anzupassen. Das unterstützt die Verwendung einer separaten Berechtigungsprüfung, bevor vorhandene Inhalte verändert werden.
PASS bedeutet, dass das leere Verzeichnis auf dem vorgesehenen Speicher existiert und die Produktivumgebung unverändert bleibt. FAIL bedeutet, dass kein sicherer Verzeichnisnachbar erstellt werden kann oder das übergeordnete Verzeichnis von einem anderen Dienst kontrolliert wird. Brechen Sie in diesem Fall ab und verwenden Sie eine Wartungskopie oder einen Staging-Mount, statt innerhalb des aktiven Datenverzeichnisses zu improvisieren.
Führen Sie Erstellen, Umbenennen, Synchronisieren und Löschen als einen Test durch
Erstellen Sie aus der Home-Assistant-Laufzeitumgebung eine eindeutig benannte Prüfdatei mit der Größe null, schreiben Sie eine kurze, nicht geheime Markierung hinein, benennen Sie sie um, fordern Sie eine Dateisystemsynchronisierung an, lesen Sie die Markierung zurück und löschen Sie die Datei. Jede Operation prüft eine andere Fähigkeit: Erstellen, Inhaltsänderung, Aktualisierung des Verzeichnisses, Persistenz, Rücklesen und Bereinigung.
Ein einfaches Schreibbarkeitskennzeichen kann irreführend sein, da ACLs, schreibgeschützte Mounts, Kontingente und Verzeichnisberechtigungen die einzelnen Vorgänge unterschiedlich beeinflussen. Bei Home Assistant gemeldete Pfadfehler wie kein Zugriff auf den Pfad zeigen, warum sowohl die Pfadrichtlinie der Anwendung als auch die Dateisystemberechtigungen berücksichtigt werden müssen.
PASS erfordert, dass jede Operation erfolgreich ist und das Prüfverzeichnis wieder leer ist. Wenn das Erstellen funktioniert, aber das Umbenennen oder Löschen fehlschlägt, prüfen Sie die Berechtigungen und ACLs des übergeordneten Verzeichnisses. Wenn die Synchronisierung oder das Rücklesen fehlschlägt, brechen Sie die Migrationsarbeiten ab und untersuchen Sie den Mount oder Speicherpfad, statt umfassendere Berechtigungen zu vergeben.
Vergleichen Sie die Prüfidentität mit den Eigentumsverhältnissen in der Produktivumgebung
Erfassen Sie den numerischen Eigentümer, die Gruppe, den Modus und die ACL der Prüfdatei und vergleichen Sie diese Attribute mit dem Produktivverzeichnis, ohne eines von beiden zu ändern. Der Vergleich zeigt, ob neue Dateien unter einer Identität erstellt würden, die mit den vorhandenen Inhalten inkompatibel ist. Namen allein reichen nicht aus, wenn zwei Hosts dieselben numerischen IDs unterschiedlich zuordnen.
Die sicherste Korrektur ist gezielt: Richten Sie die dokumentierte Laufzeitidentität aus und passen Sie nur die Pfade an, die der Dienst verwalten muss. Der ZimaSpace-Leitfaden zum Verhindern von Berechtigungsabweichungen liefert die umfassendere Grundlage für Eigentumsverhältnisse bei verschobenen oder containerisierten Daten.
Wenn die Prüfidentität übereinstimmt und alle Operationen erfolgreich sind, ist der Schreibzugriff für neue Objekte auf diesem Pfad nachgewiesen – nicht jedoch für jede vorhandene Datei. Wenn sich die Attribute unterscheiden, schreiben Sie den aktiven Baum während des Produktivbetriebs nicht rekursiv neu. Planen Sie eine Korrektur bei angehaltenem Dienst mit einem Rollback-Protokoll und einem bekannten, funktionierenden Snapshot der Eigentumsverhältnisse.
Validieren Sie die tatsächliche Funktion mit einem entsorgbaren Ziel
Schließen Sie mit der risikoärmsten Anwendungshandlung ab, die auf entsorgbare Daten zielen kann, etwa einem Testexport oder einem temporären Medienunterordner. Richten Sie Recorder, Backups oder Konfigurationsschreibvorgänge nicht nur zur Bestätigung des Ergebnisses auf Produktivdaten. Stellen Sie den ursprünglichen Pfad und die ursprüngliche Laufzeitumgebung nach, während die Nutzdaten austauschbar bleiben.
Ein bestandener Test bedeutet, dass die Funktion die erwartete entsorgbare Ausgabe erstellt, Home Assistant keinen Berechtigungsfehler protokolliert und die Bereinigung nach einem Neustart des Containers erfolgreich ist. Ein Fehlschlag nach bestandener Dateisystemprüfung weist eher auf eine Anwendungs-Allowlist, eine Pfadeinstellung, ein Sicherheitsprofil oder eine funktionsspezifische Regel als auf fehlende grundlegende Schreibberechtigungen hin.
Beenden Sie den Vorgang, wenn sowohl die isolierte Prüfung als auch der Test mit der entsorgbaren Funktion einen Neustart überstehen. Eskalieren Sie den Vorfall, wenn der Mount wieder schreibgeschützt wird, sich die numerischen Eigentumsverhältnisse nach der Bereitstellung ändern oder das Dateisystem Ein-/Ausgabefehler meldet. Diese Ergebnisse erfordern eine Reparatur des Speichers oder der Orchestrierung, nicht umfassendere Zugriffsrechte auf Produktivdaten.
Support & Tipps
Mehr zum Lesen

Home Assistant funktioniert über WLAN, aber nicht über Ethernet oder VPN
Testen Sie jeden Netzwerkpfad einzeln, überprüfen Sie den Status von Schnittstellen und Routing, unterscheiden Sie zwischen direkter IP-Verbindung und Erkennung und reparieren Sie anschließend...

So deinstallieren Sie Home Assistant, ohne ungeschützte Daten zu hinterlassen
Beweisen Sie den Austausch oder die Archivierung, widerrufen Sie jeden Vertrauenspfad, bereinigen Sie jedes datentragende Gerät und bewahren Sie nur dokumentierte, geschützte Wiederherstellungskopien auf.

Sollten Sie automatische Updates für Home Assistant auf einem Heimserver verwenden?
Wählen Sie manuelle, ausschließlich benachrichtigungsbasierte oder stufenweise automatische Updates anhand der Auswirkungen auf den Haushalt, des Kompatibilitätsrisikos, der Beobachtungszeit und der Bereitschaft zur Wiederherstellung.

