NTFS-Berechtigungen nach unten durchdrücken per Kommandozeilenbefehl?

Mitglied: AlbertMinrich

AlbertMinrich (Level 2) - Jetzt verbinden

14.11.2011 um 16:53 Uhr, 11286 Aufrufe, 11 Kommentare

Hallo,

ein Windows 2003er Server.
Beispielsweise diese Ordnerstruktur:

c:\eins
c:\eins\a
c:\eins\b
c:\eins\c

Ich möchte, egal wie die Berechtigungen und Vererbungen für diese 4 Ordner gerade eingestellt sind, für den Ordner c:\eins das Erben deaktivieren, individuelle Berechtigungen vergeben und diese nach unten durchdrücken, so dass auf alle 4 Ordner die gleichen Berechtigungen gelten und bei den Unterordnern a, b und c das Erben aktiviert ist.

Per GUI geht das einfach durch Eigenschaften von Ordner "eins" > Sicherheit > Erweitert > den Haken "Berechtigungen übergeordneter Objekte auf untergeordnete Objekte, sofern anwendbar, vererben. Diese mit den hier definierten Einträgen mit einbeziehen." entfernen. Die anschliessende Frage entweder mit Kopieren oder Entfernen beantworten.
75f48769248c0877e209064227412d8f - Klicke auf das Bild, um es zu vergrößern

Jetzt individuelle Berechtigungen vergeben.
1cfd0f026e9a31953828d6caa7942787 - Klicke auf das Bild, um es zu vergrößern

und diese durch Haken bei "Berechtigungen für alle untergeordneten Objekte durch die angezeigten Einträge, sofern anwendbar, ersetzen." nach unten durchdrücken.
70c75e827511027a63b7473eed015e25 - Klicke auf das Bild, um es zu vergrößern


Kein Problem, aber wie geht´s per Kommandozeile.
Ich denke nicht mit cacls.exe oder xcacls.exe. Auch bei icacls.exe hab ich nichts gefunden. Am ehesten noch mit xcacls.vbs. Aber auch damit geht meiner Meinung nach nur folgendes.

Möglichkeit 1:
Dadurch sind zwar auf alle 4 Ordner die gewünschten Berechtigungen vergeben, aber die Unterordner a, b und c haben sie nicht geerbt, sondern sie wurden explizit vergeben. Genau das will ich ja nicht.

Möglichkeit 2:
Dadurch wird auf c:\eins das Erben aktiviert und die Berechtigungen werden nach unten durchgedrückt. Die Unterordner a, b und c haben die Berechtigungen von oben geerbt. Alles super, nur will ich auf c:\eins das Erben nicht aktivieren, nur bei den Unterordnern.

Mir bleibt also nur eine Kombination beider Möglichkeiten:
Ich durchlaufe also in einer Schleife alle Unterordner (erster Ebene) und führe für jeden den Befehl aus Möglichkeit 2 aus.

Geht das wirklich nicht anders?


Danke
Martin
Mitglied: AlbertMinrich
14.11.2011 um 17:11 Uhr
Zitat von @AlbertMinrich:
Mir bleibt also nur eine Kombination beider Möglichkeiten:
"cscript nologo xcacls.vbs c:\eins /i remove /g mydomain\username:F /f /s /t"
"for /D %i in (C:\eins\*) do cscript
nologo xcacls.vbs %i /i enable /f /s"

Hab grad noch gemerkt, andersrum geht´s ein wenig einfacher
aber schöner wär´s mit einer Zeile.
Bitte warten ..
Mitglied: DerWoWusste
14.11.2011 um 21:34 Uhr
Moin.

Und was ist mit icacls ... /inheritance?
Bitte warten ..
Mitglied: AlbertMinrich
15.11.2011 um 06:30 Uhr
Zitat von @DerWoWusste:
Moin.

Und was ist mit icacls ... /inheritance?

Ja, den Parameter "inheritance" hab ich auch öfters gelesen. Bei meinem icacls gibt´s den aber gar nicht und ein anderes hab ich nicht gefunden.
Wenn du einen Downloadlink hast, ich würd´s mir gern mal anschauen.

Gruß
Martin
Bitte warten ..
Mitglied: DerWoWusste
15.11.2011 um 11:51 Uhr
Du hast Recht, 2003 bekommt vom sp2 ein icacls, welches buggy ist: es fehlt dieser Parameter. Nimm http://support.microsoft.com/kb/943043 , dieser Fix behebt das.
Bitte warten ..
Mitglied: AlbertMinrich
15.11.2011 um 13:45 Uhr
Hallo,

danke. Ich hab den Hotfix installiert, es gibt dann auch den Parameter /inheritance.
Aber auch damit geht´s nicht anders als mit xcacls.vbs.
Es fehlt bei beiden die Option, die Berechtigungen nach unten durchzudrücken UND gleichzeitig für alle Unterordner das Erben zu aktivieren.

