Thema:
ICACLS (icacls.exe) editieren von Verzeichnisberechtigungen, mit Beispiel für bat Dateien




ICACLS (icacls.exe) ist ein DOS Befehl unter Windows 7 mit dem man Berechtigungen von Verzeichnissen ändern kann. Es ist der Nachfolger von CACLS.EXE bzw. XCACLS.EXE.

Da ich selbst Beruflich Probleme damit hatte, hier kurz ein Beispiel wie man mit ICACLS (icacls.exe) der Lokalen Gruppe "Benutzer" Vollzugriff auf ein Verzeichnis gewährt, durch ändern bzw. hinzufügen der Gruppe/Rechte ohne die alten zu löschen.


Beispiel:
icacls.exe "c:\Verzeichnis" /T /grant:r "BENUTZER":(OI)(CI)F


Erklärung zum unserem Beispiel:
"c:\Verzeichnis" ist der Verzeichnisname auf den der Befehl angewendet werden soll.
/T bedeutet alle Unterverzeichnisse/Dateien
/grant:r bedeutet das wenn das Objekt (z.B. User oder Gruppe), dem man hier rechte geben will schon Zugriffsrechte hatte, diese überschrieben werden, und nicht drangehängt werden.
"Benutzer" ist das Objekt dem man Berechtigungen geben will, z.B. "Domain\UserXYZ",
man könnte aber auch "Domain\GruppeXYZ" nehmen. Oder nur lokal eben "LokaleGruppe",
oder "LokalerUserAccount".
(OI)(CI) bedeutet Objektvererbung und Containervererbung
(am Besten nicht fragen, einfach verwenden *g*).
F, bedeutet Vollzugriff.

Mit so einem Beispiel kann man sich dann selbst entsprechende Zeilen zusammenbauen, genaue Informationen zum Befehl bekommt man mit:
icacls.exe /?


Der Hilfe /? Informations Text von ICACLS (icacls.exe):

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.

ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
[/setintegritylevel Level:policy[...]]

/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|r
e - aktiviert die Vererbung.
d - deaktiviert die Vererbung und kopiert die ACEs.
r - entfernt alle vererbten ACEs.


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

/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

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 dazu-
gehö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 dazuge-
hö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.



ICACLS (icacls.exe) bietet die Möglichkeit unattended mit einer .bat Datei oder anderen Scripts die dynamisch Dosbefehle ausführen können, die Verzeichnisberechtigungen zu ändern.



Artikel auf Englisch - Topic in English