icacls

Zeigt oder ändert DACLs (Discretionary Access Control Lists) für bestimmte Dateien an, und wendet gespeicherte DACLs auf Dateien in angegebenen Verzeichnissen an.

Hinweis

Dieser Befehl ersetzt den veralteten Befehl cacls.

Syntax

icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]

Parameter

Parameter BESCHREIBUNG
<filename> Gibt die Datei an, für die DACLs angezeigt oder geändert werden sollen.
<directory> Gibt das Verzeichnis an, für das DACLs angezeigt oder geändert werden sollen.
/t Führt den Vorgang für alle angegebenen Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen aus.
/c Setzt den Vorgang trotz Dateifehlern fort. Fehlermeldungen werden weiterhin angezeigt.
/l Führt den Vorgang für einen symbolischen Link anstelle seines Ziels aus.
/q Unterdrückt Erfolgsmeldungen.
[/save <ACLfile> [/t] [/c] [/l] [/q]] Speichert DACLs für alle übereinstimmenden Dateien in einer ACL (Access Control List)-Datei zur späteren Verwendung mit /restore.
[/setowner <Benutzername> [/t] [/c] [/l] [/q]] Ändert den Besitzer aller übereinstimmenden Dateien in den angegebenen Benutzer.
[/findsid <sid> [/t] [/c] [/l] [/q]] Sucht alle übereinstimmenden Dateien, die eine DACL enthalten, die die angegebene Sicherheits-ID (SID) explizit erwähnt.
[/verify [/t] [/c] [/l] [/q]] Sucht alle Dateien mit ACLs, die nicht kanonisch sind oder deren Länge inkonsistent mit ACE (Access Control Entry)-Werten sind.
[/reset [/t] [/c] [/l] [/q]] Ersetzt für alle übereinstimmenden Dateien ACLs durch standardmäßig geerbte ACLs.
[/grant[:r] <sid>:<perm>[...]] Gewährt die angegebenen Benutzerzugriffsrechte. Diese Berechtigungen ersetzen zuvor erteilte explizite Berechtigungen.

Wenn das :r nicht hinzugefügt wird, bedeutet dies, dass die Berechtigungen zu allen zuvor ausdrücklich erteilten Berechtigungen hinzugefügt werden.

[/deny <sid>:<perm>[...]] Verweigert explizit die angegebenen Benutzerzugriffsrechte. Für die angegebenen Berechtigungen wird ein expliziter Ablehnungs-ACE hinzugefügt, und die gleichen Berechtigungen in jeder expliziten Gewährung werden entfernt.
[/remove[:g | :d]] <sid>[...] [/t] [/c] [/l] [/q] Entfernt alle Vorkommen der angegebenen SID aus der DACL. Dieser Befehl kann auch Folgendes verwenden:
  • :g: Entfernt alle Vorkommen von gewährten Rechten für die angegebene SID.
  • :d: Entfernt alle Vorkommen von verweigerten Rechten für die angegebene SID.
[/setintegritylevel [(CI)(OI)] <Ebene>:<Richtlinie>[...]] Fügt allen übereinstimmenden Dateien explizit ein Integritäts-ACE hinzu. Die Ebene kann wie folgt angegeben werden:
  • l: Niedrig (low)
  • m: Mittel (medium)
  • h: Hoch (high)
Vererbungsoptionen für die Integritäts-ACE können der Ebene vorangehen und werden nur auf Verzeichnisse angewendet.
[/substitute <sidold><sidnew> [...]] Ersetzt eine vorhandene SID (sidold) durch eine neue SID (sidnew). Erfordert die Verwendung mit dem Parameter <directory>.
/restore <ACLfile> [/c] [/l] [/q] Wendet gespeicherte DACLs aus <ACLfile> auf Dateien im angegebenen Verzeichnis an. Erfordert die Verwendung mit dem Parameter <directory>.
/inheritancelevel: [e | d | r] Legt die Vererbungsebene aus folgende Weise fest:
  • e: Ermöglicht die Vererbung
  • d: Deaktiviert die Vererbung und kopiert die ACEs
  • r: Deaktiviert die Vererbung und entfernt nur geerbte ACEs

