Daj dostęp do podkatalogu bez dostępu do katalogów nadrzędnych


12

Mam scenariusz dotyczący serwera plików systemu Windows, w którym „właściciel” chce przyznać uprawnienia grupie następujących użytkowników:

  • \\server\dir1\dir2\dir3: czytaj, pisz i wykonuj
  • \\server\dir1\dir2: Brak uprawnień
  • \\server\dir1: Brak uprawnień
  • \\server: przeczytaj i uruchom

W moim rozumieniu ( aktualizacja : cały ten akapit jest nieprawidłowy!) Nie jest to możliwe, ponieważ należyRead & Execute zezwolić na wszystkie katalogi nadrzędne w łańcuchu katalogów, aby system operacyjny mógł „zobaczyć” dziecko i przejdź do nich. Bez tego uprawnienia nie można nawet uzyskać tokenu kontekstu zabezpieczeń podczas próby uzyskania dostępu do zagnieżdżonego katalogu, nawet jeśli masz pełny dostęp do podkatalogu.

Szukamy sposobów na obejście tego problemu bez przenoszenia danych z \\server\dir1\dir2\dir3do \\server\dir4.

Jednym obejściem, o którym myślałem, ale nie jestem pewien, czy to zadziała, jest utworzenie pewnego rodzaju łącza lub skrzyżowania, \\server\dir4które jest odniesieniem \\server\dir1\dir2\dir3. Nie jestem pewien, która z dostępnych opcji (jeśli w ogóle) działałaby w tym celu, jeśli użytkownik nie ma Read & Executeuprawnień \\server\dir1\dir2lub \\server\dir1, o ile wiem, są to następujące opcje:

  • NTFS Link symboliczny,
  • Węzeł,
  • Twardy link.

Więc pytania:

  • Czy którakolwiek z tych metod jest odpowiednia do osiągnięcia mojego celu?
  • Czy istnieją inne metody linkowania lub pośredniego odwoływania się do katalogu, których nie wymieniłem powyżej, które mogą być odpowiednie?
  • Czy istnieją jakiekolwiek bezpośrednie rozwiązania, które nie dotyczą przyznania Read & Executesię \\server\dir1albo \\server\dir2ale nadal umożliwiając dostęp do \\server\dir1\dir2\dir3?

To jest możliwe. Użytkownik zobaczy katalog, ale jeśli nie otrzyma uprawnienia do odczytu, nie będzie mógł w ogóle zobaczyć zawartości katalogu, co jest dość łatwe do skonfigurowania.
Ramhound,

To też było moje pytanie. Dziękujemy za wzięcie udziału w dyskusji. I za aktualizację pytania, aby natychmiast odzwierciedlić, że twoje założenie było błędne.
tyron

Odpowiedzi:


15

Mylisz się w swoim pierwotnym założeniu, które sprawia, że ​​reszta twojego pytania jest dyskusyjna.

Pozwolenie minimum, które użytkownik musiałby on dir1i dir2jest Traverse Directory. Jednak najprawdopodobniej będzie to stanowić problem dla użytkowników - dlatego polecam Traverse Directory i List Folders . Będą mogli poruszać się po dwóch najlepszych katalogach i dotrzeć do dir3miejsca, w którym mają więcej uprawnień, ale nawet nie zobaczą, jakie pliki istnieją w dwóch najlepszych katalogach.

Uprawnienia takie jak Read & Executei Modifysą tylko zbiorami indywidualnych uprawnień. Są pierwszą rzeczą, którą widzisz, ponieważ są najczęściej używane. Jeśli chcesz uzyskać bardzo szczegółowy (jak w tej sytuacji), kliknij Advancedprzycisk i wejdź w opcje tam wymienione.


Doskonała informacja (2)! Jest jednak coś, czego nie nadrobiłem: „Najprawdopodobniej będzie to jednak stanowić problem dla użytkowników”. Dlaczego miałoby to być problematyczne? Nazewnictwo jest dość proste w tym sensie, że „Traverse” wydaje się jedynym potrzebnym pozwoleniem. Jakich problemów powinni się spodziewać użytkownicy?
tyron

12

O dziwo, jeśli dana osoba ma pełną ścieżkę do podfolderu, na którym ma co najmniej uprawnienia R, nie wymaga żadnych uprawnień do żadnego z folderów nadrzędnych, nawet przechodzenia. Mogą po prostu uzyskać do niego dostęp za pomocą UNC. (Muszą oczywiście mieć uprawnienia do odczytu udziału; po prostu nie w żadnym folderze powyżej poziomu, do którego chcą uzyskać dostęp).

Nie wierzyłem w to, kiedy mi powiedziano, ale testy to potwierdzają.

Jest to sprzeczne z tym, co myślałem, że wiem o uprawnieniach w świecie Windows i podejrzewam, że dla wielu będzie zaskoczeniem.

\ server \ folder1 \ folder2 \ folder3

Jeśli w ogóle nie ma żadnych uprawnień do Bilbo w folderze 1 i w folderze 2, ale Bilbo zmodyfikował (na przykład) w folderze 3, \ server \ folder1 \ folder2 \ folder3 zabierze go tam, nie ma problemu.


Działa to, gdy folder1ma uprawnienia SHARE i są ustawione uprawnienia NTFS, folder3więc to \\server\c$\folder1\folder2\folder3nie zadziała.
user2304170

1
Aby dodać do tej odpowiedzi, ta domyślna „zdolność” do przechodzenia do folderów nadrzędnych do podfoldera, bez względu na jego głębokość, do której masz dostęp, jest przyznana przez prawo użytkownika o nazwie „Bypass Traverse Checking” domyślnie przyznane w zasadach grupy dla większości / wszystkich użytkowników w większości przypadków. Zobacz itprotoday.com/management-mobility/…, ponieważ nie mogę wkleić jej tutaj wystarczająco dużo, aby uchwycić listę tego, co otrzymuje pozwolenie w danych okolicznościach.
Wieża