Vielleicht überseh ich ja auch was.
Gruß
Martin
Bitte warten ..
Mitglied: DerWoWusste
15.11.2011 um 14:14 Uhr
(OI)(CI)=object inherit und container inherit. Das ist es doch.
Bitte warten ..
Mitglied: AlbertMinrich
15.11.2011 um 14:34 Uhr
Zitat von @DerWoWusste:
(OI)(CI)=object inherit und container inherit. Das ist es doch.

Das gab es auch mit dem alten icacls.exe, aber das hilft mir nicht, denn was macht z.B. das hier?
Damit bekommt der User mydomain\username Vollzugriff und das wird nach unten vererbt. ABER NUR, wenn bei den untergeordneten Ordnern das Erben aktiv ist. Ist es aber nicht unbedingt immer.


So könnte ich es zwar durchdrücken
so dass alle untergeordneten Ordner die gewünschten Berechtigungen haben, aber dann sind sie nicht geerbt sondern explizit gesetzt.
Bitte warten ..
Mitglied: DerWoWusste
15.11.2011 um 15:16 Uhr
Wieso? Sie sind geerbt. Ich nutze hier ein Skript [Edit: auf Vista/2008R2], das geht
und kann danach über den Explorer beispielsweise bei untergeordneten Dateien sehen, dass von server\share geerbt wurde.

Edit2: man beachte das /r: r - remove all inherited ACEs
Bitte warten ..
Mitglied: AlbertMinrich
15.11.2011 um 19:56 Uhr
Zitat von @DerWoWusste:
Wieso? Sie sind geerbt. Ich nutze hier ein Skript [Edit: auf Vista/2008R2], das geht
und kann danach über den Explorer beispielsweise bei untergeordneten Dateien sehen, dass von server\share geerbt wurde.

Edit2: man beachte das /r: r - remove all inherited ACEs

Und bei den untergeordneten Ordnern bzw. Dateien war das Erben vorher sicher deaktiviert?

Bei mir klappt das nicht. Muss morgen mal an einem 2008er Server testen, ob der sich anders verhält als mein 2003er bzw. mein XP.

Gruß
Martin
Bitte warten ..
Mitglied: AlbertMinrich
17.11.2011 um 17:30 Uhr
Zitat von @AlbertMinrich:
> Zitat von @DerWoWusste:
> ----
> Wieso? Sie sind geerbt. Ich nutze hier ein Skript [Edit: auf Vista/2008R2], das geht
>
> und kann danach über den Explorer beispielsweise bei untergeordneten Dateien sehen, dass von server\share geerbt wurde.
>
> Edit2: man beachte das /r: r - remove all inherited ACEs

Und bei den untergeordneten Ordnern bzw. Dateien war das Erben vorher sicher deaktiviert?

Bei mir klappt das nicht. Muss morgen mal an einem 2008er Server testen, ob der sich anders verhält als mein 2003er bzw. mein
XP.
Zitat von @AlbertMinrich:
> Zitat von @DerWoWusste:
> ----
> Wieso? Sie sind geerbt. Ich nutze hier ein Skript [Edit: auf Vista/2008R2], das geht
>
> und kann danach über den Explorer beispielsweise bei untergeordneten Dateien sehen, dass von server\share geerbt wurde.
>
> Edit2: man beachte das /r: r - remove all inherited ACEs

Und bei den untergeordneten Ordnern bzw. Dateien war das Erben vorher sicher deaktiviert?

Bei mir klappt das nicht. Muss morgen mal an einem 2008er Server testen, ob der sich anders verhält als mein 2003er bzw. mein
XP.

Also, habs probiert an einem 2008er Server. Klappt leider nicht. Beispiel im Screenshot.
Mit dem ersten
"icacls c:\eins /t"
sieht man, die Berechtigungen sind auf die beiden Unterordner a und b gleich, der Unterschied ist, a hat sie geerbt (Erben ist aktiviert), bei b sind sie explizit vergeben (Erben ist deaktiviert). Das ist die Ausgangsbasis. Ob Berechtigungen geerbt sind, sind man an dem "(I)".

Nächster Befehl:
"icacls c:\eins /grant:r fritz: (OI)(CI)()F) /t" (zwischen fritz: und (OI) ist nur hier ein Leerzeichen, sonst wird ein (Anti-)Smiley draus)
und wieder mit
"icacls c:\eins /t"
überprüft.
Was ist passiert?
Der Unterordner a hat die Fritz-Berechtigung einmal geerbt und einmal wurde sie explizit vergeben.
Bei Unterordner b wurde sie nur explizit vergeben.

