Uprawnienia NTFS - Twórz pliki i foldery, ale zapobiegaj ich usuwaniu i modyfikacji

10

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?

Fitzroy
źródło
Zawartość pliku NTFS JEST „atrybutem”; mianowicie domyślny nienazwany atrybut danych i być może jeden lub więcej nazwanych atrybutów danych.
kreemoweet
Zobacz także dobrą odpowiedź tutaj: superuser.com/a/1145363/132727
CrazyTim

Odpowiedzi:

7

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.

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 Deletedo modyfikowania plików wymagane są uprawnienia NTFS - w rzeczywistości, jeśli Advanced permissionszaznaczysz obiekt NTFS, nie ma Modifyuprawnień - 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 attributespozwolenia NTFS. Dlatego nie możesz modyfikować pliku bez Write attributesuprawnień 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 Attributespozwolenia), podczas modyfikowania pliku, ale nie podczas tworzenia zupełnie nowego, być w pliku LastModificationTime. Jest to część Standard Informationatrybutu, według jednego z programistów Microsoft Core Team .

Beznadziejny
źródło
1
„Dlatego właśnie uprawnienia do usuwania plików NTFS są wymagane do modyfikowania plików - w rzeczywistości, jeśli zaznaczysz uprawnienia zaawansowane do obiektu NTFS, nie ma uprawnień do modyfikacji - modyfikacja to tak naprawdę tylko usunięcie i zapis”. Czy możesz to poprzeć jakimikolwiek faktami lub referencjami? Ponieważ dzięki dalszym testom odkryłem, że w celu zmodyfikowania zawartości prostego pliku tekstowego (za pomocą notatnika) właśnie dodałem następujące uprawnienia: Zapis atrybutów, Zapis atrybutów rozszerzonych i Tworzenie folderów / Dołączanie danych. Zgadzam się, że różne programy mogą wykazywać różne zachowanie podczas modyfikowania pliku ...
Fitzroy
... myślę jednak, że ten test dowodzi, że „Usuń” nie jest wymagane.
Fitzroy
„Jest to funkcja dokładnie tego, jak zachodzi modyfikacja pliku. Podczas modyfikowania pliku system operacyjny tak naprawdę nie modyfikuje edytowanego pliku. Zastępuje on edytowany plik zmodyfikowaną 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. ” - jest bardzo mylące i rażąco niedokładne na wielu różnych poziomach technicznych .
user2864740,
3

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.

drk.com.ar
źródło
Drk - Właśnie trawię twoją odpowiedź. Do waszej informacji - w swoim pytaniu pominąłem pozwolenie, powinienem był też wpisać „Czytaj atrybuty rozszerzone”. Bez tego uprawnienia stwierdziłem, że użytkownicy nie mogą przeglądać zawartości pliku (dostają błąd „Odmowa dostępu”). Zaktualizowałem odpowiednio moje pytanie.
Fitzroy
Ok, dla mojego testu zakładałem, że też udzielasz tego pozwolenia. Odkryłem, że Notatnik nie może modyfikować pliku, nawet jeśli udzielono pozwolenia „... / zapisu danych”. Oto kolejna rzecz, na którą warto zwrócić uwagę: zapis danych a dołączanie uprawnień do danych zależy od tego, jak aplikacja otwiera plik do modyfikacji. Najprawdopodobniej notatnik zawsze otwiera pliki do dodawania danych, nawet jeśli nie są potrzebne.
drk.com.ar
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. Masz całkowitą rację, mój błąd, myślałem, że wybrałem tylko „Utwórz pliki / Zapisz dane”, ale miałem również zaznaczone „Utwórz foldery / Dołącz dane”.
Fitzroy,