Document NTFS traverse ensure configuration
This commit is contained in:
@@ -107,6 +107,81 @@ Damit kann die Filterung nicht einfach durch direktes Laden einer UID umgangen w
|
||||
|
||||
Die Path-Policy ist also klassifizierungsunabhaengig, das Berechtigungs-Handling selbst aber bewusst nicht.
|
||||
|
||||
### 7. Automatisches Permission-Ensure und Traverse
|
||||
|
||||
`EnsureNtfsPermissionGroups` wird ebenfalls ueber `AdditionalConfiguration` gesteuert. Die Werte kommen aus `C4IT_GCC_DataArea_Collector_AdditionalAttributes` und werden beim Provider-Aufbau in `AdditionalConfiguration` uebernommen.
|
||||
|
||||
Wenn `EnsureNtfsPermissionGroups=1` gesetzt ist, wird beim Laden von NTFS-Folder-DataAreas der Soll-Zustand fuer Berechtigungsgruppen sichergestellt:
|
||||
|
||||
- Owner-/Write-/Read-Gruppen werden angelegt oder wiederverwendet
|
||||
- fehlende NTFS-ACLs werden auf dem Zielordner gesetzt
|
||||
- Traverse-Gruppen werden analog zur Ordner-Neuanlage verarbeitet
|
||||
|
||||
Damit ist der nachtraegliche Ensure-Pfad fachlich mit der bestehenden Ordner-Neuanlage gleichgezogen. Share-Pfade bleiben gesondert ueber `EnsureNtfsPermissionGroupsForShares` behandelt; Traverse wird dabei nicht implizit fuer Shares erweitert.
|
||||
|
||||
### 8. Optionale Traverse-Boundary
|
||||
|
||||
Die neue Einstellung `NtfsTraverseBoundaryPath` ist optional und wird ebenfalls aus `AdditionalConfiguration` gelesen.
|
||||
|
||||
Ohne `NtfsTraverseBoundaryPath` bleibt die bestehende Traverse-Reichweite unveraendert. Die Verarbeitung folgt dann der bisherigen `baseFolder`-/`createTraverseGroupLvl`-Logik der Ordner-Neuanlage.
|
||||
|
||||
Mit `NtfsTraverseBoundaryPath` kann die sichtbare Parent-Kette explizit erweitert werden. Die Traverse-Verarbeitung laeuft dann vom Parent des Zielordners bis inklusive dieser Boundary.
|
||||
|
||||
Beispiel:
|
||||
|
||||
```text
|
||||
RootPath=\\SRVWSM001.imagoverum.com\file_shares\share2
|
||||
EnsureNtfsPermissionGroups=1
|
||||
NtfsTraverseBoundaryPath=\\SRVWSM001.imagoverum.com\file_shares
|
||||
```
|
||||
|
||||
Fuer den Zielordner:
|
||||
|
||||
```text
|
||||
\\SRVWSM001.imagoverum.com\file_shares\share2\test33
|
||||
```
|
||||
|
||||
werden Traverse-Gruppen und Parent-ACLs fuer folgende Pfade sichergestellt:
|
||||
|
||||
- `\\SRVWSM001.imagoverum.com\file_shares\share2`
|
||||
- `\\SRVWSM001.imagoverum.com\file_shares`
|
||||
|
||||
Nicht verarbeitet wird der Serverroot `\\SRVWSM001.imagoverum.com`.
|
||||
|
||||
Die Boundary muss ein Parent-Pfad des Zielordners sein und erreichbar sein. Ist das nicht der Fall, bricht der Ensure-/Create-Vorgang mit einer klaren Fehlermeldung ab, bevor Gruppen oder ACLs veraendert werden.
|
||||
|
||||
### 9. Traverse-Naming-Platzhalter
|
||||
|
||||
Fuer Traverse-Naming-Conventions gibt es zusaetzliche optionale Platzhalter:
|
||||
|
||||
- `{{TRAVERSE_NAME}}`: Name des aktuell verarbeiteten Traverse-Parents, z.B. `share2`
|
||||
- `{{TRAVERSE_VISIBLEPATH}}`: sichtbarer Parent-Pfad ab dem Parent der Boundary, segmentweise mit `_`, z.B. `file_shares_share2`
|
||||
|
||||
Bestehende Platzhalter wie `{{NAME}}` und `{{RELATIVEPATH}}` bleiben unveraendert und behalten ihre bisherige Bedeutung.
|
||||
|
||||
Beispiel fuer eine Traverse-Namenskonvention:
|
||||
|
||||
```text
|
||||
{{ADGroupPrefix}}_{{SCOPETAG}}_{{TRAVERSE_VISIBLEPATH}}{{_LOOP}}{{GROUPTYPEPOSTFIX}}
|
||||
```
|
||||
|
||||
Bei:
|
||||
|
||||
```text
|
||||
ADGroupPrefix=ACL
|
||||
Filesystem_GroupGlobalTag=G
|
||||
Filesystem_GroupTraverseTag=_T
|
||||
```
|
||||
|
||||
entstehen daraus z.B.:
|
||||
|
||||
```text
|
||||
ACL_G_FILE_SHARES_T
|
||||
ACL_G_FILE_SHARES_SHARE2_T
|
||||
```
|
||||
|
||||
Wenn das Traverse-`NamingTemplate` leer ist, ist das kein Fehler. Es wird dann keine neue Traverse-Gruppe angelegt. Bestehende Gruppen werden aber weiterhin ueber ACLs und, sofern gepflegt, ueber `Wildcard` gesucht und konfiguriert. Sind `NamingTemplate` und `Wildcard` leer, ist die Traverse-Verarbeitung fuer diesen Parent ein No-op.
|
||||
|
||||
## Matching-Regeln
|
||||
|
||||
Empfohlene Semantik:
|
||||
|
||||
Reference in New Issue
Block a user