Zum Vergleich hab ich dann die Berechtigungen per Explorer gesetzt (Haken: "Berechtigungen übergeordneter Objekte auf untergeordnete Objekte, sofern anwendbar, vererben....") und nochmal das Ergebnis angezeigt mit
"icacls c:\eins /t"
Man sieht, alle drei Ordner haben jetzt exakt die gleichen Berechtigungen. Beim Ordner c:\eins explizit vergeben, die beiden Unterordner haben sie geerbt. So soll es sein.

[EDIT] Mist, wieso gibts jetzt hier keine Möglichkeit mehr, ein Bild einzufügen. Ich versuchs von zu Hause
So, jetzt:
8bfa742f2e6104f8747b3acddaad01f2 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: AlbertMinrich
19.11.2011 um 12:06 Uhr
Jetzt hab ich doch noch das richtige Tool gefunden:
setacl.exe
http://helgeklein.com/setacl/documentation/command-line-version-setacl- ...

So sieht der Befehl aus:
SetACL.exe -on c:\eins\zwei -ot file -actn clear -clr "dacl" -actn ace -ace "n:mydomain\myuser;p:change" -ace "n:mydomain\group;p:full" -actn setprot -op "dacl:p_nc" -actn rstchldrn -rst dacl



Damit bekommt auf das Verzeichnis c:\eins der User mydomain\myuser Ändern-Berechtigung:
"-ace "n:mydomain\myuser;p:change""

die Gruppe mydomain\mygroup Vollzugriff
"-ace "n:mydomain\mygroup;p:full""

deaktivieren des Erbens von oben (Berechtigungen werden gelöscht)
"setprot -op "dacl:p_nc""

löschen aller nichtgeerbten Berechtigungen
"clear -clr "dacl""

und das wichtigste, dass ich bisher nirgends finden konnte, durchdrücken der Berechtigungen nach unten
"rstchldrn -rst dacl"


Gruß
Martin
Bitte warten ..
Heiß diskutierte Inhalte
Windows 10
Windows 7 pro Lizenz nutzen für Windows 10
lukas0209Vor 1 TagFrageWindows 1015 Kommentare

Hallo Community, ich versuche seit einigen Wochen unser Netzwerk von Windows Server 2008 R2 Standard auf Windows Server 2016 Essentials um, welches eine städtische ...

Windows Netzwerk
Telefone im Netzwerk bekannt machen
jannik0205Vor 1 TagFrageWindows Netzwerk13 Kommentare

Hallo Zusammen, In unserem Unternehmen gibt es eine Telefonanlage mit eigenem Telefonienetz (192.168.5.X). Schließe ich ein Telefon an eine Netzwerkdose, bekommt es vom DHCP- ...

Windows Netzwerk
WTS-Anmeldung per RDP am Wochenende verbieten?
MuM2810Vor 1 TagFrageWindows Netzwerk9 Kommentare

Hallo zusammen, wir haben bei uns Windows Server 2016 mit 2 Terminal Servern im Einsatz. Wie aus dem Titel schon ersichtlich ist, ist bei ...

Netzwerkgrundlagen
Frage zu LWL Kabel
gelöst NominisVor 1 TagFrageNetzwerkgrundlagen6 Kommentare

Hallo, ich habe nur mal eine kurze Verständnisfrage. Es geht um die Verbindung bzw. Anbindung von Switches (Cisco 48Port 10/100/1000 MBit mit 2 SFP+ ...

Microsoft
Microsoft Teams - "bitte wenden Sie sich an (. . .) um Teams für "domäne" zu aktivieren" nur bei einem Benutzer
eastfrisianVor 1 TagFrageMicrosoft6 Kommentare

Hallo zusammen! Wir haben bei uns Teams als Hybridversion eingeführt (Exchange on premise, AD-Sync in die Cloud) und nutzen Teams über das basic-Abonnement. Während ...

Microsoft
Staatsanwaltschaften verschicken Vorladungen in Sachen Windows 10 Lizenzkeys
kgbornVor 12 StundenInformationMicrosoft3 Kommentare

Nur zu Info für die Käufer der eBay-Schnäppchen - neuer Fall Staatsanwaltschaften verschicken Vorladungen in Sachen Windows 10 Lizenzkeys

Netzwerke
Keine Versand von Mails von der Firmen zur Privaten E-Mailadresse möglich
blaub33r3Vor 1 TagFrageNetzwerke6 Kommentare

Hallo zusammen, wieso kommt der User keine Mails mehr? Der Sender wird als Spamer betrachtet? 1. Mailing an andere Privaten Adressen / Firmen Adressen ...

Netzwerke
Netzwerklaufwerk - Nur Lesen (Streamen)
CryexXVor 1 TagFrageNetzwerke8 Kommentare

Hallo, ich hab mal ne Frage und hoffe auf Lösung. Mir schießt aktuell keine in den Kopf :( Ich möchte ein Netzlaufwerk freigeben. Auf ...