Jak zapobiegać rozbieżnościom uprawnień w folderach danych Plex

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Zapobiegaj rozbieżnościom uprawnień Plex, utrzymując stabilną numeryczną tożsamość procesu, zachowując właściciela podczas przywracania oraz testując dostęp do danych aplikacji i multimediów osobno.

Problemy z uprawnieniami często pojawiają się po aktualizacji obrazu, migracji hosta, ponownym utworzeniu stosu lub przywróceniu kopii zapasowej, ponieważ pliki pozostają, ale zmienia się ich numeryczny właściciel, grupa, lista ACL albo oczekiwany użytkownik procesu. Najbezpieczniejszą metodą zapobiegania jest sprawdzona baza dla `/config` i multimediów oraz jedna krótka weryfikacja po każdej zmianie. Unikaj szerokich rekurencyjnych napraw uprawnień, chyba że baza potwierdza, iż całe drzewo rzeczywiście wymaga tego samego właściciela.

Zapisz numerycznego właściciela przed zmianą uprawnień

Najłatwiej zapobiegać rozbieżnościom uprawnień, gdy znasz numeryczne UID i GID używane przez proces Plex oraz numerycznego właściciela zapisanego dla ścieżek danych aplikacji i multimediów. Nazwy użytkowników mogą różnić się między hostem a kontenerem, podczas gdy system plików nadal egzekwuje numery.

Mapowanie numerycznych UID i GID pozwala dopasować proces kontenera do właściciela na hoście. Zapisz te wartości w konfiguracji stosu zamiast polegać na nazwach użytkowników lub pamięci.

Uchwyć wynik polecenia `stat` lub jego odpowiednika dla jednego katalogu danych aplikacji, jednego pliku bazy danych i jednego katalogu multimediów, gdy system działa prawidłowo. Będą one stanowić punkt odniesienia po aktualizacjach obrazów, migracjach hosta, przywracaniu kopii zapasowych lub przenoszeniu magazynu.

Utrzymuj stabilną tożsamość procesu podczas aktualizacji kontenera

Aktualizacja obrazu może zmienić ustawienia domyślne, działanie punktu wejścia lub sposób interpretowania zmiennej środowiskowej. Jeśli efektywny proces Plex zostanie uruchomiony z inną tożsamością, nowo tworzone pliki mogą mieć innych właścicieli, a późniejsze ponowne uruchomienia mogą utracić dostęp do starszego stanu.

Po zmianie platformy lub obrazu utrata dostępu do zapisu danych aplikacji może sygnalizować, że efektywna tożsamość procesu nie odpowiada już plikom, które musi aktualizować.

Po każdej aktualizacji obrazu lub hosta sprawdź UID/GID procesu wewnątrz działającego kontenera i, jeśli to właściwe, utwórz plik testowy w tymczasowej ścieżce z prawem zapisu. Jeśli numery zmieniły się niespodziewanie, napraw konfigurację procesu, zanim nowe prawa własności się rozpowszechnią.

Oddziel dostęp do zapisu danych aplikacji od dostępu do multimediów

Stan aplikacji Plex zwykle wymaga dostępu do odczytu i zapisu, podczas gdy biblioteki multimediów mogą wymagać wyłącznie odczytu, chyba że używany proces celowo pozwala innym narzędziom zarządzać plikami. Nadanie obu ścieżkom jednego szerokiego zestawu uprawnień ukrywa faktycznie wymaganą odpowiedzialność i zwiększa zakres skutków błędu.

Stabilny dostęp kontenera zależy od zgodności PUID i PGID, a nie od nieograniczonych bitów uprawnień. Dopasuj dostęp do roli usługi zamiast trwale stosować uprawnienia umożliwiające zapis wszystkim użytkownikom.

Zdefiniuj oczekiwany dostęp osobno dla `/config`, multimediów i tymczasowych danych transkodowania. Po zmianach przetestuj proces Plex względem każdej ścieżki. Nieudana próba usunięcia plików w ścieżce multimediów tylko do odczytu może być zamierzona; nieudana próba utworzenia dzienników bazy danych w ścieżce danych aplikacji — nie.

Zadbaj o zachowanie właściciela i list ACL podczas przywracania

Kopia zapasowa może zawierać wszystkie pliki Plex, a mimo to doprowadzić do rozbieżności uprawnień, jeśli narzędzie przywracania zapisze je na koncie administratora, usunie listy ACL lub zmieni właściciela grupy. Następny kontener zobaczy pozornie kompletne dane, ale nie będzie mógł ich spójnie aktualizować.

Przed uruchomieniem przywrócony właściciel musi zostać porównany z tożsamością procesu, aby kompletna kopia zapasowa nie została ponownie otwarta jako nieczytelne drzewo danych aplikacji.

Uwzględnij właściciela, grupę, tryb i zachowanie list ACL w teście przywracania, a nie tylko sumy kontrolne i liczbę plików. Przywróć niewielką próbkę do alternatywnej lokalizacji i porównaj metadane. Jeśli narzędzie nie potrafi zachować uprawnień, dodaj do procedury wyraźny krok ustawiania właściciela po przywróceniu.

Po pomyślnym przejściu testu próbki powtórz kontrolę za pomocą tego samego narzędzia i tych samych opcji, które zostaną użyte podczas rzeczywistego odtwarzania. Test zachowania uprawnień zależny od innej, ręcznej metody kopiowania nie jest dowodem, że produkcyjny proces tworzenia kopii zapasowej jest bezpieczny.

Monitoruj rozbieżności za pomocą krótkich testów zamiast napraw rekurencyjnych

Rekurencyjne polecenia `chmod` lub `chown` mogą ponownie uruchomić Plex, a jednocześnie przepisać uprawnienia, które celowo różniły się w multimediach, kopiach zapasowych lub współdzielonych danych aplikacji. Bezpieczniejszy cykl utrzymania wykrywa dokładną ścieżkę, w której wystąpiła rozbieżność, i koryguje wyłącznie wymagane prawa własności lub dostępu.

Gdy zawodzą kontrole uprawnień danych aplikacji, przetestuj wskazaną ścieżkę z tożsamością procesu Plex przed zmianą punktu montowania, właściciela, listy ACL lub użytkownika.

Jeśli zmiany uprawnień zbiegają się z wymianą kontenera, proces zachowania danych kontenera musi zapewniać wspólną kontrolę nad tożsamością procesu i lokalizacją danych.

Wsparcie i wskazówki

Więcej do przeczytania

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.