Der Berechtigungsmanager für Registrierungsschlüssel
Ein unverzichtbarer Helfer für jeden cleveren Windows NT-Administrator
Versionen 5.0 und 6.0
Bedienungsanleitung mit Crash-Kurs über die Benutzerrechte in der Registrierung von Windows NT
Copyright © 1999-2001 Frank Heyne Software (http://www.heysoft.de) - All rights reserved!
Teil 2 - Lektionen
Letzte Änderung: 08. Januar 2001
Lektion 1 - Wirkung der verschiedenen Vererbungsoptionen
Bereits bei der Besprechung von Befehl /L wurden die verschiedenen Vererbungsoptionen kurz erläutert. Alle Möglichkeiten sind nochmals in der folgenden tabellarische Übersicht zusammengefaßt. Um keinen Schaden bei der Verwaltung der Sicherheitseinstellungen anzurichten, ist es sehr wichtig, die Unterschiede zwischen der Version 4 und deren Nachfolgern von Windows NT zu verstehen: In der folgenden Tabelle fehlt das Vererbungsflag (ID), weil es keinen Einfluss auf die Gültigkeit des ACE hat, sondern nur dessen Herkunft dokumentiert.
 
Vererbungsoption ACE gilt für
aktuell Kinder Enkel
(CI) ja ja ja
(CI NP) ja ja nein
(NI) ja nein nein
(IO) nein ja ja
(IO NP) nein ja nein
An einem (wenig sinnvollen) Beispiel soll die Wirkung der verschiedenen Optionen in Windows NT 5 getestet werden. Um mehr über die Unterschiede zwischen den Windows NT Versionen zu lernen, können Sie die folgenden Ergebnisse mit dem Windows NT 4.0 Beispiel vergleichen.
Stellen Sie sicher, daß der Registrierungsschlüssel hklm\Software\Test auf Ihrem Windows 2000 Rechner vorhanden ist, der Registrierungsschlüssel hklm\Software\Test\Demo aber noch nicht existiert und führen Sie anschließend folgendes Skript Demo1.cmd aus:
 
@echo ### Berechtigungen fuer Elternschluessel hklm\Software\Test testen: 
RegDACL hklm\Software\Test /l  

@echo ### neuen Pfad in der Registrierung anlegen: 
reg add hklm\Software\Test\Demo\Kind1\a=1  

@echo ### Berechtigungen fuer hklm\Software\Test\Demo\Kind1 testen: 
RegDACL hklm\Software\Test\Demo\Kind1 /l /e  

@echo ### Berechtigungen fuer hklm\Software\Test\Demo setzen: 
RegDACL hklm\Software\Test\Demo /sge:Q(ni) /sga:F(ci) /sgs:RWO(io) /sgi:r(ci-np) /sgn:qw(io-np)  

@echo ### neue Berechtigungen fuer hklm\Software\Test\Demo testen: 
RegDACL hklm\Software\Test\Demo /l /e  

@echo ### Berechtigungen fuer hklm\Software\Test\Demo\Kind1 testen: 
RegDACL hklm\Software\Test\Demo\Kind1 /l 

@echo ### neuen Pfad in der Registrierung anlegen: 
reg add hklm\Software\Test\Demo\Kind2\Enkel2\a=1  

@echo ### Berechtigungen fuer hklm\Software\Test\Demo\Kind2 testen: 
RegDACL hklm\Software\Test\Demo\Kind2 /l  

@echo ### Berechtigungen fuer hklm\Software\Test\Demo\Kind2\Enkel2 testen: 
RegDACL hklm\Software\Test\Demo\Kind2\Enkel2 /l

Der Aufruf des Skripts dürfte auch bei Ihnen folgende Ausgabe erzeugen:
 
1 
2
C:\Reg> Demo1 
### Berechtigungen fuer Elternschluessel hklm\Software\Test testen:
3 C:\Reg> RegDACL hklm\Software\Test /l 
4 
5 
6 
7
DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\Software\Test": 
(CI)    ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(CI)    ALLOW  Vollzugriff      NT-AUTORITÄT\SYSTEM 
8 ### neuen Pfad in der Registrierung anlegen: 
9 
10
C:\Reg> reg add hklm\Software\Test\Demo\Kind1\a=1 
Der Vorgang wurde erfolgreich beendet. 
11 ### Berechtigungen fuer hklm\Software\Test\Demo\Kind1 testen: 
12 C:\Reg> RegDACL hklm\Software\Test\Demo\Kind1 /l /e 
13 
14 
15 
16
DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\Software\Test\Demo\Kind1": 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-CI) ALLOW  Vollzugriff      NT-AUTORITÄT\SYSTEM
17 
18 
19 
20
Effektive Berechtigungen für den Registrierungsschlüssel 
"hklm\Software\Test\Demo\Kind1": 
Vollzugriff     VORDEFINIERT\Administratoren 
Vollzugriff     NT-AUTORITÄT\SYSTEM
21 ### Berechtigungen fuer hklm\Software\Test\Demo setzen: 
22 C:\Reg> RegDACL hklm\Software\Test\Demo /sge:Q(ni) /sga:F(ci) /sgs:RWO(io) /sgi:r(ci-np) /sgn:qw(io-np) 
22 
23
Setzen der Berechtigung Q(NI) für wirklich "Jeder" 
 - neuer Eintrag wird hinzugefügt 
24 
25 
26
Setzen der Berechtigung F(CI) für vordefinierte Gruppe "Administratoren" 
 - neuer Eintrag wird hinzugefügt 
Warnung: Ein ererbter Eintrag für dieses Konto wird nicht geändert!
27 
28 
29
Setzen der Berechtigung RWO(IO) für vordefinierte Gruppe "System" 
 - neuer Eintrag wird hinzugefügt  
Warnung: Ein ererbter Eintrag für dieses Konto wird nicht geändert!
30 
31
Setzen der Berechtigung R(CI-NP) für vordefinierte Gruppe "Interaktiv" 
 - neuer Eintrag wird hinzugefügt 
32 
33
Setzen der Berechtigung QW(IO-NP) für vordefinierte Gruppe "Netzwerk" 
 - neuer Eintrag wird hinzugefügt 
34 ### neue Berechtigungen fuer hklm\Software\Test\Demo testen: 
35 C:\Reg> RegDACL hklm\Software\Test\Demo /l /e
36 
37 
38 
39 
40 
41 
42 
43 
44
DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\Software\Test\Demo": 
(NI)    ALLOW  Q---------       Jeder 
(CI)    ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(IO)    ALLOW  QW-EN--S-O       NT-AUTORITÄT\SYSTEM 
(CI-NP) ALLOW  Lesen            NT-AUTORITÄT\INTERAKTIV 
(IO-NP) ALLOW  QW--------       NT-AUTORITÄT\NETZWERK 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-CI) ALLOW  Vollzugriff      NT-AUTORITÄT\SYSTEM
45 
46 
47 
48 
49 
50
Effektive Berechtigungen für den Registrierungsschlüssel 
"hklm\Software\Test\Demo": 
Q---------      Jeder 
Vollzugriff     VORDEFINIERT\Administratoren 
Lesen           NT-AUTORITÄT\INTERAKTIV 
Vollzugriff     NT-AUTORITÄT\SYSTEM
51 ### Berechtigungen fuer hklm\Software\Test\Demo\Kind1 testen:
52 C:\Reg> RegDACL hklm\Software\Test\Demo\Kind1 /l 
53 
54 
55 
56 
57 
58 
59
DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\Software\Test\Demo\Kind1": 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-CI) ALLOW  QW-EN--S-O       NT-AUTORITÄT\SYSTEM 
(ID-NI) ALLOW  Lesen            NT-AUTORITÄT\INTERAKTIV 
(ID-NI) ALLOW  QW--------       NT-AUTORITÄT\NETZWERK 
(ID-CI) ALLOW  Vollzugriff      NT-AUTORITÄT\SYSTEM
60 ### neuen Pfad in der Registrierung anlegen:
61 
62
C:\Reg> reg add hklm\Software\Test\Demo\Kind2\Enkel2\a=1 
Der Vorgang wurde erfolgreich beendet.
63 ### Berechtigungen fuer hklm\Software\Test\Demo\Kind2 testen: 
64 C:\Reg> RegDACL hklm\Software\Test\Demo\Kind2 /l 
65 
66 
67 
68 
69 
70 
71
DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\Software\Test\Demo\Kind2": 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-CI) ALLOW  QW-EN--S-O       NT-AUTORITÄT\SYSTEM 
(ID-NI) ALLOW  Lesen            NT-AUTORITÄT\INTERAKTIV 
(ID-NI) ALLOW  QW--------       NT-AUTORITÄT\NETZWERK 
(ID-CI) ALLOW  Vollzugriff      NT-AUTORITÄT\SYSTEM
72 ### Berechtigungen fuer hklm\Software\Test\Demo\Kind2\Enkel2 testen:
73 C:\Reg> RegDACL hklm\Software\Test\Demo\Kind2\Enkel2 /l
74 
75 
76 
77 
78
DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\Software\Test\Demo\Kind2\Enkel2": 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-CI) ALLOW  QW-EN--S-O       NT-AUTORITÄT\SYSTEM 
(ID-CI) ALLOW  Vollzugriff      NT-AUTORITÄT\SYSTEM
Ergebnis von Lektion 1
Erläuterungen zum Ergebnis von Demo 1:
Zeilen 15 bis 16 Beim Anlegen des Registrierungsschlüssels mit dem Befehl reg (aus dem Ressource-Kit) können keine Berechtigungen vergeben werden. Das System vererbt in diesem Falle die Zugriffsrechte des Vorfahren (Zeilen 6 und 7) auf den neuen Schlüssel. .
Zeilen 38 bis 50 Die Berechtigungen für Netzwerk gelten nur für die Nachfahren (IO), daher gibt es für diese Gruppe keinen Eintrag mit effektiven Berechtigungen für den Schlüssel selbst. Die Berechtigungen für System in Zeile 40 gelten auch nur für die Nachfahren (IO), aber auf Grund des geerbten Eintrages auf Zeile 44 hat diese Gruppen doch effektiven Berechtigungen für den Schlüssel selbst.
Zeilen 55 bis 59 In Windows 2000 wurden die Berechtigungen für diesen Schlüssel verändert, als die Berechtigungen für seinen Vorfahren in den Zeilen 28 bis 44 neu gesetzt wurden. In Windows NT wäre das nicht möglich gewesen.
Zeilen 67 bis 71 Die Berechtigungen für diesen Schlüssel wurden aus denen seines Vorfahren (Zeilen 38 bis 44) abgeleitet. Der Eintrag für Jeder war nicht vererbbar, daher fehlt er beim Kindschlüssel.  Entsprechend der Vorgabe (NP) wurden die Vererbungsinformationen für die Gruppen Interaktiv und Netzwerk auf "nicht vererbbar" (NI) beim Kindschlüssel geändert. Die Berechtigungen für Kind1 und Kind2 sind exakt gleich, obwohl der eine Schlüssel vor und der andere nach der Änderung der Berechtigungen für den Vorfahren erstellt wurde.
Zeilen 76 bis 78 Die Berechtigungen für diesen Schlüssel wurden aus denen seines Vorfahren (Zeilen 67 bis 71) abgeleitet. Die Einträge für Administratoren und System wurden unverändert übernommen. Die Vererbungsinformationen für die Gruppen Interaktiv und Netzwerk sind nicht vererbbar (NI) und fehlen daher bei dem neuen Schlüssel. Vielleicht fragen Sie sich, wieso die beiden letzten Einträge für System nicht zu einem einzigen zusammengefügt worden. Indem das nicht getan wird, gibt es keine Probleme, alle vererbten Berechtigungen eines ACEs zu entfernen, wenn dessen Original entfernt wird.


