Jak skonfigurować identyfikatory użytkowników kontenerów w wielu udziałach NAS

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.

Skonfiguruj identyfikatory użytkowników kontenerów w wielu udziałach NAS, mapując rzeczywistą identyfikację numeryczną każdego procesu kontenera na właściciela, grupę, listę ACL i tryb montowania każdego udziału, którego potrzebuje.

Nie wymuszaj jednego UID jako właściciela wszystkich zbiorów danych i nie używaj chmod 777 jako strategii integracji. Serwer multimediów może potrzebować dostępu tylko do odczytu do zdjęć, program do pobierania może potrzebować dostępu do odczytu i zapisu w udziale przychodzącym, a kontener kopii zapasowych może wymagać innego chronionego miejsca docelowego. Używaj własności do określania głównej odpowiedzialności, a grup lub list ACL do współdzielonego dostępu.

Zapisz trzy identyfikatory przed zmianą uprawnień

Dla każdej usługi zapisz identyfikator UID/GID właściciela po stronie NAS, numerycznego użytkownika i grupy procesu wewnątrz kontenera oraz wszelkie konwencje tożsamości charakterystyczne dla obrazu, takie jak PUID/PGID. Te trzy wartości są często mylone, ponieważ nazwy użytkowników mogą wyglądać identycznie, mimo że numeryczne identyfikatory się różnią.

Aktualne wyjaśnienie, czym są PUID i PGID, jasno pokazuje tę różnicę: PUID i PGID to zmienne interpretowane przez wybrane obrazy kontenerów, a nie uniwersalne ustawienia Dockera.

Zweryfikuj działający proces za pomocą id wewnątrz kontenera i sprawdź pliki hosta, używając numerycznych informacji o własności. Nie zakładaj, że wartości zapisane w Compose faktycznie sterują procesem, chyba że obraz obsługuje tę metodę.

Używaj głównego właściciela i współdzielonych grup dla danych między usługami

Udział używany przez jedną aplikację może mieć dedykowanego właściciela. Udział zapisywany przez kilka usług zwykle łatwiej zarządzać za pomocą celowo skonfigurowanej współdzielonej grupy lub listy ACL, która przyznaje tylko operacje wymagane przez te usługi.

Praktyczne wyjaśnienie własności opartej na numerycznych UID i GID pokazuje, dlaczego pliki montowane przez powiązanie zachowują numeryczną własność hosta oraz dlaczego dopasowanie lub celowe mapowanie tych identyfikatorów zapobiega tworzeniu plików należących do roota i awariom uprawnień.

Na przykład w przepływie pracy związanym z multimediami program do pobierania może być właścicielem plików tymczasowych, a zarówno program do pobierania, jak i organizator mogą należeć do grupy media. Ustaw dziedziczenie uprawnień katalogów, domyślne listy ACL lub odpowiednie zachowanie umask, aby nowe pliki automatycznie zachowywały współdzielony dostęp.

Przyznawaj każdemu udziałowi tylko prawa montowania potrzebne kontenerowi

Tożsamość to tylko jedna warstwa. Nawet poprawnie zmapowany UID nie może zapisywać przez montowanie powiązane tylko do odczytu, a kontener z szerokimi uprawnieniami systemu plików można nadal bezpiecznie ograniczyć, montując bibliotekę w trybie tylko do odczytu.

Wyjaśnienie z 2026 roku dotyczące nadpisywania użytkownika w czasie działania pokazuje, jak montowania powiązane korzystają z własności hosta oraz jak ustawienia user: w czasie działania mogą dopasować identyfikatory procesów, a jednocześnie ostrzega, że wymuszenie użytkownika może zepsuć obrazy, których logika uruchamiania oczekuje innych uprawnień.

Udokumentuj każdą ścieżkę hosta, ścieżkę kontenera, tryb montowania, wymagane operacje i odpowiedzialną usługę. Używaj montowań tylko do odczytu dla bibliotek, z których usługa jedynie korzysta, a dostęp do zapisu ogranicz do najmniejszej ścieżki, która rzeczywiście go wymaga.

-15% OFF

Celowo obsługuj różne modele list ACL na NAS

Listy ACL SMB/NFSv4, listy ACL POSIX, mapowanie tożsamości NFS i proste bity trybu Unix mogą prezentować różne widoki dostępu. Udział, który działa przez SMB jako jeden użytkownik NAS, może nadal odrzucać proces kontenera korzystający z innej identyfikacji numerycznej na hoście.

Powiązany artykuł ZimaSpace na temat zmian uprawnień NAS pokazuje, dlaczego dziedziczenie list ACL w miejscu docelowym, tożsamość SMB, UID/GID kontenera i umask należy diagnozować jako osobne warstwy.

Gdy kilka protokołów korzysta z jednego zbioru danych, wybierz jeden model uprawnień i udokumentuj go. Wielokrotne mieszanie zmian list ACL w interfejsie NAS z poleceniami powłoki chmod i chown może sprawić, że kolejny plik będzie zachowywał się inaczej niż poprzedni.

Przetestuj tworzenie plików przez każdego zapisującego przed zastosowaniem zmian rekursywnie

Utwórz tymczasowy katalog testowy z docelową własnością i listą ACL. Z każdego kontenera przetestuj wyświetlanie zawartości, odczyt, tworzenie, zmianę nazwy i usuwanie, ograniczając się do operacji wymaganych przez daną usługę. Następnie sprawdź na NAS numerycznego właściciela, grupę, tryb i odziedziczoną listę ACL nowego pliku.

Jeśli stare pliki działają, ale nowo utworzone zawodzą w przypadku innej usługi, napraw ścieżkę tworzenia: członkostwo w grupie, domyślną listę ACL, umask lub tryb plików właściwy dla aplikacji. Rekurencyjna naprawa starych danych nie zapobiega powtórzeniu tego samego niedopasowania jutro.

Wdrażaj zmiany produkcyjnie dopiero wtedy, gdy każdy zapisujący tworzy pliki, z których następna wymagana usługa może korzystać bez podwyższonych uprawnień. Przejrzysty projekt UID/GID można odtworzyć, ponieważ mapowanie jest udokumentowane i powtarzalne, a nie dlatego, że każdy kontener przypadkiem działa jako ten sam użytkownik.

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.