w tym artykule dowiemy się, jak ustawić lub zresetować uprawnienia NTFS pliku lub folderu w systemie operacyjnym Windows, za pomocą polecenia icacls.
zdarza się, że w niektórych przypadkach możemy stracić z oczu uprawnienia do plików lub katalogów, a gdy próbujemy uzyskać dostęp do określonego pliku, nie mamy żadnego wyniku, ponieważ nie mamy do tego uprawnień.
albo być może będziemy musieli uruchomić oprogramowanie, które z powodu problemów z uprawnieniami nie działa tak, jak powinno.
możemy również potrzebować dostępu do pliku, który pochodzi ze starej kopii zapasowej lub innego komputera i dlatego został utworzony z innym użytkownikiem; nawet wtedy dostęp do niego nie będzie możliwy.
we wszystkich tych przypadkach z pomocą przychodzi polecenie Icacls.
co to jest Icacls?
Icacls jest zamiennikiem cacls (Change access Control Lists), narzędzia wiersza poleceń, które pozwala na wyświetlanie i wykonywanie niektórych operacji na ACL dla plików lub katalogów.
ACL (Access Control List) jest listą uprawnień dla obiektu systemu plików i określa, w jaki sposób jego bezpieczeństwo jest kontrolowane przez zarządzanie tym, kto i w jaki sposób można uzyskać do niego dostęp.
w rzeczywistości operacje na ACL nie są jedynymi możliwymi za pomocą tego narzędzia.
to, co czyni go potężnym narzędziem, to również możliwość wykonywania operacji tworzenia kopii zapasowych i przywracania plików lub katalogów w ACL lub wyszukiwania plików, które mają określonego użytkownika jako właściciela.
ponadto, w przypadku, gdy ACL jest uszkodzony lub zniszczony, za pomocą icacls można go przywrócić, resetując go i ustawiając domyślne uprawnienia lub dziedzicząc uprawnienia rodzica.
Icacls: funkcje resetowania i przyznawania
Resetuj
Icacls to natywne polecenie systemu Windows, które działa w systemach Windows Vista, Windows 7, Windows 8 i Windows 10.
wyobraź sobie, że mamy zewnętrzny dysk twardy, na którym zapisano badanie wykonane w 2018 roku i chcemy go odzyskać, ale nie mamy pełnej kontroli.
gdy tylko spróbujemy otworzyć folder, otrzymamy następujący komunikat alarmowy.
jednym z rozwiązań jest użycie funkcji resetowania Icacls.
ale zwróć uwagę na następujące kroki.
otwórzmy Terminal poleceń w trybie administratora.
przejdźmy do folderu i wpisz polecenie reset w następujący sposób:
$> icacls * /t /q /c /reset
i znowu, będziemy mieli „Odmowa dostępu” jako odpowiedź.
musimy zatem najpierw stać się właścicielem folderu za pomocą polecenia takeown:
$> takeown / R / F *
klikając Tak, nastąpi reset ACL, a stan uprawnień będzie następujący:
Grant
teraz wyobraź sobie, że znajdujesz się w następującej sytuacji:
tylko użytkownik o imieniu Peter ma dostęp do folderu, a my chcemy udzielić dotacji również użytkownikowi.
za pomocą poprzedniego polecenia możemy stać się właścicielem folderu
$> takeown / R / F *
, a następnie wpisać następujące polecenie:
$> icacls "E:\Study2018" /t /grant:F
w tym przypadku wstawiłem opcje / t, co oznacza rekurencję, A F oznacza „Pełny Dostęp” dla użytkownika, któremu chcemy udzielić dotacji.
aby uzyskać więcej opcji, zobacz oficjalną stronę.
inne funkcje icacls
jeśli chcesz zapisać ACLs w pliku w celu późniejszego przywrócenia, możesz to zrobić za pomocą kilku poleceń „Zapisz i przywróć”.
bardzo prosta operacja z punktu widzenia: informacje o ACL są zapisywane w pliku, który może być użyty w przypadku potrzeby przywrócenia poprzedniej sytuacji.
należy jednak zauważyć, że dane dotyczące praw dostępu, zwłaszcza w folderach udostępnionych, mogą być bardzo zmienne w czasie.
wtedy moglibyśmy znaleźć się w sytuacji, w której zamierzamy przywrócić sytuację odmienną od rzeczywistości, a nawet niespójną.
co Więcej, plik, który jest tworzony, otwierany i czytelny za pomocą wspólnego edytora tekstu, wydaje się być tekstem Unicode.
ale uważaj, bo tak nie jest.
Otwórz plik i zapisz go z pewnymi zmianami, które sprawią, że będzie on bezużyteczny w operacjach przywracania.
kilka poleceń „Zapisz i przywróć” wygląda następująco:
icacls FILE_O_DIRECTORY /save aclfile /t
icacls
DIRECTORY
/Przywróć aclfile
od razu zauważysz różnicę między tymi dwoma poleceniami.
polecenie Zapisz może być wykonane zarówno w pliku, jak i w katalogach (FILE_O_O_DIRECTORY należy zastąpić nazwą pliku lub katalogu, dla którego chcemy zapisać ACL).
podczas gdy polecenie restore działa tylko na katalogach.
przykład użycia jest następujący:
E:\> icacls filediprova.txt /save aclfile /t
E:\>icacls . /restore aclfile
jak widać, w przypadku polecenia restore nie użyjemy filediprova.txt, ale katalog, w którym się znajduje.