icacls.exe (Win: Ordner-/Datei-Rechte)

    • Offizieller Beitrag

    Ordner und Dateirechte ansehen/verändern.
    Tool von Microsoft Corporation

    fileacl.exe 2004
    xcacls.vbs ab 2004 (Beta, kein Support)
    xcacls.exe ab Win 2000
    icacls.exe ab Win Server 2003 SP2 (Microsoft TechNet 2007)

    C:\>icacls /?

    Inhalt aus der Dateihilfe

    Syntax

    • ICACLS name [/grant[:r] Sid:perm[...]] [/deny Sid:perm [...]] [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q] [/setintegritylevel Level:policy[...]]
    • ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
      Speichert die DACLs für die Dateien und Ordner mit übereinstimmendem Namen zur späteren Verwendung mit "/restore" in der ACL-Datei. SACLs, Besitzer oder Integritätsbezeichnungen werden nicht gespeichert.
    • ICACLS Verzeichnis [/substitute SidOld SidNew [...]] /restore aclfile [/C] [/L] [/Q]
      Wendet die gespeicherten ACLs auf die Dateien im Verzeichnis an.
    • ICACLS name /setowner user [/T] [/C] [/L] [/Q]
      Ändert den Besitzer für alle übereinstimmenden Namen. Diese Option erzwingt keine Änderung der Besitzrechte. Verwenden Sie dazu das Dienstprogramm takeown.exe.
    • ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
      Findet alle übereinstimmenden Namen, die eine ACL enthalten, in der die SID explizit erwähnt wird.
    • ICACLS name /verify [/T] [/C] [/L] [/Q]
      Findet alle Dateien, deren ACL kein kanonisches Format aufweist oder deren Länge nicht mit der ACE-Anzahl übereinstimmt.
    • ICACLS name /reset [/T] [/C] [/L] [/Q]
      Ersetzt die ACLs für alle übereinstimmenden Dateien durch standardmäßige vererbte ACLs.

    Parameter

    • /grant[:r] Sid:perm
      gewährt die angegebenen Benutzerzugriffsrechte.
      Mit :r ersetzen die Berechtigungen alle zuvor gewährten expliziten Berechtigungen.
      Ohne :r, werden die Berechtigungen beliebigen zuvor gewährten expliziten Berechtigungen hinzugefügt.
    • /deny Sid:perm
      verweigert die angegebenen Benutzerzugriffsrechte explizit. Eine explizit verweigerte ACE wird für die angegebenen Berechtigungen hinzugefügt, und die gleichen Berechtigungen in einer expliziten Berechtigung werden entfernt.
    • /remove[:[g|d]] Sid
      entfernt alle Vorkommen gewährter Rechten für diese SID.
      Mit:g, werden alle Vorkommen von gewährten Rechten für diese entfernt.
      Mit :d, werden alle Vorkommen von verweigerten Rechten für diese SID entfernt.
    • /setintegritylevel [(CI)(OI)]Level
      fügt allen übereinstimmenden Dateien explizit eine Integritäts-ACE hinzu. Die Ebene wird mit einem der folgenden Werte angegeben:
      L[ow]
      M[edium]
      H[igh]
      Vererbungsoptionen für die Integritäts-ACE können vor der Ebene stehen und werden nur auf Verzeichnisse angewendet.
    • /inheritance:e|d|
      e - aktiviert die Vererbung.
      d - deaktiviert die Vererbung und kopiert die ACEs.
      r - entfernt alle vererbten ACEs.
    • /T
      gibt an, dass dieser Vorgang für alle übereinstimmenden Dateien/Verzeichnisse ausgeführt wird, die den im Namen angegebenen Verzeichnissen untergeordnet sind.
    • /C
      gibt an, dass dieser Vorgang bei allen Dateifehlern fortgesetzt wird. Fehlermeldungen werden weiterhin angezeigt.
    • /L
      gibt an, dass dieser Vorgang für einen symbolischen Link anhand seines Ziels ausgeführt wird.
    • /Q
      gibt an, dass ICACLS Erfolgsmeldungen unterdrücken soll.
      ICACLS behält die kanonische Sortierung der ACE-Einträge bei:
      - Explizite Verweigerungen
      - Explizite Berechtigungen
      - Vererbte Verweigerungen
      - Vererbte Berechtigungen

    Werte

    • perm ist eine Berechtigungsmaske und kann in einem von zwei Formaten angegeben werden:
      Eine Folge von einfachen Rechten:
      N - Kein Zugriff
      F - Vollzugriff
      M - Änderungszugriff
      RX - Lese- und Ausführungszugriff
      R - Schreibgeschützter Zugriff
      W - Lesegeschützter Zugriff
      D - Löschzugriff
      Eine in Klammern stehende kommagetrennte Liste von bestimmten Rechten:
      DE - Löschen
      RC - Lesesteuerung
      WDAC - DAC schreiben
      WO - Besitzer schreiben
      S - Synchronisieren
      AS - Systemsicherheitszugriff
      MA - Maximal zulässig
      GR - Allgemeiner Lesezugriff
      GW - Allgemeiner Schreibzugriff
      GE - Allgemeiner Ausführungszugriff
      GA - Allgemeiner Zugriff (alle)
      RD - Daten lesen/Verzeichnis auflisten
      WD - Daten schreiben/Datei hinzufügen
      AD - Daten anfügen/Unterverzeichnis hinzufügen
      REA - Erweiterte Attribute lesen
      WEA - Erweiterte Attribute schreiben
      X - Ausführen/Durchsuchen
      DC - Untergeordnetes Element löschen
      RA - Attribute lesen
      WA - Attribute schreiben
      Die Vererbungsrechte können beiden Formaten vorangestellt werden und werden nur auf Verzeichnisse angewendet:
      (OI) - Objektvererbung
      (CI) - Containervererbung
      (IO) - Nur vererben
      (NP) - Vererbung nicht verteilen
      (I) - Vom übergeordneten Container vererbte Berechtigung

    Beispiele

    • icacls c:\windows\* /save AclFile /T
      Speichert die ACLs für alle Dateien unter "c:\windows" und in den dazugehörigen Unterverzeichnissen in der ACL.
    • icacls c:\windows\ /restore AclFile
      Stellt die ACLs für alle Dateien in der ACL-Datei wieder her, die unter "c:\windows" und in den dazugehörigen Unterverzeichnissen vorhanden sind.
    • icacls file /grant Administrator: (D,WDAC)
      Gewährt dem Benutzer mit Administratorrechten die Berechtigungen "DAC löschen" und "DAC schreiben" für die Datei.
    • icacls file /grant *S-1-1-0: (D,WDAC)
      Gewährt dem durch die SID S-1-1-0 definierten Benutzer die Berechtigungen "DAC löschen" und "DAC schreiben" für die Datei.

    Weitere Beispiele

    • icacls "C:\OrdnerName\*.*" /T /reset
      Rechte aus übergeordnetem Order übernehmen, Vererbung aktivieren
    • icacls "C:\OrdnerName" /grant:r UserName: (CI)(OI)(F)
      Rechte setzen individuelle Rechte entfernen (Vererbung bleibt bestehen)
    • icacls "C:\OrdnerName" /inheritance:r
      Alle Vererbungen werden entfernt
    • icacls "C:\OrdnerName\*.*" /inheritance:e
      Vererbung aktivieren (Rechte aus übergeordnetem Ordner wird übertragen)

    Abkürzungen
    SID = Security Identifier (User-ID)
    ACL = Access Control List (Liste) - Rechteliste eines Ordners/Datei
    ACE = Access Control Entries (Einzelberechtigung aus der ACL)

    Hinweis:
    SIDs können im numerischen Format oder als Anzeigenamen angegeben werden. Fügen Sie beim numerischen Format ein * am Anfang der SID hinzu.

    • Offizieller Beitrag

    Beispiele

    Beispiel 1

    Rechte eines Ordners auf Standard (Vererbung aus oberer Ebene) zurücksetzen »»» /reset.
    Einen speziellen User zusätzlich mit allen Rechten ausstatten »»» /grant UserName: (CI)(OI)(F).
    Für alle Ordner/Dateien die Vererbung auf C:\OrdnerName aktivieren »»» /inheritance:e.

    icacls "C:\OrdnerName" /Q /T /reset
    icacls "C:\OrdnerName" /Q /grant UserName: (CI)(OI)(F)
    icacls "C:\OrdnerName\*.*" /Q /T /inheritance:e

    /T = Alle Unterordner mit berücksichtigen
    /Q = Keine Anzeige für erfolgreiche Aktion

    Beispiel 2

    Zwei spezielle User mit Rechten ausstatten und alle anderen spezellen Rechte entfernen (nicht jedoch die vererbten) »»» /grant:r UserName1: (CI)(OI)(F) /grant:r UserName2: (CI)(OI)(RX).
    Alle Vererbungen entfernen »»» /inheritance:r
    Alle Unterordner und die Dateien Vererbung aktivieren »»» /inheritance:e

    icacls "C:\OrdnerName" /Q /grant:r UserName1: (CI)(OI)(F) /grant:r UserName2: (CI)(OI)(RX)
    icacls "C:\OrdnerName" /Q /inheritance:r
    icacls "C:\OrdnerName\*.*" /Q /T /inheritance:e

    /T = Alle Unterordner mit berücksichtigen
    /Q = Keine Anzeige für erfolgreiche Aktion