Komplexe Berechtigungsmatrix auf dem Fileserver
Moin Zusammen,
ein Kunde von mir hat eine extrem verschachtelte Vorgabe bzgl. der Berechtigungen auf dem Fileserver. (Windows Server 2016)
-Hauptordner (Zugriff Team A, Team B, Team C)
-Unterordner 1 (Zugriff Team A, Team B, Team D)
-Unterordner 2 (Zugriff Team A, Team C, Team E)
-Unterunterordner 1 (Zugriff Team A, Team C, Team E, Team F)
usw usw. jedenfalls ist es alles extrem komplex und über die GUI einfach kathastrophal.
Was benutzt ihr dazu oder geht ihr einen ganz anderen Weg um Zugriffsberechtigungen zu verwalten und zu vergeben?
Beste Grüße
X
ein Kunde von mir hat eine extrem verschachtelte Vorgabe bzgl. der Berechtigungen auf dem Fileserver. (Windows Server 2016)
-Hauptordner (Zugriff Team A, Team B, Team C)
-Unterordner 1 (Zugriff Team A, Team B, Team D)
-Unterordner 2 (Zugriff Team A, Team C, Team E)
-Unterunterordner 1 (Zugriff Team A, Team C, Team E, Team F)
usw usw. jedenfalls ist es alles extrem komplex und über die GUI einfach kathastrophal.
Was benutzt ihr dazu oder geht ihr einen ganz anderen Weg um Zugriffsberechtigungen zu verwalten und zu vergeben?
Beste Grüße
X
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 425823
Url: https://administrator.de/contentid/425823
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
15 Kommentare
Neuester Kommentar
Zitat von @Xaero1982:
usw usw. jedenfalls ist es alles extrem komplex und über die GUI einfach kathastrophal.
usw usw. jedenfalls ist es alles extrem komplex und über die GUI einfach kathastrophal.
Deswegen nutzt man die Kommandozeile oder Skripte.
Was benutzt ihr dazu oder geht ihr einen ganz anderen Weg um Zugriffsberechtigungen zu verwalten und zu vergeben?
Ich benutze da meistens individuell angepaßte Skripte mit getcal/setacl.
lks
Moin,
Dat geiht so nich. Wenn TeamD keine mindestens lesenden Zugriff auf den Hauptordner hat, dann hat es auch keinen auf den Unterordner.
AGDPL ist der Weg, sowas zu lösen. Eine globale Gruppe für jedes Team, die bei Bedarf weiter veschachtelt werden. Dann eine lokale Gruppe pro Ressource für den lesenden und eine für den schreibenden Zugriff. Die globalen kommen dann in die lokalen und alles ist gut.
Zitat von @Xaero1982:
Moin Zusammen,
ein Kunde von mir hat eine extrem verschachtelte Vorgabe bzgl. der Berechtigungen auf dem Fileserver. (Windows Server 2016)
-Hauptordner (Zugriff Team A, Team B, Team C)
-Unterordner 1 (Zugriff Team A, Team B, Team D)
Moin Zusammen,
ein Kunde von mir hat eine extrem verschachtelte Vorgabe bzgl. der Berechtigungen auf dem Fileserver. (Windows Server 2016)
-Hauptordner (Zugriff Team A, Team B, Team C)
-Unterordner 1 (Zugriff Team A, Team B, Team D)
Dat geiht so nich. Wenn TeamD keine mindestens lesenden Zugriff auf den Hauptordner hat, dann hat es auch keinen auf den Unterordner.
Was benutzt ihr dazu oder geht ihr einen ganz anderen Weg um Zugriffsberechtigungen zu verwalten und zu vergeben?
AGDPL ist der Weg, sowas zu lösen. Eine globale Gruppe für jedes Team, die bei Bedarf weiter veschachtelt werden. Dann eine lokale Gruppe pro Ressource für den lesenden und eine für den schreibenden Zugriff. Die globalen kommen dann in die lokalen und alles ist gut.
Zitat von @Xaero1982:
Das war nur ein Beispiel erikro und nicht die Realität. Wollte nur deutlich machen, dass es extrem verschachtelt ist
Das war nur ein Beispiel erikro und nicht die Realität. Wollte nur deutlich machen, dass es extrem verschachtelt ist
Chefs kommen manchmal auf solche Ideen.
Klingt interessant dein Ansatz - muss ich mir mal durchdenken.
Das ist zu viel der Ehre. Das ist der Ansatz von Microsoft. Google einfach mal nach der Abkürzung und Du wirst eine Menge finden, wie man solche komplexen Strukturen auf einfache und überschaubare mit Hilfe dieser Technik herunterbricht.
Moin,
Gruß,
Dani
AGDPL ist der Weg, sowas zu lösen. Eine globale Gruppe für jedes Team, die bei Bedarf weiter veschachtelt werden. Dann eine lokale Gruppe pro Ressource für den lesenden und eine für den schreibenden Zugriff. Die globalen kommen dann in die lokalen und alles ist gut.
da bin ich voll und ganz bei Kollege @eriko. Somit kannst du über das Active Directory bequem die Benutzer in die jeweiligen Gruppe aufnehmen. An den NTFS-Berechtigungen ändert sich aus der Praxis nachträglich ab und zu etwas aber nicht täglich oder wöchentlich. Hängt natürlich von der Größe des Unternehmens ab.Gruß,
Dani
Moin,
Vor allem ist das Schöne, dass die Änderungen immer nur die lokalen Gruppen bzw. die Mitgliedschaft der globalen Gruppen in den lokalen oder anderen globalen betrifft. Man kann keinen User mehr vergessen oder gar einen zu viel berechtigen. Die bleiben in ihrer globalen Gruppe. Entweder stimmt es für alle oder für keinen.
Liebe Grüße
Erik
Zitat von @Dani:
Moin,
Moin,
AGDPL ist der Weg, sowas zu lösen. Eine globale Gruppe für jedes Team, die bei Bedarf weiter veschachtelt werden. Dann eine lokale Gruppe pro Ressource für den lesenden und eine für den schreibenden Zugriff. Die globalen kommen dann in die lokalen und alles ist gut.
da bin ich voll und ganz bei Kollege @eriko. Somit kannst du über das Active Directory bequem die Benutzer in die jeweiligen Gruppe aufnehmen. An den NTFS-Berechtigungen ändert sich aus der Praxis nachträglich ab und zu etwas aber nicht täglich oder wöchentlich. Hängt natürlich von der Größe des Unternehmens ab.Vor allem ist das Schöne, dass die Änderungen immer nur die lokalen Gruppen bzw. die Mitgliedschaft der globalen Gruppen in den lokalen oder anderen globalen betrifft. Man kann keinen User mehr vergessen oder gar einen zu viel berechtigen. Die bleiben in ihrer globalen Gruppe. Entweder stimmt es für alle oder für keinen.
Liebe Grüße
Erik
Moin.
Ich nehm' da die Access Based Enumeration (ABE) zu Hilfe:
Auf den Root-Ordner und nur auf den haben Domain Users lesenden Zugriff, somit ist sichergestellt, dass das Laufwerksmapping/der Zugriff für wirklich jeden User funktioniert.
Auf den Unterordnern werden dann entsprechende NTFS-Rechte gesetzt, sodaß auch nur die Ordner sichtbar werden, auf die ein User tatsächlich zugreifen kann. Mittels Traverse Folder kann so auch der Zugriff auf Unterordner realisiert werden - wobei ich da vorsichtig wäre, Zugriff auf den siebzehnten Unterordner in einem Share und solche Konstrukte machen das ganze doch sehr unübersichtlich, daher muss es gut dokumentiert sein.
Cheers,
jsysde
Ich nehm' da die Access Based Enumeration (ABE) zu Hilfe:
Auf den Root-Ordner und nur auf den haben Domain Users lesenden Zugriff, somit ist sichergestellt, dass das Laufwerksmapping/der Zugriff für wirklich jeden User funktioniert.
Auf den Unterordnern werden dann entsprechende NTFS-Rechte gesetzt, sodaß auch nur die Ordner sichtbar werden, auf die ein User tatsächlich zugreifen kann. Mittels Traverse Folder kann so auch der Zugriff auf Unterordner realisiert werden - wobei ich da vorsichtig wäre, Zugriff auf den siebzehnten Unterordner in einem Share und solche Konstrukte machen das ganze doch sehr unübersichtlich, daher muss es gut dokumentiert sein.
Cheers,
jsysde
ein Kunde von mir hat eine extrem verschachtelte Vorgabe bzgl. der Berechtigungen auf dem Fileserver. (Windows Server 2016)
-Hauptordner (Zugriff Team A, Team B, Team C)
-Unterordner 1 (Zugriff Team A, Team B, Team D)
-Hauptordner (Zugriff Team A, Team B, Team C)
-Unterordner 1 (Zugriff Team A, Team B, Team D)
Dat geiht so nich. Wenn TeamD keine mindestens lesenden Zugriff auf den Hauptordner hat, dann hat es auch keinen auf den Unterordner.
Mittels List Recht von Team D auf den Hauptorder sollte das schon gehen.
Zitat von @Xaero1982:
Hat sich erledigt.
Die Nutzer aus Domäne B kommen ja auch in die Gruppe DL_A.
Aber wozu brauche ich dann Universale Gruppen oder brauche ich sie überhaupt?
Hat sich erledigt.
Die Nutzer aus Domäne B kommen ja auch in die Gruppe DL_A.
Aber wozu brauche ich dann Universale Gruppen oder brauche ich sie überhaupt?
Du brauchst dann universale Gruppen, wenn Du einen Forest hast und von einem Baum im anderen Baum Zugriffe erlauben willst. Das geht dann so:
Lokale Gruppe -> Rechte zuweisen
Globale Gruppe (gleiche Domain) -> aufnehmen in lokale Gruppe
Globale Gruppe (andere Domain) -> aufnehmen in universale Gruppe
universale Gruppe -> aufnehmen in lokale Gruppe
NIEMALS User in eine universale Gruppe aufnehmen. Das ist zwar theoretisch möglich, macht aber keinen Spaß, da jede Änderung an der universalen Gruppe über den gesamten Forest repliziert wird. Gerade in Umgebungen, in denen sich Zugriffsrechte häufig ändern, führt das zu unnötigem Traffic zwischen den Bäumen des Forest.
hth
Erik
Ohne groß auf die anderen Beiträge einzugehen, ich habe vor kurzem RBAC beim Kunden eingerichtet.
In diesem Video (ist zwar sehr alt, aber das Prinzip ist immer noch das gleiche) wird die Idee und die Umsetzung erklärt:
https://youtu.be/IKzokBgCp60
Lohnt sich auf jeden Fall anzuschauen, auch wenn es knapp eine Stunde geht.
Wenn ich es richtig verstehe, ist AGDLP analog dazu oder im Prinzip das selbe.
Für das Anlegen der Gruppen, habe ich mir ein kleines Skript geschrieben, nichts großartiges, aber einfacher als alle Gruppen per Hand anzulegen:
Aufruf ist dann z.B.:
Ich wollte das schon seit langem erweitern, dass der Ordner automatisch erstellt wird und die ACL Berechtigung gleich mit den Gruppen gesetzt wird. Kam leider noch nicht dazu.
Im Prinzip kriegt dann der jeweilige Ordner 6 Berechtigungseinträge:
Unterordner erben dann davon, wenn ein Unterordner eine weitere Unterteilung braucht, wird das ganze wiederholt und die Vererbung ausgeschaltet.
In diesem Video (ist zwar sehr alt, aber das Prinzip ist immer noch das gleiche) wird die Idee und die Umsetzung erklärt:
https://youtu.be/IKzokBgCp60
Lohnt sich auf jeden Fall anzuschauen, auch wenn es knapp eine Stunde geht.
Wenn ich es richtig verstehe, ist AGDLP analog dazu oder im Prinzip das selbe.
Für das Anlegen der Gruppen, habe ich mir ein kleines Skript geschrieben, nichts großartiges, aber einfacher als alle Gruppen per Hand anzulegen:
####################################################
#
# Title: CreateACL-Groups
# Author : Burak S
#
####################################################
param(
[Parameter(Mandatory=$True)][String[]]$FolderName,
[Parameter(Mandatory=$True)][String[]]$ServerName,
[Parameter(Mandatory=$False)][String[]]$SubFolderOf,
[Parameter(Mandatory=$False)][String]$OrganizationUnit="OU=ACL,OU=Gruppen,DC=contoso,DC=local"
)
$ServerNameUpper = $ServerName.ToUpper()
$ServerName = $ServerName.ToLower()
$Name = "ACL_$($ServerNameUpper)_$($FolderName)"
$Description = "\\$($ServerName)\$FolderName"
if($SubFolderOf) {
if( ($SubFolderOf.EndsWith("\")) ) {
$SubFolderOf = $SubFolderOf.substring(0,($($SubFolderOf).Length-1))
}
$Description = "\\$($ServerName)\$($SubFolderOf)\$($FolderName)"
}
New-ADGroup –Name "$($Name)_Read" -Description "$($Description) [Read Only]" –groupscope DomainLocal –path $OrganizationUnit
New-ADGroup –Name "$($Name)_Modify" -Description "$($Description) [Modify]" –groupscope DomainLocal –path $OrganizationUnit
New-ADGroup –Name "$($Name)_Full" -Description "$($Description) [FullControl]" –groupscope DomainLocal –path $OrganizationUnit
New-ADGroup –Name "$($Name)_List" -Description "$($Description) [List Only]" –groupscope DomainLocal –path $OrganizationUnit
Add-ADGroupMember -Identity "$($Name)_Full" -Members "Administrator"
Aufruf ist dann z.B.:
CreateACL-Groups.ps1 -FolderName "Vertrieb" -ServerName "FileServer01"
CreateACL-Groups.ps1 -FolderName "Unterordner-Vertrieb" -ServerName "FileServer01" -SubFolderOf "Vertrieb"
CreateACL-Groups.ps1 -FolderName "Vertrieb" -ServerName "FileServer01" -OrganizationUnit "OU=FileServer01,OU=ACL,OU=Gruppen,DC=contoso,DC=local"
Ich wollte das schon seit langem erweitern, dass der Ordner automatisch erstellt wird und die ACL Berechtigung gleich mit den Gruppen gesetzt wird. Kam leider noch nicht dazu.
Im Prinzip kriegt dann der jeweilige Ordner 6 Berechtigungseinträge:
- SYSTEM Full Control
- Administrator Full Control
- Group_Read Read-Only
- Group_Modify Modify-Only
- Group_Full Full Control
- Group_List List-Only, This Folder Only
Unterordner erben dann davon, wenn ein Unterordner eine weitere Unterteilung braucht, wird das ganze wiederholt und die Vererbung ausgeschaltet.