Come prevenire la deriva delle autorizzazioni nelle cartelle dei dati di Home Assistant

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Il disallineamento delle autorizzazioni si verifica quando i dati di Home Assistant sono ancora presenti, ma il processo che ora li monta rileva una proprietà, mappature UID/GID, modalità di accesso o un contesto di sicurezza diversi da quelli del processo che li ha creati. Il problema si manifesta spesso dopo una migrazione dell’host, un ripristino, una modifica della modalità Docker, una copia su NAS o un’operazione manuale chown/chmod.

Prevenitelo documentando il modello previsto di montaggio e proprietà prima di una modifica, preservando i metadati durante le copie e testando l’accesso sia in lettura sia in scrittura dopo la ricreazione. Non risolvete ogni problema con chmod -R 777: nasconde il disallineamento e indebolisce il modello di ripristino.

Documentate il confine di archiviazione prima di modificare le autorizzazioni

Iniziate identificando se /config è un volume gestito da Docker, un bind mount Linux, un montaggio di rete o un percorso all’interno di una macchina virtuale. La strategia corretta per la proprietà dipende dal livello che gestisce effettivamente i file.

Le attuali istruzioni per l’installazione Container di Home Assistant rendono concreto questo contratto di archiviazione: la cartella host selezionata viene montata in /config con accesso in lettura e scrittura. Annotate il percorso sorgente esatto, il punto di montaggio e la modalità di accesso, invece di basarvi soltanto sul nome della cartella.

Annotate anche se Home Assistant viene eseguito tramite Docker standard, Docker rootless, uno spazio dei nomi utente rimappato o un gestore di container NAS. Le identità numeriche visualizzate dentro e fuori dal container potrebbero non coincidere.

La mappatura UID e GID può cambiare senza spostare i file

Una cartella può rimanere nello stesso percorso host mentre la mappatura effettiva degli utenti cambia al suo interno. È comune quando si passa da Docker rootful a rootless, si abilita la rimappatura dello spazio dei nomi utente o si ripristinano i dati su un host con account locali diversi.

La documentazione attuale di Docker sulla mappatura UID/GID mostra che le modalità rootless e dello spazio dei nomi utente traducono le identità dei container in ID host diversi. Di conseguenza, un file che risulta avere la proprietà corretta su un host può diventare non scrivibile dopo la modifica del modello di distribuzione.

Confrontate la proprietà numerica con ls -ln o strumenti equivalenti, invece di affidarvi soltanto ai nomi degli account, che sul nuovo host potrebbero corrispondere a numeri diversi.

Preservate i metadati durante la copia dei dati di Home Assistant

Uno strumento di migrazione o una copia tramite interfaccia grafica può preservare il contenuto dei file, ma non la proprietà, i bit di modalità, gli ACL, gli attributi estesi o le etichette di sicurezza. Questo può lasciare leggibili i file YAML, mentre database, dati nascosti, certificati o directory necessarie per la scrittura iniziano a dare problemi in seguito.

Utilizzate un metodo di copia che preservi i metadati effettivamente usati dalla vostra piattaforma. Dopo il trasferimento, confrontate file e directory rappresentativi della sorgente e della destinazione prima di avviare Home Assistant.

La guida di ZimaSpace su come trattare account e autorizzazioni come una policy domestica ripetibile si applica anche in questo caso: la proprietà dovrebbe essere un elemento infrastrutturale deliberato, non il risultato di una serie di correzioni occasionali.

-15% OFF

Mantenete il montaggio in lettura e scrittura solo dove Home Assistant deve scrivere

Home Assistant deve poter aggiornare la configurazione persistente e il database. Un montaggio ricreato accidentalmente in sola lettura può consentire l’avvio e la lettura, ma causare in seguito il fallimento delle scritture, dei backup, dei commit del database o delle modifiche alla configurazione.

I percorsi host montati tramite bind mount possono essere esposti in lettura e scrittura oppure in sola lettura. La guida Docker sulla condivisione dei file mostra che la modalità effettiva del montaggio determina se un container può modificare la directory host. Controllate il montaggio in esecuzione invece di presumere che il file Compose sia stato applicato come previsto.

Al contrario, non rendete scrivibili directory host non pertinenti solo perché Home Assistant deve accedere a un singolo percorso di configurazione. Mantenete ristretto il confine delle autorizzazioni.

Utilizzate un test di accettazione delle autorizzazioni dopo ogni ripristino o ricreazione

Un avvio completato con successo dimostra solo una parte del contratto del filesystem. Home Assistant potrebbe leggere i file esistenti, ma fallire in seguito quando deve scrivere nel database, creare un backup, aggiornare un registro o salvare una dashboard.

  • Verificate che la configurazione prevista e le integrazioni vengano caricate.
  • Apportate una modifica innocua gestita dall’interfaccia e verificate che persista dopo il riavvio.
  • Verificate che Recorder scriva una nuova modifica dello stato.
  • Create un piccolo backup, se il tipo di installazione lo supporta.
  • Controllate i log per individuare errori di autorizzazione negata, filesystem in sola lettura o scrittura del database.

Se il test fallisce, correggete il proprietario, il gruppo, l’ACL, la mappatura dello spazio dei nomi o la modalità di montaggio specifici che gestiscono il percorso. Il disallineamento delle autorizzazioni è risolto quando la distribuzione documentata può ricreare l’accesso corretto senza comandi manuali di emergenza.

Supporto e consigli

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.