Zum Zugriff auf Dateien und Ordner über das Netzwerk bietet Windows schon seit der ersten Version von Windows NT vor mehr als zwanzig Jahren gleich zwei Berechtigungssysteme. Das eine arbeitet auf der Ebene des Dateisystems, die Datei- und Ordnerberechtigungen (oft auch als NTFS-Berechtigungen bezeichnet). Das andere setzt die Mechanismen des SMB-Protokolls ein und funktioniert nur beim Zugriff über das Netzwerk auf eine Freigabe, daher spricht man hier auch von Freigabeberechtigungen.
In der Praxis lässt sich immer wieder feststellen, dass diese Berechtigungssysteme durcheinander gehen und damit nicht optimal wirken. Daher stellt dieser Artikel einige Hintergründe und Empfehlungen dar.
Datei- und Ordnerberechtigungen
Das Dateisystem NTFS bietet ein sehr ausgefeiltes System von Zugriffsberechtigungen, das mit Berechtigungslisten arbeitet (Access Control List, ACL). Diese Listen bestehen aus einem oder mehreren Berechtigungseinträgen (Access Control Entry, ACE), die Windows in den Metadaten einer Datei oder eines Ordners speichert. Vereinfacht gesagt besteht ein solcher Eintrag aus einem Konto (Benutzer, Gruppe oder Computer) und der zugehörigen Berechtigung (z.B. Lesen oder Schreiben). Jede Berechtigung kann man erteilen (Grant) oder verweigern (Deny). Da Verweigern-Einträge als kritischer gelten, stehen sie in der ACL immer ganz am Anfang, die Erlauben-Einträge folgen dahinter. In den meisten Situationen ist das Verweigern damit “stärker” als das Erteilen einer Berechtigung.
Die Berechtigungsstufen in NTFS sind sehr fein aufgeteilt. Theoretisch lassen sich damit sehr spezielle Berechtigungen einrichten. Zudem verfügt die gesamte ACL eines Objekts über Eigenschaften der Vererbung: Die ganze ACL kann man auf untergeordnete Dateien oder Ordner vererben. Dadurch übernimmt etwa eine Datei die Berechtigungen des übergeordneten Ordners (soweit diese auf Dateien anwendbar sind). Für jede ACL (also jede einzelne Datei oder jeden einzelnen Ordner) kann man diese Vererbung übersteuern, indem man zusätzliche Einträge ergänzt. Man kann die Vererbung auch abschalten und damit “Berechtigungs-Inseln” erzeugen.
Erweiterte Berechtigungssteuerung, hier unter Windows 10.
Es ist meistens allerdings nicht empfehlenswert, die Möglichkeiten der Berechtigungsvergabe auszureizen. Viele Kombinationen der Einzelrechte ergeben nur theoretisch ein sinnvolles Konstrukt, in der Praxis scheitern solche Ansätze aber oft. Das liegt daran, dass die Applikationen, mit denen man solche Dateien verarbeitet, auch mit den Berechtigungen umgehen können müssen. Das aber muss der Entwickler des Programms schon in dem Moment ermöglichen, in dem er den Programmcode schreibt. Exotische Rechtebündel führen daher schnell zu Fehlern in der Anwendung.
Sinnvoll ist es daher, immer oder möglichst weitgehend mit Standard-Berechtigungen zu arbeiten, wie sie Windows im “ersten” Berechtigungsfenster anzeigt. In den meisten Situationen reichen diese Berechtigungsstufen völlig aus.
Standard-Berechtigungen für Ordner.
Freigabeberechtigungen
Sobald ein Ordner für den Zugriff über das Netzwerk freigegeben ist, kommt eine zweite Berechtigungsebene hinzu. Diese wirkt nur beim Zugriff über das Netzwerk und über die betreffende Freigabe. Auf dieser Ebene sind die Berechtigungen wesentlich weniger abgestuft: Nur Vollzugriff, Ändern und Lesen stehen zur Verfügung.
Freigabeberechtigungen im Moment der Freigabe eines Ordners.
Es ist wichtig zu wissen, dass diese Freigabeberechtigungen stets für die gesamte Freigabe und alle ihre Inhalte gelten, aber nur wenn der Zugriff auch über diese Freigabe erfolgt. Gibt man etwa den Ordner C:\Daten als “Daten” frei und legt dort Berechtigungen fest, dann wirken diese für alle Anwender, die auf die Freigabe “Daten” zugreifen. Richtet man nun für C:\Daten\Projekt eine weitere Freigabe namens “Projekt” an und setzt dort andere Berechtigungen, so wirken die Berechtigungen für “Daten” nicht für Anwender, die direkt auf die Freigabe “Projekt” zugreifen.
NTFS- und Freigabeberechtigungen kombinieren
Sobald man also einen Ordner freigibt, gelten zwei Berechtigungsebenen: Die NTFS- und die Freigabeberechtigungen. Diese wirken tatsächlich parallel, keine von beiden Ebenen ist wirkungslos.
Das hat Folgen: Setzt man die Berechtigungen auf beiden Ebenen unterschiedlich, so lässt sich nicht immer auf Anhieb sagen, welcher Zugriff für einen Anwender denn nun tatsächlich möglich ist. Natürlich kann man das herausfinden, aber unter Umständen ist das nicht ganz einfach.
Hier kommt ein wichtiges Prinzip ins Spiel: Wenn Freigabe- und NTFS-Berechtigungen gleichzeitig wirken, dann gilt immer die stärkere Einschränkung – egal, ob diese in der Freigabe oder in NTFS definiert ist. Um herauszufinden, welches die stärkere Einschränkung ist, betrachtet man zunächst beide Ebenen separat. Dann vergleicht man das Ergebnis beider Ebenen.
Hier ein paar Beispiele. Wir gehen davon aus, dass der Ordner C:\Daten als “Daten” freigegeben ist. Ein Benutzer greift über die Freigabe auf den Ordner zu.
Freigabe “Daten” | NTFS “C:\Daten” | Effektiv |
Lesen | Vollzugriff | Lesen |
Vollzugriff | Lesen | Lesen |
Ändern | Vollzugriff | Ändern (Schreiben und Lesen – aber der Benutzer kann selbst die Berechtigungen nicht bearbeiten) |
Vollzugriff | Lesen und Schreiben | Lesen und Schreiben (keine erweiterten Rechte, etwa Berechtigungen bearbeiten) |
Vollzugriff | Lesen erlaubt, Schreiben verweigert | Lesen |
Das Gruppenkonzept
Für alle Berechtigungsebenen kommt ein weiteres Prinzip hinzu, nämlich das der Windows-Gruppen. Ein Benutzer kann in beliebig vielen Gruppen Mitglied sein. Jede dieser Gruppen kann Berechtigungen erhalten. Der Benutzer erhält dann die Kombination aller Einzelberechtigungen für jede dieser Gruppen – plus diejenigen, die seinem Konto direkt zugewiesen sind.
Auch hierzu ein Beispiel: Anke Fielmalz ist Mitglied der Gruppen Mitarbeiter, Vertrieb und Projekt21. Die folgende Liste zählt die Berechtigungen jedes Kontos für einen bestimmten Ordner auf.
- Anke: Lesen
- Mitarbeiter: keine Rechte definiert
- Vertrieb: Lesen und Schreiben
- Projekt21: Vollzugriff
Effektiv hat Anke also Vollzugriff auf den Ordner. Auch hier gilt wieder: Verweigern ist “stärker” – wenn also eine der Gruppen oder Anke selbst ein “Verweigern”-Recht hat, dann kann sie die zugehörige Aktion auf keinen Fall durchführen.
Weiteres zum Gruppenkonzept findet sich in folgendem Artikel:
[Windows-Gruppen richtig nutzen | faq-o-matic.net]
http://www.faq-o-matic.net/2011/03/07/windows-gruppen-richtig-nutzen/
Empfehlungen zur Berechtigungsvergabe
Schon aus dieser knappen Übersicht wird deutlich, dass man Berechtigungen in Windows nahezu beliebig komplex gestalten kann. Schnell tappt man dabei in verschiedene Fallen. Und ebenso schnell baut man Berechtigungen, die in der Praxis nicht funktionieren, weil die Applikationen, mit denen Anwender arbeiten, damit nicht klarkommen. Daher gelten folgende Empfehlungen.
- Keep it simple: Berechtigungen sollten möglichst einfach sein. Das bedeutet etwa:
- keine exotischen Kombinationen, sondern nur Standard-Berechtigungen
- keine zu starke Differenzierung durch Benutzer- und Gruppenberechtigungen für dasselbe Objekt
- Gruppen nutzen: Berechtigungen sollten nur an Gruppen und nicht direkt an Benutzerkonten vergeben werden. Auf diese Weise kann man einem neuen Benutzer schnell dieselben Zugriffsrechte geben wie einem anderen, indem man ihn in dieselben Gruppen aufnimmt. Damit ein Benutzer den Zugriff verliert, entfernt man ihn aus der betreffenden Gruppe.
- Freigabeberechtigungen weglassen: Oben haben wir das Prinzip erläutert, dass Freigabe- und NTFS-Berechtigungen parallel wirken und dass hier immer die stärkere Einschränkung gilt. Es ergibt also keinen Sinn, die NTFS-Berechtigungen in der Freigabe “nachzubauen”, wie viele Administratoren dies tun. Stattdessen sollte man in den Freigabeberechtigungen “Jeder: Vollzugriff” einstellen. Das wirkt zunächst vielleicht seltsam – doch aufgrund des Kombinationsprinzips ist damit sichergestellt, dass die NTFS-Berechtigungen immer zu 100 Prozent gelten. Der Vorteil: Es gibt nur noch eine Berechtigungs-Ebene, die man kontrollieren, verwalten und dokumentieren muss. Und: Das Gesamtkonstrukt ist wesentlich weniger komplex.
Ein weiterer Vorteil: Es ist relativ einfach, Ordner mitsamt ihrer Berechtigungen an einen anderen Ort zu verschieben oder zu kopieren (etwa mit Robocopy), auch auf einen anderen Server. Die Freigabeberechtigungen hingegen lassen sich nur mit recht hohem Aufwand übertragen. - Nur Ordnerberechtigungen: Zwar gestattet Windows, mit den NTFS-Berechtigungen auch Berechtigungen für einzelne Dateien zu vergeben. In der Praxis führt das aber schnell zu zahlreichen Problemen. Daher sollte man dies nicht nutzen und Berechtigungen ausschließlich auf Ordnerebene setzen. Eine passende Ordnerstruktur hilft hier mehr als ein zu stark differenziertes Berechtigungskonzept.
- Vererbung nutzen: Die Vererbung von Berechtigungen erleichtert es in vielen Situationen, eine sinnvolle Zugriffsstruktur zu schaffen. Ein simples Prinzip könnte etwa allen Mitgliedern einer Gruppe Leserechte auf einen übergeordneten Ordner erteilen und dann einzelnen Untergruppen zusätzliche Schreibrechte auf bestimmte Unterordner gewähren.
- Das Windows-Gruppenkonzept nutzen: Oben haben wir auf einen Artikel zum Windows-Gruppenkonzept verwiesen. Das dort beschriebene Prinzip erfordert durchaus einiges an Planung. Es hilft aber, strukturiert vorzugehen und den Überblick zu wahren. Sobald die Umgebung eine gewisse Größe übersteigt, ist dieses Prinzip daher sehr zu empfehlen.
Die eine Ausnahme: Benutzer sollen keine Berechtigungen ändern
Oben haben wir empfohlen, dass die Freigabeberechtigungen immer auf “Jeder: Vollzugriff” stehen sollten. Dadurch ist gewährleistet, dass die NTFS-Berechtigungen für Ordner (und Dateien) immer “eins zu eins” gelten.
In manchen Fällen sollen Anwender allerdings selbst nicht in die Berechtigungen eingreifen dürfen. Das ist auf der Ebene der NTFS-Berechtigungen unter Umständen nur schwierig (oder auch gar nicht) zu erreichen. Sobald nämlich ein Benutzer eine neue Datei anlegt, ist er Besitzer dieser Datei. Und der Besitzer hat immer volle Verfügungsgewalt über die Datei, darf also auch deren Berechtigungen ändern. So kann er etwa die Administratoren vom Zugriff aussperren – das ist zwar nicht dauerhaft wirksam (denn die Administratoren kann man in Windows nicht effektiv am Zugriff hindern), aber es führt zu unerwünschten Problemen, etwa bei der Datensicherung.
Eine Variante der Empfehlung “Nur Vollzugriff auf Freigabeebene” lautet daher: Administratoren des Dateiservers erhalten auf der Freigabe Vollzugriff. Die Gruppe “Benutzer” (oder “Authentifizierte Benutzer”) erhält auf der Freigabe nur “Ändern”-Berechtigung. Dadurch können die Benutzer alles tun, was man “üblicherweise” mit Dateien macht: Lesen, Schreiben, Erzeugen, Löschen – vorausgesetzt, die NTFS-Berechtigungen lassen dies zu. Sie können aber auf keinen Fall Berechtigungen ändern, auch dann nicht, wenn sie Besitzer einer Datei sind. Dies ist nämlich mit dem “Ändern”-Recht einer Freigabe nicht erlaubt.
Vorsicht aber: Auch diese Ausnahme sollte man nur da einsetzen, wo wirklich Bedarf besteht. Jede Ausnahme erhöht die Komplexität und erschwert die Fehlersuche.
http://faq-o-matic.net/?p=7144