Dlaczego system Windows przetwarza wszystkie obiekty podrzędne NTFS podczas zmiany listy kontroli rodzica?


10

Dlaczego system Windows przetwarza wszystkie obiekty podrzędne NTFS podczas zmiany listy kontroli rodzica?

Oczekiwałbym tego zachowania, gdybym zaznaczył pole „Zamień wszystkie uprawnienia do obiektów podrzędnych ...”, ale nawet jeśli to pole pozostanie niezaznaczone, system Windows przetworzy wszystkie elementy podrzędne.


@Ben Nie robi tego powłoka, ponieważ kaskada odziedziczonych uprawnień musi być replikowana do wszystkich obiektów potomnych z włączonym dziedziczeniem, więc należy to zrobić nawet podczas bezpośredniego wywoływania interfejsu API systemu Windows. FYI: Uprawnienia są replikowane ze względu na wydajność.
Andreas,

Odpowiedzi:


10

W systemie Windows uprawnienia do plików nie są dziedziczone dynamicznie. Oznacza to, że gdy próbuje się otworzyć plik, system Windows sprawdza tylko listę ACL tego pliku, a nie listy ACL katalogów w drzewie zawierającym plik. Oznacza to, że po zmianie listy kontroli dostępu do katalogu system Windows musi natychmiast zaktualizować uprawnienia do wszystkich plików i podkatalogów w danym katalogu.

W systemie Windows ustawienie dziedziczenia na liście ACL nie oznacza żadnej formy dynamicznego dziedziczenia. Jest to tylko flaga wskazująca, że ​​po zmodyfikowaniu listy ACL katalogu nadrzędnego wszystkie pliki i podkatalogi w drzewie, które mają ustawioną flagę dziedziczenia, również muszą zostać zaktualizowane.

Ci z nas, którzy są wystarczająco starsi, aby pamiętać, Novell NetWare pamięta, że ​​była to jedna z dużych różnic w stosunku do NetWare, ponieważ w NetWare dziedziczenie uprawnień jest (było?) Dynamiczne. W tym czasie toczyło się wiele dyskusji na temat tego, które podejście było lepsze, choć historia sprawiła, że ​​kwestia ta stała się dyskusyjna. Dynamiczne listy ACL wymagają, aby system operacyjny sprawdził listy ACL każdego katalogu nadrzędnego podczas próby otwarcia pliku, ale zmiana list ACL jest szybka. W systemie Windows otwarcie pliku wymaga sprawdzenia tylko jednej listy ACL, ale jak już odkryłeś, oznacza to, że zmiana katalogu listy ACL może być powolna.


1
To ma sens. Listy ACL są odczytywane znacznie częściej niż są zapisywane, więc sensowne jest buforowanie „odziedziczonej wartości” w celu szybszego dostępu do odczytu, kosztem większej złożoności w rzadszym przypadku zapisu.
Alexander - Przywróć Monikę

@Alexander: Nie rozumiem, dlaczego ta złożoność musi zostać ujawniona użytkownikowi końcowemu. Dlaczego nie kłamać i powiedzieć użytkownikowi końcowemu, że jest „dynamiczny”, ale buforować rzeczy wewnętrznie?
Kevin,

@Kevin - ponieważ propagowanie uprawnień może trochę potrwać, aw tym okresie egzekwowanie uprawnień może nie nastąpić zgodnie z oczekiwaniami?
davidbak,

13

Każdy obiekt podrzędny skonfigurowany do dziedziczenia uprawnień z obiektu nadrzędnego będzie musiał zostać przetworzony. Nie ma to wpływu na jawnie zdefiniowane uprawnienia do obiektów potomnych.

Opcja „Zamień uprawnienia na wszystkie obiekty podrzędne” nie tylko propaguje uprawnienia do wszystkich obiektów podrzędnych, ale także usuwa i zastępuje wszelkie jawnie zdefiniowane uprawnienia do wszystkich obiektów podrzędnych.


5

Domyślnie foldery podrzędne dziedziczą uprawnienia z folderu nadrzędnego. Zakładając domyślny zakres, gdy dodajesz / modyfikujesz uprawnienia do folderu nadrzędnego (tego folderu, podfolderów i plików), wówczas wszystkie foldery podrzędne zostaną zaktualizowane, aby odzwierciedlić zmianę uprawnień nadrzędnych.

Pole wyboru, o którym mówisz, to operacja „jednorazowa”, która usunie wszystkie wyraźnie zdefiniowane uprawnienia do wszystkich folderów podrzędnych i zastąpi je uprawnieniami dziedziczonymi od nadrzędnego oraz ponownie włączy dziedziczenie uprawnień do folderów podrzędnych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.