Home Assistant nie wybiera przyjaznej nazwy użytkownika hosta podczas ponownego tworzenia pliku. Nowy plik zwykle dziedziczy numeryczny UID, GID, umask, ACL oraz reguły systemu plików procesu, który utworzył go wewnątrz kontenera.
Staje się to widoczne w przypadku montowania bind mount, ponieważ Linux zapisuje identyfikatory numeryczne, a host i kontener mogą przypisywać tym samym liczbom różne nazwy. Przed zmianą uprawnień zatrzymaj Home Assistant, zapisz starych i nowych właścicieli numerycznych, zidentyfikuj proces uruchomieniowy oraz ustal, czy plik został utworzony przez Home Assistant, punkt wejścia, narzędzie do tworzenia kopii zapasowych czy hosta.
Potwierdź, który proces utworzył plik
Porównaj czas utworzenia lub modyfikacji pliku z uruchomieniem kontenera oraz zadaniem przywracania, aktualizacji lub dodatku. Następnie sprawdź numeryczny UID i GID na hoście oraz tożsamość procesu Home Assistant wewnątrz kontenera. Nazwy użytkowników mogą się różnić; wiarygodnym punktem porównania są liczby.
Problem z kontenerem polega na tym, że pliki w montowanym katalogu bind są tworzone z tożsamością używaną przez proces kontenera. Niezależne wyjaśnienie niezgodności właściciela systemu plików hosta pokazuje, dlaczego sama zgodność nazw nie rozwiązuje różnic numerycznych UID i GID.
Jeśli nowy właściciel odpowiada procesowi kontenera, główna przyczyna została potwierdzona. Jeśli odpowiada rootowi lub innemu pomocniczemu procesowi, sprawdź punkt wejścia, narzędzie przywracania, zaplanowane zadanie lub skrypt uruchamiany po stronie hosta, zanim zmienisz użytkownika uruchomieniowego Home Assistant.
Sprawdź montowanie, ACL i granicę systemu plików
Potwierdź, że ścieżka jest właściwym montowaniem bind, a nie wolumenem nazwanym lub katalogiem obrazu ukrytym przez montowanie. Sprawdź właściciela i tryb katalogu nadrzędnego, domyślną listę ACL oraz to, czy system plików jest lokalny, NFS, SMB lub oparty na innej sieciowej pamięci masowej.
Proces może utworzyć plik wyłącznie zgodnie z uprawnieniami i mapowaniem udostępnianym przez system plików. Mapowanie tożsamości NFS, root squashing, opcje montowania SMB, domyślne ACL oraz restrykcyjny umask mogą zmienić widocznego właściciela lub dostęp do zapisu, nawet gdy UID kontenera jest prawidłowy.
Jeśli plik tymczasowy utworzony z użyciem UID procesu uruchomieniowego otrzyma oczekiwanego właściciela, przejdź do ustalenia twórcy właściwego dla aplikacji. Jeśli otrzyma niewłaściwego właściciela, najpierw napraw montowanie lub mapowanie systemu plików; zmiana konfiguracji Home Assistant nie ominie tej warstwy.
Napraw wyłącznie potwierdzoną niezgodność właściciela
Zatrzymaj Home Assistant przed zmianą właściciela aktywnej bazy danych, rejestru lub pliku konfiguracyjnego. Utwórz kopię zapasową lub migawkę, a następnie zmień wyłącznie dotkniętą ścieżkę na zweryfikowany UID i GID usługi. Zachowaj bity wykonywania, listy ACL i uprawnienia specjalne, zamiast stosować szeroki tryb, taki jak dostęp do zapisu dla wszystkich.
Zaktualizuj definicję wdrożenia, aby po ponownym utworzeniu kontenera używana była ta sama tożsamość uruchomieniowa, albo udokumentuj, dlaczego obraz musi działać z domyślną tożsamością, i dopasuj do niej ścieżkę na hoście. Unikaj wykonywania chown na całym drzewie katalogów przy każdym uruchomieniu; może to działać wolno, ukrywać błędy projektowe i zmieniać pliki należące do innych usług.
Przewodnik ZimaSpace dotyczący zapobiegania rozbieżnościom uprawnień zawiera szerszą listę kontrolną dotyczącą montowań, właścicieli, testów zapisu i zachowania podczas przywracania po skorygowaniu bieżącej niezgodności właściciela.
Zweryfikuj właściciela po ponownym utworzeniu i rzeczywistym zapisie
Uruchom Home Assistant i wywołaj dokładnie tę operację, która ponownie utworzyła plik. Potwierdź, że nowy plik ma zamierzonego właściciela numerycznego, Home Assistant może go aktualizować, a proces tworzenia kopii zapasowych po stronie hosta może go odczytać. Pomyślne uruchomienie bez wykonania zapisu nie dowodzi, że problem został rozwiązany.
Uruchom ponownie usługę i odtwórz kontener z zapisanej konfiguracji. Właściciel, ACL i działanie zapisu muszą pozostać stabilne po obu tych zdarzeniach. Sprawdź dzienniki pod kątem komunikatów o odmowie dostępu, bazie danych tylko do odczytu, nieudanej kopii zapasowej lub błędach konfiguracji integracji.
Skontaktuj się z opiekunem obrazu lub administratorem pamięci masowej, jeśli tożsamość tworząca plik zmienia się nieoczekiwanie między wersjami, sieciowy system plików przepisuje właściciela lub wymagana usługa nie może bezpiecznie współdzielić ścieżki. Zachowaj identyfikatory numeryczne, definicję montowania, typ systemu plików i minimalny przypadek odtwarzający problem.
Wsparcie i wskazówki
Więcej do przeczytania

Jak zoptymalizować połączenia z bazą danych Home Assistant dla kontenerów działających jednocześnie
Dostosuj zewnętrzną bazę danych Recordera na podstawie zmierzonej liczby aktywnych połączeń i opóźnień, zamiast zwiększać maksymalną liczbę połączeń lub kopiować pulę z innego hosta.

Jak zapobiegać duplikowaniu zadań lub importów w Home Assistant
Używaj śladów i unikalnych kluczy operacji, aby można było bezpiecznie ponawiać automatyzacje i importy bez tworzenia zduplikowanych działań ani rekordów.

Jak naprawić Home Assistant po zapełnieniu woluminu bazy danych
Odzyskaj działanie po całkowitym zapełnieniu woluminu Recordera bez wcześniejszego usuwania dowodów, a następnie ogranicz przyrost danych i potwierdź, że historia oraz automatyzacje przetrwają ponowne...

