Próbuję zresetować uprawnienia do katalogów użytkowników i mam trochę problemów z ostatnim krokiem skryptu. Mój skrypt w zasadzie przejmuje własność całego katalogu użytkownika, resetuje uprawnienia do wszystkich plików i folderów dla katalogu, wyraźnie udziela potrzebnych uprawnień, zatrzymuje wszelkie dziedziczenie uprawnień z folderów nadrzędnych, ustawia prawowitego właściciela (określonego użytkownika) dla wszystkich plików i foldery, a następnie usuwa pozwolenie, które sam sobie dałem, aby móc operować na plikach. Potrzebuję tego ostatniego kroku, aby usunąć się ze WSZYSTKICH plików i podfolderów, ale w tej chwili po prostu usuwa mnie z% userDir% i pozostawia wszystkie odziedziczone uprawnienia poniżej. Jest to widoczna wada w ICACLS. Czy ktoś zna inny sposób na osiągnięcie tego?
set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%username%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%" /inheritance:r
ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T
ICACLS "E:\Home Directories\%userDir%" /remove "MYDOMAIN\%username%"
Odpowiedzi:
Najpierw spostrzeżenie: za każdym razem, gdy blokujesz dziedziczenie, odcinasz się od przyszłej elastyczności. Za wszelką cenę unikam blokowania dziedziczenia.
Jeśli chcesz, aby użytkownicy mogli wyświetlić zawartość folderu „E: \ Home Directories” najwyższego poziomu, rozważ na przykład następujące uprawnienie:
Ostatnie uprawnienie nie dziedziczy do podfolderów. W każdym podfolderze dziedziczenie pozostaje włączone i po prostu określasz użytkownika z uprawnieniami „Modyfikuj” lub „Pełna kontrola” (w zależności od tego, jak się czujesz, gdy użytkownicy mogą ustawiać uprawnienia w swoim katalogu domowym). (Zwykle ustawiam to ostatnie uprawnienie, dodając „Uwierzytelnionych użytkowników” w arkuszu właściwości zabezpieczeń innych niż „Zaawansowane”, odznaczając pola wyboru „Odczytaj” i „Odczytaj i wykonaj”. Następnie przechodzę do okna dialogowego „Zaawansowane” i zmieniam Ustawienie „Zastosuj do” dla tego wpisu ACE w „Tylko ten folder”. Jest to najłatwiejszy sposób, pod względem liczby kliknięć, aby go ustawić).
Następnie skrypt staje się:
Podejrzewam, że dodanie uprawnienia „Uwierzytelnieni użytkownicy”, które opisałem powyżej w / dziedziczenia ustawionego na „Tylko ten folder”, da ci to, czego szukasz pod względem funkcjonalności, i zapewni elastyczność w przyszłości, jeśli się dowiesz że musisz ustawić uprawnienie, które może wymagać dziedziczenia we wszystkich katalogach domowych użytkowników w przyszłości.
To jest moja SOP dla katalogów domowych użytkowników, przekierowanych folderów „Moje dokumenty”, „Pulpit” itp. Oraz dla katalogów profili użytkowników mobilnych. Działa świetnie.
Edytować
Odp: Twój komentarz na temat dostępu BUILTIN \ Administratorzy
Przez lata miałem różne spory z ludźmi na temat mojego podejścia do przyznawania dostępu BUILTIN \ Administratorzy, a moje zdanie jest następujące:
Łatwiej jest rozwiązać pewną klasę problemów użytkowników, jeśli możesz dostać się do ich plików. Przejęcie na własność jest uciążliwe i może być dość powolne, jeśli obecna jest także duża liczba plików.
Jak widzieliście w ICACLS, BUILTIN \ Administratorzy mogą „przypisać” własność (oprócz „przejęcia”), więc nie ma dodawanego „bezpieczeństwa”, ponieważ nie mają dostępu do plików dla BUILTIN \ Administratorów.
O ile nie używasz inspekcji (i przesiewania potencjalnie dużej liczby fałszywie pozytywnych wpisów), nie będzie ścieżki audytu, gdy użytkownik BUILTIN \ Administrators przejmie na własność pliki, do których nie powinien mieć dostępu, skopiuje je, a następnie zwraca pliki z powrotem do ich „właściwego” właściciela i pozwolenia.
W świecie Microsoft szyfrowanie systemu plików (EFS) ma na celu rozwiązanie problemu nieuprawnionego dostępu do BUILTIN \ Administrators. Listy ACL NTFS nie rozwiązują tego problemu. (Oczywiście EFS nie jest jedynym programem w mieście. Szyfrowanie jest prawdziwą odpowiedzią na rozwiązanie problemu „ogranicz dostęp administratora sieci” bez względu na to, jak go pokroisz).
Moim zdaniem, nieokreślanie BUILTIN \ Administratorów z dostępem do domowych katalogów użytkowników (a właściwie dowolnego folderu) oznacza, że zwiększasz złożoność i czas potrzebny do rozwiązania problemów, zapewniając jednocześnie mniej niż brak rzeczywistych zabezpieczeń („mniej niż żaden” „ponieważ daje fałszywe poczucie bezpieczeństwa tam, gdzie go nie ma).
Zrezygnowałem z próby wygrania sporu z ludźmi za pomocą logiki. Wydaje się, że jest to problem emocjonalny u niektórych osób. To jak głupie ACE „Odmów / Odbierz jako”, które umieszcza się w katalogu głównym organizacji Exchange, aby uniemożliwić niektórym uprzywilejowanym grupom otwieranie skrzynek pocztowych użytkowników. Nie zapewnia prawdziwego bezpieczeństwa (ponieważ bez kontroli można usunąć / ponownie zastosować ACE, jeśli to konieczne), fałszywe poczucie bezpieczeństwa i przeszkadza w rozwiązywaniu prawdziwych problemów.
Nawet jeśli nie podoba ci się mój argument o dostępie BUILTIN \ Administratorzy, chcesz zachować nienaruszoną hierarchię dziedziczenia, używając w razie potrzeby dziedziczenia „Tylko ten folder”. Blokowanie dziedziczenia w hierarchiach uprawnień jest pewnym znakiem, że coś w projekcie jest „zepsute” (odwrócone itp.).
źródło
Po pierwsze, dziękuję za fragment skryptu. Pracowałem nad tym samym, ale utknąłem w innym miejscu. W moim pudełku SBS 2008 poniższy kod działa dla mnie (oczywiście przy założeniu, że jest podwyższony). Zrobiłem icacls% userdir% / t zupełnie nowego (domyślnego) folderu użytkownika utworzonego przez system operacyjny i porównałem go z icacls% userdir% / t folderu po uruchomieniu tego skryptu i wygląda na to, że wszystkie „O” i Ja mam rację. Mam nadzieję, że zadziała również dla ciebie.
Z poważaniem,
źródło
Potrzebuję twojej pomocy w modyfikacji tego polecenia zgodnie z moimi wymaganiami, jeśli jest to technicznie możliwe.
Oto struktura
\ Server \ Parent \ UserA \ unix
\ Server \ Parent \ UserB \ unix
\ Server \ Parent \ UserC \ unix .... i tak dalej ..
Pod każdym folderem User $ znajduje się folder o nazwie „unix”.
Chcę dodać użytkownika lub grupę z pełnymi uprawnieniami do wszystkich folderów User $ wymienionych w folderze „Parent” (nazwy wzięte z powyższej struktury), ale chcę wykluczyć uprawnienia tylko do folderu „unix”.
Mam to polecenie, które działa dobrze w perspektywie zastosowania wymaganych uprawnień, ale nie mogę w tym dodać funkcji wykluczania.
icacls "\\ Serwer \ Nadrzędny \ UżytkownikA" / grant Domain \ Group: (OI) (CI) F / T
Czy będziesz w stanie prowadzić w tym scenariuszu?
źródło