Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera rozwiązanie problemu polegającego na tym, że dziedziczone uprawnienia nie są automatycznie aktualizowane podczas przenoszenia folderów.
Oryginalny numer KB: 320246
Symptomy
Lista kontroli dostępu (ACL) może pokazywać uprawnienia, które są oznaczone jako dziedziczone z elementu nadrzędnego, ale sam obiekt nadrzędny może nie mieć tych uprawnień skonfigurowanych w swojej liście ACL. Ten objaw może wystąpić, mimo że dziedziczenie jest nadal włączone. Każda kolejna zmiana listy ACL folderu nadrzędnego powoduje, że lista ACL podrzędnego będzie otrzymywać dziedziczone uprawnienia. Ponadto każda próba zmiany listy ACL elementu podrzędnego powoduje zastosowanie dziedziczenia (chyba że zmiana oznacza listę ACL jako chronioną przed dziedziczeniem). To zachowanie może być zaskakujące, jeśli stan dziedziczenia nie został zanotowany przed rozpoczęciem edytowania listy ACL.
Uwaga 16.
To zachowanie nie może być spowodowane przeniesieniem folderu podczas uruchamiania komputera z systemem Windows Vista. Operacja przenoszenia działa teraz, ponieważ folder lub plik może dziedziczyć listę ACL folderu docelowego lub pliku. Folder lub plik ma również uprawnienia oznaczone jako dziedziczone z elementu nadrzędnego. Jest to zmiana z systemu Windows XP na Windows Vista i Windows Server 2008.
Przyczyna
To zachowanie może być spowodowane przeniesieniem folderu. Po przeniesieniu folderu lista ACL nie zostanie zmieniona, a dziedziczone uprawnienia nie zostaną zaktualizowane. Pamiętaj, że przejście w kontekście tego artykułu zawsze oznacza przeniesienie w obrębie tego samego woluminu.
Podczas przenoszenia pliku lub folderu lista ACL jest również przenoszona i nie jest zmieniana w żaden sposób. Nawet jeśli dziedziczenie jest włączone dla tego folderu, dziedziczone uprawnienia nie są automatycznie aktualizowane. Lista ACL zostanie zaktualizowana przy następnej zmianie uprawnień, co wymusza propagację uprawnień przez element nadrzędny.
To zachowanie może być również spowodowane przez:
Ustawienie uprawnień folderu nadrzędnego przy użyciu biblioteki CACLS nie jest propagowane do podfolderów. /T opcja nie oznacza propagacji praw przy użyciu dziedziczenia, ale zastąpić wszystkie listy ACL.
Ustawianie uprawnień folderu nadrzędnego przy użyciu interfejsu API, który nie propaguje dziedziczenia automatycznie (na przykład Adssecurity.dll).
Przywracanie z kopii zapasowej do innej lokalizacji.
Rozwiązanie
Aby uniknąć nieoczekiwanych zmian uprawnień, ustaw listę ACL pliku/folderu na chronioną przed przeniesieniem, gdy chcesz zachować ustawienia. W przeciwnym razie ręcznie zaktualizuj listę ACL przeniesionego pliku/folderu przy użyciu edytora listy ACL eksploratora. Wyłącz, a następnie ponownie włącz dziedziczenie, aby wymusić aktualizację listy ACL przy użyciu odpowiednich uprawnień dziedziczynych. Możesz również użyć języka VBScript do zautomatyzowania tego procesu.
Stan
Wynika to z ustawienia fabrycznego. To zachowanie nie występuje z powodu modyfikacji projektu w systemie Windows Vista.
Kroki odtwarzania zachowania
- Utwórz folder test1 z uprawnieniami wszyscy:read i users:change.
- Utwórz podfolder test1\subfolder i włącz dziedziczenie z elementu nadrzędnego (ustawienie domyślne). W tym folderze powinny być wyświetlane wszystkie :odczyt i użytkownicy:zmiana jako uprawnienia dziedziczone.
- Utwórz kolejny test folderu2 z uprawnieniami tylko administratorów:pełna kontrola.
- Przenieś podfolder do test2.
- Wyświetl uprawnienia w pliku test2\sub, aby wyświetlić wszystkie:odczyt i użytkownicy:zmienić jako uprawnienia dziedziczone, chociaż uprawnienia nadrzędne to administratorzy:pełna kontrola.
- Dodaj inną grupę/użytkownika (na przykład gościa) do listy ACL udzielania podsieci, na przykład dostęp do odczytu przy użyciu edytora listy ACL eksploratora. Po kliknięciu przycisku Zastosuj wszyscy:odczyt i użytkownicy:zmiana zostaną usunięte, a tylko administratorzy:pełna kontrola jest wyświetlana jako uprawnienia dziedziczone obok właśnie dodanego uprawnienia.