Korzystanie z systemu Windows Server 2012 R2 i Windows Server 2008 R2.
Mam folder o nazwie C:\temp\test
i chcę przyznać dostęp SYSTEM
oraz użytkownikowi i wszystkie pliki i podkatalogi oraz usunąć wszystko inne. Próbowałem tego polecenia, ale wszystkie istniejące uprawnienia pozostają:
Istniejące uprawnienia to:
Access : NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
BUILTIN\Users Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow AppendData
BUILTIN\Users Allow CreateFiles
CREATOR OWNER Allow 268435456
Chcę usunąć wszystkie listy ACL oprócz SYSTEM
i dodać<DOMAIN>\<USER>
Próbowałem tego polecenia:
icacls c:\temp\test /grant:r <DOMAIN>\<USER>:(OI)(CI)F /t
processed file: c:\temp\test
Successfully processed 1 files; Failed processing 0 files
Kiedy później patrzę na uprawnienia, <DOMAIN>\<USER>
ma ono odpowiednie uprawnienia, ale wszystkie pozostałe pozostają. Myślałem, że /grant:r
zastąpiłem wszystkie uprawnienia? Czy wiesz, jakie polecenie muszę uruchomić, aby usunąć wszystkie pozostałe uprawnienia?
windows-server-2008-r2
windows
windows-server-2012-r2
icacls
Mark Allison
źródło
źródło
cacls c:\temp\test /t /g <DOMAIN>\<USER>:F
ale słyszałem, że icacls go zastąpił. Czy ktoś może pokazać mi równoważną wersję icacls, aby uzyskać takie samo zachowanie?/grant:r
usuwa tylko istniejące wyraźne uprawnienia, nie odziedziczone z powyższego folderu. Trzeba też to uwzględnić/inheritance:r
.NOTE: Cacls is now deprecated, please use Icacls.
cacls.exe
może ustawiać listy ACL w niewłaściwej kolejności, potencjalnie powodując problemy (pozostawię to jako ćwiczenie dla czytelnika).Odpowiedzi:
Jak wspomniano w komentarzach, musisz również użyć
/inheritance:r
przełącznika, aby usunąć odziedziczone uprawnienia./grant:r
usuwa tylko wyraźne uprawnienia.Aby również przyznać
SYSTEM
:źródło
Ten parametr
/grant:r
nie działał dla mnie. Musiałem użyć,/reset
aby przywrócić uprawnienia tylko do dziedziczenia, a następnie usunąć odziedziczone uprawnienia. Nie zapomnij zmienić podkatalogów z/t
flagą.źródło