Wie ersetze ich Berechtigungen und alles, was sich darin befindet, durch icacls unter Windows Server 2012?

15

Verwenden von Windows Server 2012 R2 UND Windows Server 2008 R2.

Ich habe einen Ordner namens C:\temp\testund möchte SYSTEMeinem Benutzer und allen Dateien und Unterverzeichnissen Zugriff gewähren und alles andere entfernen. Ich habe diesen Befehl ausprobiert, aber alle vorhandenen Berechtigungen bleiben erhalten:

Bestehende Berechtigungen sind:

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

Ich möchte alle ACLs außer entfernen SYSTEMund hinzufügen<DOMAIN>\<USER>

Ich habe diesen Befehl ausprobiert:

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

Wenn ich mir die Berechtigungen danach ansehe, <DOMAIN>\<USER>hat der die richtigen Berechtigungen, aber alle anderen bleiben. Ich dachte, /grant:ralle Berechtigungen ersetzt? Wissen Sie, welchen Befehl ich ausführen muss, um alle anderen Berechtigungen zu entfernen?

Mark Allison
quelle
Dieser Befehl macht genau das, was ich will, cacls c:\temp\test /t /g <DOMAIN>\<USER>:Faber ich habe gehört, dass icacls ihn abgelöst hat. Kann mir jemand die entsprechende icacls-Version zeigen, um dasselbe Verhalten zu erzielen?
Mark Allison
3
/grant:rentfernt nur vorhandene explizite Berechtigungen, nicht geerbte aus dem obigen Ordner. Sie müssten auch einschließen /inheritance:r.
TheCleaner
1
Wenn CACLS den Job erledigt, gibt es keinen Grund, warum Sie ihn nicht verwenden können, unabhängig davon, ob er veraltet ist oder nicht.
Joeqwerty
@ Joeqwerty wahr, aber es fühlt sich so schmutzig. cacls selbst gibt sogar eine Nachricht zur Verwendung von icacls zurück, daher muss es einen sehr guten Grund geben. NOTE: Cacls is now deprecated, please use Icacls.
Mark Allison
2
@joeqwerty cacls.exekann die ACLs in der falschen Reihenfolge setzen und möglicherweise Probleme verursachen (ich überlasse dies dem Leser als Übung).
Craig

Antworten:

16

Wie in Kommentaren erwähnt, müssen Sie auch den /inheritance:rSchalter verwenden, um geerbte Berechtigungen zu entfernen.

/grant:r entfernt nur explizite Berechtigungen.

icacls c:\temp\test /inheritance:r /grant:r <DOMAIN>\<USER>:(OI)(CI)F /T

Um auch zu gewähren SYSTEM:

icacls c:\temp\test /inheritance:r /grant:r <DOMAIN>\<USER>:(OI)(CI)F /grant:r SYSTEM:(OI)(CI)F /T
krisFR
quelle
7

Der Parameter /grant:rhat bei mir nicht funktioniert. Ich musste verwenden /reset, um Berechtigungen nur auf Vererbung zurückzusetzen und dann die vererbten Berechtigungen zu entfernen. Vergessen Sie nicht, die Unterverzeichnisse mit /tflag zu ändern .

Jan Zahradník
quelle