Cel: udostępniony folder, w którym użytkownicy mogą tworzyć pliki, ale nie mogą ich modyfikować ani usuwać. Użytkownicy powinni również mieć możliwość tworzenia podfolderów.
Przyznałem mojej grupie bezpieczeństwa następujące zaawansowane uprawnienia NTFS:
- Przejdź do folderu / uruchom plik
- Lista folderów / odczyt danych
- Czytaj atrybuty
- Przeczytaj Rozszerzone atrybuty
- Twórz pliki / zapisuj dane
- Czytaj uprawnienia
Poprzez proces prób i błędów odkryłem, że NIE udzielanie „Zapisu atrybutów” powoduje, że użytkownik nie może modyfikować / usuwać istniejących plików (to jest to, czego chcę). Jednak naprawdę chciałbym wyjaśnić, dlaczego dokładnie to działa. Jedyną teorią, którą mam, jest to, że usunięcie / modyfikacja pliku zmienia atrybuty pliku? Oto dyskusja w tym samym kierunku .
EDYCJA - Druga część mojego pytania jest nieistotna, myślałem, że wybrałem tylko „Utwórz pliki / Zapisz dane”, ale miałem również zaznaczoną opcję „Utwórz foldery / Dołącz dane”.
Co więcej, chcę, aby użytkownicy mogli tworzyć podfoldery w katalogu głównym, i stwierdziłem, że udzielając „Utwórz pliki / Zapis danych”, pozwala to na to. Ale znowu nazwa sugeruje, że to uprawnienie powinno po prostu zezwalać na tworzenie plików, a nie folderów, więc nie rozumiem, dlaczego to działa? Microsoft wyjaśnił, że atrybut „Utwórz pliki / Zapis danych” brzmi „W przypadku folderów określa, czy użytkownik może tworzyć pliki w folderze. W przypadku plików określa, czy użytkownik może zmieniać pliki lub zastępować dane”. Nie ma wzmianki o możliwości tworzenia podfolderów w folderze?
Zasadniczo osiągnąłem to, co postanowiłem, ale nie rozumiem, dlaczego to działa?
źródło
Odpowiedzi:
Jest to funkcja precyzyjnego sposobu modyfikacji pliku. Podczas modyfikowania pliku system operacyjny tak naprawdę nie modyfikuje edytowanego pliku. Zastępuje edytowany plik zmienioną kopią. Zasadniczo modyfikacja pliku pobiera kopię oryginalnego pliku, ładuje ją do pamięci (tam, gdzie ją modyfikujesz), usuwa oryginalny plik i tworzy nowy plik o tej samej nazwie w tym samym miejscu. Dlatego
Delete
do modyfikowania plików wymagane są uprawnienia NTFS - w rzeczywistości, jeśliAdvanced permissions
zaznaczysz obiekt NTFS, nie maModify
uprawnień - modyfikacja to tak naprawdę tylko usunięcie i zapis.Tak więc, aby utworzyć nową kopię pliku, musi on zapisać atrybuty pliku tego nowego pliku ... i oczywiście zapisanie atrybutów wymaga
Write attributes
pozwolenia NTFS. Dlatego nie możesz modyfikować pliku bezWrite attributes
uprawnień NTFS.W szczególności, dzięki czatowi z Fitzroyem , atrybut pliku NTFS, który musi zostać zapisany w kontekście bezpieczeństwa użytkownika (który nie może być bez
Write Attributes
pozwolenia), podczas modyfikowania pliku, ale nie podczas tworzenia zupełnie nowego, być w plikuLastModificationTime
. Jest to częśćStandard Information
atrybutu, według jednego z programistów Microsoft Core Team .źródło
To prawda: brak uprawnień do zapisu atrybutów powoduje, że użytkownik nie może modyfikować swoich plików. Według dokumentacji Microsoft nie ma to sensu. Ale modyfikacja pliku nie oznacza usunięcia i odtworzenia go. Gdy aplikacja otwiera plik do modyfikacji, system operacyjny nie usuwa pliku. Ale system operacyjny blokuje plik, aby zapobiec jednoczesnej modyfikacji. Domyślam się, że blokowanie pliku mieści się w koncepcji „zmiany atrybutów pliku”. Zatem brak możliwości zmiany atrybutów powoduje, że nie można modyfikować pliku.
W drugiej części twojego pytania nie mogę tego odtworzyć. Istnieją dwa różne uprawnienia dotyczące folderu: „Utwórz pliki / ...” i „Utwórz foldery / ...” i działały one zgodnie z dokumentacją podczas moich testów.
źródło