Test schrijfrechten in een wegwerpbare zusterdirectory op hetzelfde aangekoppelde bestandssysteem, nooit door een actief Home Assistant-bestand te bewerken.
Een container kan configuratie lezen en toch falen wanneer Recorder, back-ups, camera's of integraties gegevens moeten aanmaken of vervangen. Begin met het vastleggen van de containeridentiteit en de exacte koppeling en voer vervolgens een test uit met aanmaken–hernoemen–synchroniseren–verwijderen in een lege directory die voor tests is gereserveerd. Stop als het opgeloste pad naar productiegegevens leidt of als wijzigingen in eigenaarschap bestaande bestanden zouden beïnvloeden.
Bevestig het runtimepad vóór het testen
Bepaal het exacte pad dat Home Assistant ziet en het hostpad of volume daarachter. Een shell op de host, een add-onshell en een shell in de Home Assistant-container kunnen verschillende bestandssystemen tonen. Een geslaagde schrijfactie aan de hostzijde bewijst niet dat de applicatienaamruimte naar de aangekoppelde bestemming kan schrijven.
Dit verschil in naamruimte komt naar voren in een uitgewerkte discussie waarin het wijzigen van hostrechten geen effect had op het afzonderlijke tijdelijke pad van de container. De praktische les uit het controleren van rechten in de container is dat je moet testen vanuit dezelfde runtime en hetzelfde pad die Home Assistant gebruikt.
PASS betekent dat het containerpad naar de bedoelde koppeling verwijst en dat de testshell de relevante runtimecontext gebruikt. FAIL betekent dat het pad ontbreekt, ergens anders naartoe is gemapt of alleen op de host zichtbaar is. Corrigeer de koppelingsdefinitie voordat je rechten test; anders beschrijft elk later resultaat het verkeerde bestandssysteem.
Maak een geïsoleerde testdirectory
Maak, wanneer de opslagindeling dat toestaat, één lege directory naast de productiestructuur, niet erin. Geef deze een onmiskenbare tijdelijke naam en controleer of ze niets bevat. De testdirectory moet dezelfde koppeling, hetzelfde bestandssysteem en dezelfde toegangscontroles op de bovenliggende map delen als het doel, maar mag geen configuratie-, database-, back-up- of mediabestanden bevatten.
Containergebruikers ontdekken vaak dat het eigenaarschap en de geconfigureerde runtimegebruiker in de volledige directorystructuur met elkaar moeten overeenkomen. Een op Docker gerichte Home Assistant-discussie raadt aan de containergebruiker af te stemmen op het eigenaarschap van de directory. Dat ondersteunt het gebruik van een afzonderlijke rechtentest voordat je bestaande inhoud aanraakt.
PASS betekent dat de lege directory op de bedoelde opslag bestaat en dat de productie ongewijzigd blijft. FAIL betekent dat er geen veilige zusterdirectory kan worden aangemaakt of dat de bovenliggende map door een andere service wordt beheerd. Stop in dat geval en gebruik een onderhoudskopie of stagingkoppeling in plaats van te improviseren in de actieve datadirectory.
Voer aanmaken, hernoemen, synchroniseren en verwijderen uit als één test
Maak vanuit de Home Assistant-runtime een uniek genoemd testbestand van nul bytes aan, schrijf een korte marker zonder geheimen, hernoem het, vraag een synchronisatie van het bestandssysteem aan, lees de marker terug en verwijder het bestand. Elke bewerking test een andere mogelijkheid: aanmaken, inhoud schrijven, de directory bijwerken, persistentie, teruglezen en opruimen.
Een eenvoudige schrijfbaarheidsvlag kan misleidend zijn, omdat ACL's, alleen-lezenkoppelingen, quota en directoryrechten bewerkingen verschillend beïnvloeden. Mislukte Home Assistant-padbewerkingen die worden gemeld als geen toegang tot pad laten zien waarom zowel het padbeleid van de applicatie als de rechten van het bestandssysteem moeten worden meegenomen.
PASS vereist dat elke bewerking slaagt en dat de testdirectory weer leeg is. Als aanmaken lukt maar hernoemen of verwijderen mislukt, controleer dan de rechten en ACL's van de bovenliggende directory. Als synchroniseren of teruglezen mislukt, stop dan met migratiewerk en onderzoek de koppeling of het opslagpad in plaats van ruimere rechten toe te kennen.
Vergelijk de identiteit van de test met het productie-eigenaarschap
Leg de numerieke eigenaar, groep, modus en ACL van het testbestand vast en vergelijk die kenmerken met de productiedirectory zonder een van beide te wijzigen. De vergelijking laat zien of nieuwe bestanden zouden worden aangemaakt onder een identiteit die niet overeenkomt met bestaande inhoud. Namen zijn onvoldoende wanneer twee hosts dezelfde numerieke ID's verschillend toewijzen.
De veiligste correctie is beperkt: stem de gedocumenteerde runtime-identiteit af en pas alleen de paden aan die de service moet beheren. De ZimaSpace-gids over het voorkomen van rechtenverschuiving biedt de bredere basis voor eigenaarschap van verplaatste of gecontaineriseerde gegevens.
Als de testidentiteit overeenkomt en alle bewerkingen slagen, is schrijfrechten voor nieuwe objecten op dat pad bewezen, maar niet voor elk bestaand bestand. Als kenmerken verschillen, herschrijf dan niet recursief de actieve structuur tijdens productie. Plan een correctie met de service gestopt, inclusief een terugdraairegistratie en een bekende, goede momentopname van het eigenaarschap.
Valideer de echte functie met een wegwerpbaar doel
Sluit af met de minst risicovolle actie op applicatieniveau die wegwerpbare gegevens kan gebruiken, zoals een testexport of tijdelijke mediasubmap. Richt Recorder, back-ups of configuratieschrijfacties niet op productie alleen om het resultaat te bevestigen. Bootst het oorspronkelijke pad en de runtime na, terwijl de payload vervangbaar blijft.
Een geslaagde test betekent dat de functie de verwachte wegwerpbare uitvoer aanmaakt, Home Assistant geen rechtenfout in het logboek meldt en het opruimen na één containerherstart slaagt. Een fout nadat de bestandssysteemtest is geslaagd, wijst op een allowlist van de applicatie, een padinstelling, een beveiligingsprofiel of een functiespecifieke regel, niet op een probleem met de basisrechten om te schrijven.
Stop wanneer zowel de geïsoleerde test als de test van de wegwerpbare functie na een herstart slagen. Schakel hulp in wanneer de koppeling opnieuw alleen-lezen wordt, het numerieke eigenaarschap na implementatie verandert of het bestandssysteem I/O-fouten meldt. Die resultaten vereisen herstel van de opslag of orkestratie, niet ruimere toegang tot productiegegevens.
Ondersteuning & Tips
Meer om te lezen

Home Assistant werkt via wifi, maar niet via ethernet of VPN
Test elk netwerkpad afzonderlijk, controleer de interface- en routeringsstatus, maak onderscheid tussen rechtstreeks IP-verkeer en ontdekking, en herstel vervolgens alleen de defecte laag.

Hoe je Home Assistant buiten gebruik stelt zonder onbeveiligde gegevens achter te laten
Bewijs de vervanging of archivering, trek elk vertrouwenspad in, wis elk gegevensdragend apparaat veilig en bewaar uitsluitend gedocumenteerde beschermde herstelkopieën.

Moet je automatische updates voor Home Assistant op een homeserver gebruiken?
Kies handmatige updates, updates met alleen meldingen of gefaseerde automatische updates op basis van de impact op het huishouden, het compatibiliteitsrisico, de observatietijd en...