Hinweise

  • SIDs können entweder numerisch oder in Form eines Anzeigenamens vorliegen. Wenn Sie eine numerische Form verwenden, fügen Sie das Platzhalterzeichen * am Anfang der SID an.

  • Dieser Befehl behält die kanonische Reihenfolge der ACE-Einträge wie folgt bei:

    • Explizite Verweigerungen

    • Explizite Gewährungen

    • Geerbte Verweigerungen

    • Geerbte Gewährungen

  • Die Option <perm> ist eine Berechtigungsmaske, die in einer der folgenden Formen angegeben werden kann:

    • Eine Sequenz einfacher Rechte (Grundberechtigungen):

      • F: Vollzugriff

      • M: Ändern des Zugriffs

      • RX: Lese- und Ausführungszugriff

      • R: Schreibgeschützter Zugriff

      • W: Lesegeschützter Zugriff

    • Eine durch Trennzeichen getrennte Liste bestimmter Rechte in Klammern (erweiterte Berechtigungen):

      • D: Löschen

      • RC: Lesesteuerung (Leseberechtigungen)

      • WDAC – Schreib-DAC (Ändern von Berechtigungen)

      • WO: Besitzer von Schreibrechten (Übernehmen des Besitzes)

      • S: Synchronisieren

      • AS: Zugriffssystemsicherheit

      • MA: Maximal zugelassen

      • GR: Generisches Lesen

      • GW: Generisches Schreiben

      • GE: Generische Ausführung

      • GA: Generisch Alles

      • RD: Lesen des Daten-/Listenverzeichnisses

      • WD: Schreiben von Daten / Hinzufügen einer Datei

      • AD: Anfügen von Daten / Hinzufügen eines Unterverzeichnisses

      • REA: Lesen erweiterter Attribute

      • WEA: Schreiben erweiterter Attribute

      • X: Ausführen/Durchlaufen

      • DC: Löschen eines untergeordneten Elements

      • RA: Lesen von Attributen

      • WA: Schreiben von Attributen

    • Vererbungsrechte können vor beiden <perm>-Formen stehen:

      • (I): Erben ACE vom übergeordneten Container geerbt.

      • (OI): Objektvererbung Objekte in diesem Container erben diesen ACE. Gilt nur für Verzeichnisse.

      • (CI): Containervererbung Container in diesem übergeordneten Container erben diesen ACE. Gilt nur für Verzeichnisse.

      • (E/A): Nur erben ACE wurde vom übergeordneten Container geerbt, gilt aber nicht für das Objekt selbst. Gilt nur für Verzeichnisse.

      • (NP): Vererbung nicht weitergeben. ACE wird von Containern und Objekten vom übergeordneten Container geerbt, aber nicht an geschachtelte Container weitergegeben. Gilt nur für Verzeichnisse.

Beispiele

Geben Sie Folgendes ein, um die DACLs für alle Dateien im Verzeichnis C:\Windows und die zugehörigen Unterverzeichnisse in der ACLFile-Datei zu speichern:

icacls c:\windows\* /save aclfile /t

Geben Sie Folgendes ein, um die DACLs für jede Datei in ACLFile wiederherzustellen, die im Verzeichnis C:\Windows und den zugehörigen Unterverzeichnissen vorhanden ist:

icacls c:\windows\ /restore aclfile

Geben Sie Folgendes ein, um dem Benutzer die Berechtigungen „User1 löschen und DAC schreiben“ für eine Datei mit dem Namen „Test1“ zu gewähren:

icacls test1 /grant User1:(d,wdac)

Geben Sie Folgendes ein, um dem von SID S-1-1-0 definierten Benutzer die Berechtigungen „DAC löschen und schreiben“ für eine Datei namens „Test2“ zu erteilen:

icacls test2 /grant *S-1-1-0:(d,wdac)