Lektion 2 - Die Gruppe ERSTELLER-BESITZER
Diese Gruppe ist etwas ganz besonderes, weil sie kein Mitglieder haben kann. Windows 2000 behandelt sie anders als alle andere Konten. Bis einschließlich Windows NT 4.0 entsprach diese Gruppe weitgehend dem ERSTELLER eines Objektes. Seit NT 5 entspricht sie aber eher dem BESITZER (zumindest meistens ;). Der Unterschied tritt natürlich nur zu Tage, wenn der Besitzer gewechselt wird. Lassen Sie uns sehen, was passiert, wenn wir als Administrator angemeldet sind und die folgenden Befehle aufrufen:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103
C:\Reg> RegOwner hklm\software\test /l -subtree 
RegOwner 2.0 - Besitzer-Manager für Registrierungsschlüssel 
Copyright (c) 1999-2001 Frank Heyne Software (http://www.heysoft.de) 

Besitzer der Registrierungsschlüssel: 
FH-SERVER\Administrator hklm\software\Test 
FH-SERVER\Max           hklm\software\Test\Kind1 

C:\Reg> regdacl hklm\software\test /l -subtree 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test": 
(IO)    ALLOW  QWCEN-DS--       ERSTELLER-BESITZER 
(CI)    ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test\Kind1": 
(ID-NI) ALLOW  QWCEN-DS--       FH-SERVER\Max 
(ID-IO) ALLOW  QWCEN-DS--       ERSTELLER-BESITZER 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 

C:\Reg> regdacl hklm\software\test /sgo:r 

Setzen der Berechtigung R für vordefinierte Gruppe "Ersteller-Besitzer" 
 - vorhandener Eintrag wird entfernt 
 - neuer Eintrag wird hinzugefügt 

C:\Reg> regdacl hklm\software\test /l -subtree 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test": 
(CI)    ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(NI)    ALLOW  Lesen            FH-SERVER\Administrator 
(IO)    ALLOW  Lesen            ERSTELLER-BESITZER 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test\Kind1": 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-NI) ALLOW  Lesen            FH-SERVER\Max 
(ID-IO) ALLOW  Lesen            ERSTELLER-BESITZER 

C:\Reg> RegOwner hklm\software\test\subkey1 /t 
RegOwner RegOwner 2.0 - Besitzer-Manager für Registrierungsschlüssel 
Copyright (c) 1999-2001 Frank Heyne Software (http://www.heysoft.de) 

Übernahme des Besitzes von hklm\software\Test\Kind1 

C:\Reg> RegDACL hklm\software\test /l -subtree 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test": 
(CI)    ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(NI)    ALLOW  Lesen            FH-SERVER\Administrator 
(IO)    ALLOW  Lesen            ERSTELLER-BESITZER 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test\Kind1": 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-NI) ALLOW  Lesen            FH-SERVER\Max 
(ID-IO) ALLOW  Lesen            ERSTELLER-BESITZER 

C:\Reg> regdacl hklm\software\test /sgo:rwd 

Setzen der Berechtigung RWD für vordefinierte Gruppe "Ersteller-Besitzer" 
 - vorhandener Eintrag wird entfernt 
 - neuer Eintrag wird hinzugefügt 

C:\Reg> RegDACL hklm\software\test /l -subtree 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test": 
(CI)    ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(NI)    ALLOW  Lesen            FH-SERVER\Administrator 
(NI)    ALLOW  QW-EN-DS--       FH-SERVER\Administrator 
(IO)    ALLOW  QW-EN-DS--       ERSTELLER-BESITZER 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test\Kind1": 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-NI) ALLOW  QW-EN-DS--       FH-SERVER\Administrator 
(ID-IO) ALLOW  QW-EN-DS--       ERSTELLER-BESITZER 

C:\Reg> regdacl hklm\software\test /sgo:rw 

Setzen der Berechtigung RW für vordefinierte Gruppe "Ersteller-Besitzer" 
 - vorhandener Eintrag wird entfernt 
 - neuer Eintrag wird hinzugefügt 

C:\Reg> RegDACL hklm\software\test /l -subtree 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test": 
(CI)    ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(NI)    ALLOW  Lesen            FH-SERVER\Administrator 
(NI)    ALLOW  QW-EN-DS--       FH-SERVER\Administrator 
(NI)    ALLOW  QW-EN--S--       FH-SERVER\Administrator 
(IO)    ALLOW  QW-EN--S--       ERSTELLER-BESITZER 

DACL (Zugriffskontrolliste) für den Registrierungsschlüssel 
"hklm\software\Test\Kind1": 
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren 
(ID-NI) ALLOW  QW-EN--S--       FH-SERVER\Administrator 
(ID-IO) ALLOW  QW-EN--S--       ERSTELLER-BESITZER

Ergebnis von Lektion 2
Erklärung der Ausgaben von Lektion Tutorial 2:
Zeilen 1 bis 7 Wir sehen uns zu Beginn der Experimente die gegenwärtigen Besitzer von of hklm\software\test mit RegOwner an. Dieses Programm ist Bestandteil von der Vollversion von RegTools für Windows NT. Der Besitzer des Elternschlüssels ist der Administrator, während der Besitzer des Kindschlüssels Max von unserem Server ist. 
Zeilen 11 bis 20 Wir sehen uns zu Beginn der Experimente die gegenwärtigen Brechtigungen des Teilbaumes, mit dem wir herumspielen wollen, an. Der Elternschlüssel hklm\software\test ist vor der automatischen Übernahme von Berechtigungen von seinen Vorfahren geschützt, sein einziger Unterschlüssel dagegen nicht. Die ACEs wurden eigens für diese Lektion geschaffen, wie, ist eine kleine Denkaufgabe für den angehenden Windows 2000-Administrator. 
Wie Sie sehen, gibt es zu jedem Schlüssel nur einen ACE für ERSTELLER-BESITZER, in dem immer das (IO)-Flag gesetzt ist. 
Was passiert, wenn wir versuchen, diese Einstellungen zu ändern? 
Zeilen 24 bis 26 Wir ändern die Berechtigungen des Elternschlüssels für ERSTELLER-BESITZER in Lesezugriff. Weil keine Vererbungsflags angegeben wurden, verwendet RegDACL den Vorgabewert (CI).
Zeilen 30 bis 40 Das Result ist erstaunlich - es wurden ACEs für ERSTELLER-BESITZER, Administrator und Max geändert. Was machte Windows 2000? Es teilte den einzigen neuen (CI) ACE eigenmächtig in zwei ACEs auf - einen (NI) ACE für den gegenwärtigen Besitzer des jeweiligen Schlüssels sowie einen (IO) ACE für ERSTELLER-BESITZER. Es gibt also keine Möglichkeit, einen ACE, der effektiv für den aktuellen Schlüssel gilt, für ERSTELLER-BESITZER anzulegen. Das Betriebssystem tauscht bei einem solchen Versuch immer ERSTELLER-BESITZER gegen den aktuellen tatsächlichen Besitzer des Objekts aus.
Zeilen 42 bis 46 Jetzt übernehmen wir mit RegOwner den Besitz des Unterschlüssels.
Zeilen 56 bis 60 Wurden dadurch irgendwelche Einträge in der DACL dieses Schlüssels beeinflusst? 
Nein, Zeile 59 enthält noch immer den ACE für den ehemaligen Besitzer, während es keinen Eintrag für den neuen Besitzer Administrator gibt.  
Ich bin mir nicht sicher, ob das ein Bug oder ein Feature von Windows 2000 ist.
Zeilen 62 bis 66 Wir ändern nochmals die Berechtigungen für ERSTELLER-BESITZER im  Elternschlüssel.
Zeilen 70 bis 81 Das Resultat für den Unterschlüssel überrascht - erst jetzt (und nicht wie erwartet nach dem Befehl in Zeile 42) wurde der ACE des früheren Besitzers Max durch den geänderten Eintrag für den aktuellen Besitzer des Unterschlüssels ersetzt.
Zeilen 83 bis 87 Wir ändern nochmals die Berechtigungen für ERSTELLER-BESITZER im  Elternschlüssel.
Zeilen 91 bis 103 Alles funktioniert wie erwartet - mit einer Ausnahme: Der ACE in Zeile 96 wurde angelegt, obwohl bereits der ACE in Zeile 95 für den gegenwärtigen Besitzer angelegt wurde. Aber wie soll Windows auch wissen, dass es bereits der Eintrag auf Zeile 95 nicht direkt für Administrator, sondern für ERSTELLER-BESITZER angelegt hat? Also erzeugt es wieder einen neuen (und völlig redundanten) Eintrag für den aktuellen Besitzer. Wir lernen, daß es am wenigsten Ärger gibt, ACEs für ERSTELLER-BESITZER immer mit gesetztem (IO) Flag anzulegen, andererseits könnten die Resultate unerwartet sein! Zumindest so lange, bis Microsoft das Design der Vererbungsflags überarbeitet und das bisher in Windows 2000 vergessene Flag für die Markierung der ACEs von Besitzern dazubastelt.
Anmerkung: RegEdt32 versucht teilweise erfolgreich, durch eigenmächtiges Manipulieren der Benutzereingaben die beiden hier demonstrierten Bugs zu umgehen.
Bei dem zweiten Bug (redundante Einträge in Zeile 96) gelingt das, nicht aber bei dem ersten Bug (fehlende Änderung des Besitzers in Zeile 59). Es ist also davon
auszugehen, dass Microsoft in einer der nächsten Versionen ein Flag einführt, welches die ACEs des Besitzers kennzeichnet. Aus diesem Grunde verzichtet
RegDACL auf eine Bevormundung des Anwenders und ändert dessen Eingaben nicht eigenmächtig!


Lektion 3 - Sortierung der Einträge in Zugriffskontrolllisten
Noch eine Überraschung hält Windows 2000 für Sie bereit. Lassen Sie einfach das folgende Skript laufen:
reg delete hklm\software\test
reg add hklm\software\test\a\b\c\w=1
RegDACL hklm\software\test /sga:f /dgn:c
RegDACL hklm\software\test /pr
RegDACL hklm\software\test\a /sgn:q /dgn:w
RegDACL hklm\software\test\a\b /sgn:e /dgn:a
RegDACL hklm\software\test\a\b\c /sgn:n /dgn:o
RegDACL hklm\software\test\a\b\c /l
Die letzte Zeile liefert folgendes Ergebnis:
DACL (Zugriffskontrolliste) für den Registrierungsschlüssel
"hklm\software\test\a\b\c":
(CI)    DENY   ---------O       NT-AUTORITÄT\NETZWERK
(CI)    ALLOW  ----N-----       NT-AUTORITÄT\NETZWERK
(ID-CI) DENY   --------A-       NT-AUTORITÄT\NETZWERK
(ID-CI) ALLOW  ---E------       NT-AUTORITÄT\NETZWERK
(ID-CI) DENY   -W--------       NT-AUTORITÄT\NETZWERK
(ID-CI) ALLOW  Q---------       NT-AUTORITÄT\NETZWERK
(ID-CI) DENY   --C-------       NT-AUTORITÄT\NETZWERK
(ID-CI) ALLOW  Vollzugriff      VORDEFINIERT\Administratoren
Hier sind die DENY- und ALLOW-Einträge scheinbar bunt durcheinandergewürfelt. Es hat aber alles seine Ordnung. Bei einem Zugriffsversuch auf ein geschütztes Objekt wird die Zugriffskontrolllliste bekantlich von oben nach unten abgearbeitet, bis festgestellt wird, dass entweder alle angeforderten Berechtigungen gewährt werden (= Zugriff gestattet) oder wenigstens eine der angeforderten Berechtigungen verweigert wird (= Zugriff verweigert). Sind am Ende der Liste noch immer nicht alle angeforderten Berechtigungen gewährt, so wird der Zugriff ebenfalls verweigert. Explizit für ein Objekt gewährte Berechtigungen überschreiben immer die geerbten Berechtigungen, sie müssen also am Anfang der Liste stehen. Weiterhin überschreiben von den Eltern geerbte Berechtigungen solche, die von den Großeltern geerbt wurden, und so weiter.
So gesehen, ist der Aufbau der Liste oben ganz einleuchtend:
  1. Die ersten beiden Einträge gelten direkt für das Objekt.
  2. Die nächsten beiden Einträge stammen vom direkten Vorfahren
  3. Der 5. und 6. Eintrag stammen vom Vorfahren 2. Generation (Großvater)
  4. Die letzten beiden Einträge stammen vom Vorfahren 3. Generation (Urgroßvater)
Innerhalb jeder "Vererbungsschicht" kommen alle DENY-Einträge vor den ALLOW-Einträgen.

Alles klar?
Wenn nach gründlicher Lektüre dieses Artikels wider Erwarten noch Unklarheiten bezüglich des Setzens oder der Wirkung von Zugriffsberechtigungen in der Registrierung von Windows NT herrschen, können Sie zwecks Klärung gern eine email an fh@heysoft.de schicken.  Zuvor sollten Sie aber prüfen, ob Ihre Frage nicht schon in der FAQ zu Sicherheitsfragen der Windows NT Registrierung beantwortet wurde.