Bypass Traverse Checking jako prawo występuje również jako ulepszenie wydajności NTFS, aby umożliwić pominięcie sprawdzania uprawnień każdego folderu w drzewie w drodze do otwarcia końcowego żądanego folderu / pliku, więc nie zaleca się jego usuwania, chyba że wiesz, że potrzebujesz ten niezwykle wysoki poziom bezpieczeństwa.
Rook

1

Jednym rozwiązaniem podobnym do MDMarra jest ustawienie uprawnień NTFS w następujący sposób:

  1. katalog 1 : Zawartość folderu listy Grantów (przeglądaj folder / plik wykonawczy, folder listy / czytaj dane, czytaj atrybuty, czytaj atrybuty rozszerzone, uprawnienia do odczytu)
  2. ALE wybierz ten folder tylko dla rozwijanego menu Zastosuj do
  3. dir2 : Grant Lista zawartość folderu i odnoszą się do tego folderu
  4. katalog 3 : Przyznaj wymagane uprawnienia do odczytu / zapisu i zastosuj do tego folderu, podfolderów i plików lub tylko podfolderów i plików

W rezultacie użytkownik / grupa może odczytać każdy pojedynczy folder nadrzędny i przejść do folderu podrzędnego bez żadnych innych folderów lub plików.


To nie jest podobne do odpowiedzi MDMarra, to jest odpowiedź MDMarra, opisana bardziej szczegółowo.
Scott

0

Więc testowałem to w następującym środowisku, ponieważ chciałem uzyskać ostateczną, przetestowaną odpowiedź, na absolutnym minimum wymaganych uprawnień do prostego przeglądania folderów podczas przeglądania (tj. Za pomocą Eksploratora plików Windows). Oto wyniki dla tych, którzy chcą mocno zamknąć sprawy.

I nie sprawdzili to w jeszcze produkcji, aby zobaczyć, czy są jakieś dziwne efekty uboczne z paring w dół „standardowych” dobrze przetestowane prawa traversal szablon

  • Trawersuj folder
  • Lista folderów
  • Czytaj atrybuty
  • Czytaj Zewn. Atrybuty
  • Czytaj uprawnienia

... co jest w zasadzie zwykłymi uprawnieniami do „odczytu i wykonania” ograniczonymi do „tego folderu”. To powiedziawszy, testowanie na małą skalę było jak dotąd całkiem w porządku, ponieważ użytkownicy po prostu przenoszą, kopiują i usuwają pliki na serwerze, a użytkownicy całkowicie pracują z serwerowymi kopiami dokumentów itp.


Środowisko:

  • Serwer : Windows 2008 R2 - niewiele do zasad grupy, nic się nie zmieniło w odniesieniu do praw użytkownika, skonfigurowany jako kontroler domeny, DNS zintegrowany z AD, bardzo standardowa / podstawowa konfiguracja.
  • Klient : Windows 7 z dodatkiem SP1 - czysta instalacja na maszynie wirtualnej, restartowana pomiędzy wszelkimi zmianami, aby zapewnić pełne odtworzenie połączenia z serwerem za każdym razem.
  • Obie instalacje zostały załatane co najmniej pod koniec 2017 r., Więc prawdopodobnie obecne w przypadku jakichkolwiek elementów związanych z uprawnieniami, które są bardzo wbudowane w tym momencie na osi czasu systemu Windows.
  • To uzyskiwało dostęp do udostępnionego folderu zamontowanego jako trwały dysk sieciowy (\ server \ share -> S :) na maszynie wirtualnej. Uprawnienia udostępniania to grupa Odczyt + zmiana dla użytkowników uwierzytelnionych, która obejmuje użytkownika testowego i wszystkich innych, którzy mogą kiedykolwiek potrzebować dostępu w pewnym momencie.
  • Po każdej zmianie ponownie uruchamiam maszynę wirtualną, otwieram Eksplorator plików i po prostu przeglądam udział normalnie, idąc ścieżką, o której wiedziałem, że użytkownik testowy ma te prawa do przejścia w stosunku do tych, których nie ma.

Wyniki:

  • Wymagane w folderze głównym: ListFolder-ReadData + ReadAttributes (2x uprawnienia)
  • Wymagane w podfolderach : ListFolder-ReadData (1x uprawnienie)
  • Opcjonalnie : TraverseFolder - ExecuteFile

    -> To opcjonalne zezwolenie ma znaczenie tylko wtedy, gdy prawo użytkownika Bypass Traverse Checking zostało wyraźnie zabronione, ponieważ jest domyślnie włączone w 99% przypadków. Innymi słowy, włączenie prawa użytkownika „Bypass Traverse Checking” (ujawnione w zasadach grupy, a nie w uprawnieniach do plików / folderów NTFS) całkowicie usuwa to uprawnienie i skutecznie włącza je domyślnie wszędzie. Uwaga: Nie testowałem, aby zobaczyć, czy wyraźne odrzucenie tego prawa z kolei powstrzymałoby prawo użytkownika Bypass Traverse Checking do działania w tym konkretnym przypadku, ale może).

Informacje dodatkowe: Prawo użytkownika „Bypass Traverse Checking” umożliwia komuś pasywne przejście do podfolderu, niezależnie od tego, ile poziomów ma on głębokość, do którego mają bezpośredni dostęp (tzn. Uprawnienia są ustawione dla tego pliku / folderu, ale niekoniecznie nigdzie indziej w dalszej części ścieżka do pliku).

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.