Home Assistantは、ファイルを再作成するときに親しみやすいホストのユーザー名を選びません。新しいファイルは通常、コンテナ内でそのファイルを作成したプロセスの数値UID、GID、umask、ACL、ファイルシステムのルールを引き継ぎます。
この違いはバインドマウントで表面化します。Linuxは数値IDを記録する一方、ホストとコンテナが同じ番号に異なる名前を割り当てることがあるためです。権限を変更する前に、Home Assistantを停止し、変更前後の数値上の所有者を記録し、実行中のプロセスを特定して、そのファイルがHome Assistant、エントリーポイント、バックアップツール、ホストのいずれによって作成されたのかを確認してください。
ファイルを作成したプロセスを確認する
ファイルの作成時刻または変更時刻を、コンテナの起動、リストア、更新、アドオンのジョブの時刻と比較します。次に、ホスト上の数値UIDとGID、およびコンテナ内のHome AssistantプロセスのIDを確認します。ユーザー名は異なる場合がありますが、比較の基準として信頼できるのは数値です。
コンテナに関する根本的な問題は、バインドマウントされたファイルがコンテナプロセスに使用されたIDで作成されることです。ホストファイルシステムの所有者不一致についての独立した解説では、名前だけを一致させても数値UIDとGIDの違いは解決しない理由が説明されています。
新しい所有者がコンテナプロセスと一致する場合、主な原因が確認できます。rootまたは別の補助プロセスと一致する場合は、Home Assistantの実行ユーザーを変更する前に、エントリーポイント、リストアツール、スケジュール済みジョブ、またはホスト側のスクリプトを調べてください。
マウント、ACL、ファイルシステムの境界を確認する
そのパスが意図したバインドマウントであり、名前付きボリュームやマウントによって隠されたイメージ内のディレクトリではないことを確認します。親ディレクトリの所有者、モード、デフォルトACL、およびファイルシステムがローカル、NFS、SMB、その他のネットワークストレージのいずれであるかを確認してください。
プロセスがファイルを作成できるのは、ファイルシステムが提示する権限とマッピングの範囲内だけです。NFSのIDマッピング、root squash、SMBのマウントオプション、デフォルトACL、制限の厳しいumaskによって、コンテナのUIDが正しくても、表示される所有者や書き込み権限が変わることがあります。
ランタイムUIDで作成した一時ファイルに期待どおりの所有者が設定される場合は、アプリケーション固有の作成元を調べます。誤った所有者が設定される場合は、まずマウントまたはファイルシステムのマッピングを修正してください。Home Assistantの設定を変更しても、その層を上書きすることはできません。
確認済みの所有権不一致だけを修正する
稼働中のデータベース、レジストリ、設定ファイルの所有権を変更する前に、Home Assistantを停止します。バックアップまたはスナップショットを作成し、影響を受けたパスだけを、確認済みのサービスUIDとGIDに変更してください。実行ビット、ACL、特殊権限は保持し、全ユーザーに書き込み可能にするような広範なモードは適用しないでください。
再作成後も同じランタイムIDが使われるようデプロイ定義を更新するか、イメージがデフォルトのIDで実行される必要がある理由を文書化し、ホスト側のパスをそのIDに合わせます。起動のたびにツリー全体へchownを実行する方法は避けてください。処理が遅くなり、設計上の誤りを隠し、他のサービスが所有するファイルまで変更する可能性があります。
直後の所有者不一致を修正した後のマウント、所有権、書き込みテスト、リストア動作に関する幅広い運用チェックリストについては、ZimaSpaceの権限のずれを防ぐガイドを参照してください。
再作成後と実際の書き込み後に所有権を検証する
Home Assistantを起動し、ファイルを再作成した正確な操作を実行します。新しいファイルに意図した数値上の所有者が設定され、Home Assistantがそのファイルを更新でき、ホスト側のバックアッププロセスが読み取れることを確認してください。書き込みを行わずに正常起動しただけでは、修正が成功したとはいえません。
一度再起動し、保存した設定からコンテナを再作成します。所有者、ACL、書き込み動作が、どちらのイベント後も安定している必要があります。権限拒否、読み取り専用データベース、バックアップ失敗、インテグレーションのセットアップエラーがないかログを確認してください。
バージョン間で作成元のIDが予期せず変わる場合、ネットワークファイルシステムによって所有権が書き換えられる場合、または必要なサービスがそのパスを安全に共有できない場合は、イメージのメンテナーまたはストレージ管理者に相談してください。数値ID、マウント定義、ファイルシステムの種類、最小限の再現手順を保存しておきます。
サポートとヒント
もっと読む

同時稼働するコンテナ向けにHome Assistantのデータベース接続を最適化する方法
実測したアクティブ接続数とレイテンシーに基づいて外部Recorderデータベースを調整し、最大接続数を増やしたり、別のホストのプールをコピーしたりしないでください。

Home Assistantでジョブやインポートの重複を防ぐ方法
トレースと一意の操作キーを使用して、重複するアクションやレコードを生成せずに自動化とインポートを安全に再試行できるようにします。

データベースボリュームがいっぱいになった後にHome Assistantを修復する方法
まず証拠を削除せずに満杯になったRecorderボリュームから復旧し、その後増加を抑え、再起動後も履歴と自動化が維持されることを確認する。

