Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
acl [2024/09/17 14:52] jango [Windows] |
acl [2025/04/09 10:31] (aktuell) jango |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | Mit Hilfe von Access Control Lists (kurz ACL) ist es möglich, einzelnen Nutzern (oder auch Gruppen) gezielt Rechte an einzelnen Dateien bzw Diensten zu gewähren oder zu entziehen. | + | Mit Hilfe von Access Control Lists (kurz ACL) ist es möglich, einzelnen Nutzern (oder auch Gruppen) gezielt Rechte an einzelnen Dateien bzw Diensten zu gewähren oder zu entziehen. Siehe auch [[icacls]]. |
ACLs werden aber auch auf [[switch|Switches]], | ACLs werden aber auch auf [[switch|Switches]], | ||
Zeile 26: | Zeile 26: | ||
<code powershell> | <code powershell> | ||
- | Get-ACL "C:\Ordner" | + | ### Get ACL |
- | Get-ACL "C:\Ordner" | %{ $_.Access} | + | |
+ | Write-Output | ||
+ | get-acl -path " | ||
+ | |||
+ | |||
+ | ### Modify ACL | ||
+ | |||
+ | $NewAcl = Get-Acl -Path " | ||
+ | |||
+ | # Properties | ||
+ | $identity = " | ||
+ | $fileSystemRights = " | ||
+ | $type = " | ||
+ | |||
+ | # Create new rule | ||
+ | $fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, | ||
+ | $fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList | ||
+ | |||
+ | # Apply new rule | ||
+ | $NewAcl.SetAccessRule($fileSystemAccessRule) | ||
+ | Set-Acl -Path " | ||
+ | |||
+ | Write-Output "After Modify:" | ||
+ | get-acl -path " | ||
+ | |||
+ | ### Remove | ||
+ | |||
+ | $Acl = Get-Acl -Path "\\fileserver\public\gbi\berechtigungsaudit\test" | ||
+ | |||
+ | # Properties | ||
+ | $Identity = " | ||
+ | $FileSystemRights = [System.Security.AccessControl.FileSystemRights]:: | ||
+ | $AccessControlType = [System.Security.AccessControl.AccessControlType]:: | ||
+ | $InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]:: | ||
+ | $PropagationFlags = [System.Security.AccessControl.PropagationFlags]:: | ||
+ | |||
+ | # Create rule to remove | ||
+ | $RuleToRemove = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $Identity, $FileSystemRights, | ||
+ | $Acl.RemoveAccessRule($RuleToRemove) | ||
+ | |||
+ | # Apply rule | ||
+ | Set-Acl -Path " | ||
+ | |||
+ | Write-Output "After Remove:" | ||
+ | get-acl -path " | ||
</ | </ | ||
+ | |||
+ | Die InheritanceFlags bestimmen, ob und wie Berechtigungen vererbt werden. Die PropagationFlags dagegen beeinflussen das Verhalten dieser Vererbung. | ||
+ | |||
+ | InheritanceFlags legen fest, ob und auf welche Arten von Objekten (Container oder Objekte) die ACL-Einträge vererbt werden. | ||
+ | |||
+ | * ContainerInherit: | ||
+ | * ObjectInherit: | ||
+ | * None: Keine Vererbung auf untergeordnete Objekte. | ||
+ | |||
+ | PropagationFlags beeinflussen wie die Vererbung angewendet wird wenn sie aktiviert ist (also wenn InheritanceFlags gesetzt sind). Sie kontrollieren die Weitergabe der Vererbung. | ||
+ | |||
+ | * None: Es gibt keine Einschränkungen bei der Vererbung. Der Eintrag wird normal auf untergeordnete Objekte (Ordner und Dateien) vererbt. | ||
+ | * NoPropagateInherit: | ||
+ | * InheritOnly: | ||
+ | |||
+ | ====Icacls==== | ||
Auch [[Windows]] unterstützt granulare Berechtigungseinstellungen. | Auch [[Windows]] unterstützt granulare Berechtigungseinstellungen. |