Zanim zagłębię się w proces synchronizacji identyfikatorów UID / GID na różnych komputerach z systemem Linux, chciałbym się dowiedzieć, jaka jest w rzeczywistości korzyść?
Wiem, że dzięki temu synchronizacja plików jest stosunkowo łatwa (ponieważ własność jest „naturalnie” zachowana). Można to jednak osiągnąć inaczej w zależności od usługi przesyłania.
Czy jest coś jeszcze, co zyskałoby na spójnych UID / GID?
linux
synchronization
uid
alex
źródło
źródło
Odpowiedzi:
dług techniczny
Z poniższych przyczyn o wiele łatwiej jest zająć się tym problemem wcześnie, aby uniknąć kumulacji długu technicznego . Nawet jeśli znajdziesz się już w takiej sytuacji, prawdopodobnie lepiej poradzić sobie z tym w najbliższej przyszłości niż pozwolić mu kontynuować budowanie.
sieciowe systemy plików
Wydaje się, że pytanie to koncentruje się na wąskim zakresie przesyłania plików między komputerami z lokalnymi systemami plików, co pozwala na określenie stanu własności określonego komputera.
Rozważania dotyczące systemu plików w sieci są z reguły największym powodem do synchronizacji mapowań UID / GID, ponieważ zwykle można wyrzucić to „osiągnięte inaczej”, o którym wspominałeś przez okno, gdy tylko wejdą na obraz. Jasne, że nie może mieć system plików w sieci dzielone między tych hostów teraz ... Ale co z przyszłością? Czy możesz szczerze powiedzieć, że między twoimi obecnymi hostami lub hostami, które zostaną utworzone w przyszłości, nigdy nie będzie przypadku użycia sieciowego systemu plików? Nie jest zbyt przyszłościowe myślenie, aby zakładać inaczej.
Załóżmy, że
/home
jest to sieciowy system plików współużytkowany międzyhost1
ihost2
w poniższych przykładach./home/user1
jest własnością innego użytkownika w każdym systemie. Uniemożliwia to użytkownikowi spójny dostęp do katalogu macierzystego lub modyfikowanie go w różnych systemach.host2
powoduje przerwanie uprawnieńhost1
. Czasami może zająć kilka z tych biletów, zanim ktoś się cofnie i zda sobie sprawę, że toczy się przeciąganie liny. Jedynym rozwiązaniem jest naprawienie niezgodnych mapowań identyfikatorów. Który prowadzi do...user1
ma identyfikatoruser2
, aleuser2
ma identyfikatoruser17
... i to tylko pierwszy system w klastrze) Im dłużej czekasz na rozwiązanie problemu, tym bardziej złożone stają się te łańcuchy, często wymagające przestoju aplikacji na wielu serwerach aby wszystko zsynchronizować.user2
onhost2
ma taki sam UID jakuser1
onhost1
, dzięki czemu mogą pisać/home/user1
dalejhost2
bez wiedzyuser1
. Zmiany te są następnie oceniane zgodniehost1
z uprawnieniamiuser1
. Co może pójść nie tak? (jeśliuser1
jest użytkownikiem aplikacji, ktoś w dev będzie odkryć jej zapisu i będzie dokonać zmian. Jest to czas udowodnione).Istnieją inne scenariusze, a są to tylko przykłady najczęstszych.
nazwy nie zawsze są opcją
Wszelkie skrypty lub pliki konfiguracyjne zapisane w oparciu o identyfikatory numeryczne stają się z natury niemożliwe do przeniesienia w twoim środowisku. Zasadniczo nie stanowi to problemu, ponieważ większość ludzi nie koduje ich na stałe, chyba że jest to absolutnie wymagane ... ale czasami narzędzie, z którym pracujesz, nie daje wyboru w tej sprawie. W tych scenariuszach musisz zachować n różnych wersji pliku skryptu lub pliku konfiguracyjnego.
Przykład:
pam_succeed_if
umożliwia korzystanie z polauser
,uid
igid
... opcja „grupa” jest nieobecnosc. Gdybyś znalazł się w sytuacji, w której oczekiwano, że wiele systemów zaimplementuje jakąś formę grupowego ograniczenia dostępu, będziesz miał n różnych odmian konfiguracji PAM. (lub przynajmniej jeden GID, na którym musisz unikać kolizji)scentralizowane zarządzanie
Odpowiedź natxo całkiem dobrze to ujęła.
źródło
gdy osiągniesz określony rozmiar (i zawsze jest to wcześniej niż myślisz), zdasz sobie sprawę, że zmiana hasła lub wyłączenie kont dla kogoś na wszystkich hostach to PITA. Dlatego ludzie używają systemów z bazami danych LDAP (lub NIS, ale nie robią tego, dziś nie są bezpieczne), takich jak openldap lub obecnie doskonała freeipa.
Wszystkie informacje o kontach / grupach są przechowywane w centralnej bazie danych, wszyscy gospodarze dzielą się tymi informacjami. Możesz zrobić o wiele więcej rzeczy: skorzystaj z informacji o użytkownikach, aby uzyskać uprawnienia do plików, ale także utwórz użytkowników wirtualnych dla wszystkich aplikacji, które mają powiązania ldap, zamiast tworzyć tam użytkowników (wiele aplikacji internetowych może korzystać ldap dla ich bazy danych użytkowników), utrzymuj centralną bazę danych reguł sudo, rozpowszechniaj środowisko autofs, utrzymuj strefy dns, ...
źródło