icacls

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

Note

Dieser Befehl ersetzt das veraltete CACLS-Kommando.

Syntax

icacls name [/save aclfile] [/setowner user] [/findsid Sid] [/verify] [/reset] [/T] [/C] [/L] [/Q]
icacls name [/grant[:r] Sid:perm[...]] [/deny Sid:perm [...]] [/remove[:g|:d]] Sid[...]]] [/setintegritylevel Level:policy[...]] [/T] [/C] [/L] [/Q]
icacls directory [/substitute SidOld SidNew [...]] [/restore aclfile] [/C] [/L] [/Q]

Parameters

Parameter Description
<name> 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 fort, auch wenn Dateifehler auftreten. Fehlermeldungen werden weiterhin angezeigt.
/l Führt den Vorgang für eine symbolische Verknüpfung anstelle des Ziels aus.
/q Unterdrückt Erfolgsmeldungen.
/save <ACLfile> Speichert DACLs für alle übereinstimmenden Dateien in einer ACL-Datei (Access Control List) zur späteren Verwendung mit /restore.
/setowner <user> Ändert den Besitzer aller übereinstimmenden Dateien an den angegebenen Benutzer.
/findsid <sid> Sucht alle übereinstimmenden Dateien, die eine DACL enthalten, die den angegebenen Sicherheitsbezeichner (SECURITY Identifier, SID) explizit erwähnen.
/verify Sucht alle Dateien mit ACLs, die nicht kanonisch sind oder längenkonsistent mit Zugriffssteuerungseintragsanzahlen (Access Control Entry, ACE) sind.
/reset Ersetzt ACLs durch standardmäßig geerbte ACLs für alle übereinstimmenden Dateien.
/grant[:r] <sid>:<perm> Gewährt angegebenen Benutzerzugriffsrechten. Berechtigungen ersetzen zuvor explizit erteilte Berechtigungen. Das Nichthinzufügen von :r bedeutet, dass Berechtigungen zu allen zuvor erteilten expliziten Berechtigungen hinzugefügt werden.
/deny <sid>:<perm> Die angegebenen Benutzerzugriffsrechte werden explizit verweigert. Eine explizite Ablehnungs-ACE wird für die angegebenen Berechtigungen hinzugefügt, und die gleichen Berechtigungen in jeder expliziten Erteilung werden entfernt.
/remove: g \| d <sid> Entfernt alle Vorkommen der angegebenen SID aus der DACL. Dieser Befehl kann auch folgendes verwenden:

  • g - Entfernt alle gewährten Rechte an der angegebenen SID
  • d - Entfernt alle verweigerten Rechte an der angegebenen SID
  • /setintegritylevel <perm><level> Fügt allen übereinstimmenden Dateien explizit eine Integritäts-ACE hinzu. Die Ebene kann wie angegeben werden:

  • l - Niedrig
  • m - Medium
  • h - Hoch

  • Vererbungsoptionen für die Integritäts-ACE können vor der Ebene stehen und werden nur auf Verzeichnisse angewendet.
    /substitute <sidold> <sidnew> Ersetzt einen bestehenden SID (Sidold) durch einen neuen SID (Sidnew). Erfordert die Verwendung mit dem parameter <directory>.
    /restore <ACLfile> /c \| /l \| /q Wendet gespeicherte DACLs von <ACLfile> auf Dateien im angegebenen Verzeichnis an. Erfordert die Verwendung mit dem parameter <directory>.
    /inheritancelevel: e \| d \| r Legt die Vererbungsebene fest, die folgendes sein kann:

  • e - Ermöglicht Vererbung
  • d - Deaktiviert die Vererbung und kopiert die ACEs
  • r – Deaktiviert die Vererbung und entfernt nur vererbte ACEs
  • Remarks

    • SIDs können in numerischer oder Anzeigenameform vorhanden sein. Wenn Sie ein numerisches Formular verwenden, kleben Sie das Wildcardzeichen * am Anfang der SID an.

    • Dieser Befehl behält die kanonische Reihenfolge von ACE-Einträgen bei:

      • Explicit denials

      • Explicit grants

      • Inherited denials

      • Inherited grants

    • Die <perm> Option ist eine Berechtigungsmaske, die für Grundrechte, erweiterte Rechte oder Vererbungsrechte angegeben werden kann:

      • Eine Sequenz einfacher Rechte (Grundlegende Berechtigungen), ohne Klammern verwenden zu müssen:

        • N - Kein Zugang
        • F – Vollzugang
        • M – Zugriff ändern
        • RX – Lese - und Ausführungszugriff
        • R – Nur-lese-Zugriff
        • W – Schreibzugriff
        • D - Zugriff löschen
      • Eine durch Trennzeichen getrennte Liste bestimmter Rechte (erweiterte Berechtigungen), die Klammern verwenden müssen:

        • DE - Löschen
        • RC – Lesekontrolle (Leseberechtigungen)
        • WDAC – DAC schreiben (Berechtigungen ändern)
        • WO – Besitzer schreiben (Eigentum übernehmen)
        • S – Synchronize
        • AS – Zugriffssystemsicherheit
        • MA – Maximal erlaubt
        • GR – Generische Lektüre
        • GW – Generisches Schreiben
        • GE – Generische Ausführung
        • GA – Generische alle
        • RD – Daten-/Listenverzeichnis lesen
        • WD – Daten/Datei hinzufügen
        • AD – Daten hinzufügen/Unterverzeichnis hinzufügen
        • REA – Erweiterte Attribute lesen
        • WEA – Erweiterte Attribute schreiben
        • X - Ausführen/durchlaufen
        • DC – Child löschen
        • RA – Leseattribute
        • WA – Schreibattribute
      • Eine Abfolge von Vererbungsrechten, die Klammern verwenden müssen:

        • (I) - Erben . ACE wurde vom übergeordneten Container geerbt.
        • (OI) - Objekt erbt. Objekte in diesem Container erben diese ACE. Gilt nur für Verzeichnisse.
        • (CI) - Container erbt. Container in diesem übergeordneten Container erben diese ACE. Gilt nur für Verzeichnisse.
        • (IO) - Nur erben. ACE wurde vom übergeordneten Container geerbt, gilt jedoch nicht für das Objekt selbst. Gilt nur für Verzeichnisse.
        • (NP) - Verbreite das Erben nicht. ACE, geerbt von Containern und Objekten vom übergeordneten Container, wird jedoch nicht an geschachtelte Container weitergegeben. Gilt nur für Verzeichnisse.

    Examples

    Um die DACLs für alle Dateien im C:\Windows-Verzeichnis und deren Unterverzeichnisse in der ACLFile-Datei zu speichern, geben Sie Folgendes ein:

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

    Wenn Sie die DACLs für jede Datei in ACLFile wiederherstellen möchten, die im Verzeichnis "C:\Windows" und deren Unterverzeichnisse vorhanden ist, geben Sie Folgendes ein:

    icacls c:\windows\ /restore aclfile
    

    Geben Sie Folgendes ein, um dem Benutzer "User1 Delete" und "Write DAC" Berechtigungen für eine Datei mit dem Namen "Test1" zu erteilen:

    icacls test1 /grant User1:(d,wdac)
    

    Geben Sie Folgendes ein, um dem von sid S-1-1-0 definierten Benutzer DAC-Berechtigungen für eine Datei mit dem Namen TestFile zu erteilen:

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

    Um einem Verzeichnis eine hohe Integritätsebene anzuwenden und sicherzustellen, dass sowohl seine Dateien als auch Unterverzeichnisse diese Ebene übernehmen, geben Sie ein:

    icacls "myDirectory" /setintegritylevel (CI)(OI)H