Zugriff auf ein Unterverzeichnis gewähren, ohne Zugriff auf übergeordnete Verzeichnisse zu gewähren

Ich habe ein Szenario mit einem Windows-Dateiserver, in dem der "Eigentümer" einer Gruppe von Benutzern der folgenden Art Berechtigungen entziehen möchte:

  • \\server\dir1\dir2\dir3: Lesen, schreiben und ausführen
  • \\server\dir1\dir2: keine Berechtigungen
  • \\server\dir1: keine Berechtigungen
  • \\server: Lesen und ausführen

Nach meinem Verständnis (Update: Dieser gesamte Absatz ist falsch!dies ist jedoch nicht möglich, da Read & Execute permission sein muss gewährt allen übergeordneten Verzeichnissen in einer Verzeichniskette, damit das Betriebssystem die untergeordneten Verzeichnisse "sehen" und zu ihnen gelangen kann. Ohne diese Berechtigung können Sie nicht einmal das Sicherheitskontext-Token erhalten, wenn Sie versuchen, auf das verschachtelte Verzeichnis zuzugreifen, selbst wenn Sie vollen Zugriff auf das Unterverzeichnis haben.

Wir suchen nach Möglichkeiten, dies zu umgehen, ohne die Daten von \\server\dir1\dir2\dir3 nach \\server\dir4 zu verschieben.

Eine Problemumgehung, an die ich gedacht habe, die ich aber nicht bin sicher, wenn es funktionieren wird, wird eine Art Link oder Junction \\server\dir4 erstellt, die auf \\server\dir1\dir2\dir3 verweist. Ich bin mir nicht sicher, welche der verfügbaren Optionen (falls vorhanden) für diesen Zweck funktionieren würde, wenn der Benutzer keine Berechtigung Read & Execute für \\server\dir1\dir2 oder \\server\dir1, aber soweit ich weiß, sind die Optionen diese:

    [[19]}NTFS Symbolischer Link,
  • Kreuzung
  • Harter Link.

Also die Fragen:

  • Ist eine dieser Methoden geeignet, um meine ziel?
  • Gibt es andere Methoden zum Verknüpfen oder indirekten Verweisen auf ein Verzeichnis, die ich oben nicht aufgeführt habe, die geeignet sein könnten?
  • Gibt es direkte Lösungen, die nicht die Gewährung von Read & Execute an \\server\dir1 oder \\server\dir2 beinhalten, aber dennoch den Zugriff auf \\server\dir1\dir2\dir3 zulassen?
Author: bluish, 2012-12-17

4 answers

Sie irren sich in Ihrer ursprünglichen Annahme, die den Rest Ihrer Frage strittig macht.

Die minimale Berechtigung, die ein Benutzer für dir1 und dir2 benötigt, ist Traverse Directory. Dies wird höchstwahrscheinlich für Ihre Benutzer problematisch sein, obwohl - so würde ich empfehlen Traverse Directory und List Folders. Sie können durch die ersten beiden Verzeichnisse navigieren und zu dir3 gelangen, wo sie mehr Berechtigungen haben, aber nicht einmal sehen, welche Dateien in den ersten beiden vorhanden sind Directory.

Berechtigungen wie Read & Execute und Modify sind nur Sammlungen einzelner Berechtigungen. Sie sind das erste, was Sie sehen, weil sie am häufigsten verwendet werden. Wenn Sie sehr detailliert werden müssen (wie in dieser Situation), klicken Sie auf die Schaltfläche Advanced und gehen Sie in die dort aufgeführten Optionen.

 17
Author: MDMarra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-12-17 17:05:23

Wenn die Person den vollständigen Pfad zu einem Unterordner hat, für den sie mindestens R-Berechtigungen hat, benötigen sie erstaunlicherweise KEINE Berechtigungen für einen der übergeordneten Ordner, nicht einmal Traverse. Sie können einfach mit dem UNC darauf zugreifen. (Sie müssen natürlich Leseberechtigungen für die Freigabe haben; nur nicht für Ordner über der Ebene, auf die sie zugreifen möchten.)

Ich habe das nicht geglaubt, als mir gesagt wurde, aber das Testen beweist es.

Dies steht im Widerspruch zu dem, von dem ich dachte, ich wüsste es. in der Windows-Welt, und ich vermute, wird eine Überraschung für viele sein.

\server\folder1\folder2\folder3

Wenn es für Bilbo überhaupt keine Berechtigungen für folder1 und folder2 gibt, Bilbo jedoch (z. B.) für folder3 geändert hat, führt ihn \server\folder1\folder2\folder3 dorthin, kein Problem.

 12
Author: embeetee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-03-04 00:03:32

Eine ähnliche Lösung wie MDMarra setzt NTFS-Berechtigungen wie folgt:

  1. dir1: Grant Ordnerinhalt auflisten (Ordner durchlaufen / Datei ausführen, Ordner auflisten/Daten lesen, Attribute lesen, erweiterte Attribute lesen, Berechtigungen lesen)
  2. ABER wählen Sie Dieser Ordner nur für Anwenden auf Dropdown
  3. dir2: Gewähren Sie Ordnerinhalt auflisten und gelten Sie nur für Dieser Ordner
  4. dir3: Gewünschtes Lesen/Schreiben gewähren berechtigungen und Gelten für Dieser Ordner, Unterordner und Dateien oder Unterordner und Dateien nur

Das Endergebnis ist, dass der Benutzer / die Gruppe jeden einzelnen übergeordneten Ordner lesen und einen Drilldown in den untergeordneten Ordner ausführen kann, ohne dass andere Ordner oder Dateien vorhanden sind.

 1
Author: DrewsWiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-11-15 15:41:38

Also habe ich dies in der folgenden Umgebung getestet, da ich eine endgültige, getestete Antwort auf die minimal erforderlichen Berechtigungen zum einfachen Durchlaufen von Ordnern über das Surfen (dh über den Windows-Datei-Explorer) erhalten wollte. Hier sind die Ergebnisse für diejenigen, die die Dinge fest sperren möchten.

Ich habe noch nicht in der Produktion getestet, um zu sehen, ob es irgendwelche seltsamen Nebenwirkungen gibt, wenn man die" Standard " gut getestete Traversal Rights Vorlage von

  • Traverse Ordner
  • Listenordner
  • Attribute lesen
  • Lesen Ext. Attribute
  • Leseberechtigungen

...was im Grunde nur normale " Lese - und Ausführungsberechtigungen "sind, die auf"Diesen Ordner" beschränkt sind. Das heißt, kleine Tests waren bisher völlig in Ordnung, da Benutzer einfach Dateien auf dem Server verschieben, kopieren und entfernen und Benutzer vollständig von den Serverkopien von Dokumenten abarbeiten, etc.


Umgebung:

  • Server: Windows 2008 R2 - Wenig bis keine Gruppenrichtlinie, nichts geändert in Bezug auf Benutzerrechte, konfiguriert als Domänencontroller, AD-integriertes DNS, sehr Standard - /Basis-Setup.
  • Kunde: Windows 7 SP1 - Saubere Installation in einer VM, zwischen allen Änderungen neu gestartet, um sicherzustellen, dass die Verbindung zum Server jedes Mal vollständig neu erstellt wurde.
  • Beide Installationen auf mindestens Ende 2017 gepatcht, also wahrscheinlich aktuell für alles, was mit Berechtigungen zu tun hat, die zu diesem Zeitpunkt in der Windows-Timeline sehr eingebacken sind.
  • Dies war der Zugriff auf einen freigegebenen Ordner, der als persistentes Netzlaufwerk (\server\share -> S:) in der VM gemountet wurde. Freigabeberechtigungen wurden für die Gruppe authentifizierter Benutzer gelesen+geändert, die den Testbenutzer und alle anderen Benutzer abdeckt, die irgendwann jemals Zugriff benötigen.
  • Nach jeder Änderung würde ich die VM neu starten, den Datei-Explorer öffnen und einfach die Freigabe normal durchsuchen auf einem Pfad wusste ich, dass der Testbenutzer diese Traversal-Rechte für vs hatte, die er nicht hatte.

Ergebnisse:

  • Erforderlich für Stammordner: ListFolder-ReadData + ReadAttributes (2x Berechtigungen)
  • Erforderlich für Unterordner: ListFolder-ReadData (1x Berechtigung)
  • Optional: TraverseFolder--ExecuteFile

    -> Diese optionale Berechtigung ist nur wichtig, wenn die Umgehungsdurchquerung des Benutzerrechts explizit nicht zulässig war auf standardmäßig in 99% der fälle. Anders ausgedrückt, das aktivierte Benutzerrecht" Bypass Traverse Checking " (in Gruppenrichtlinien verfügbar gemacht, nicht in NTFS-Datei - /Ordnerberechtigungen) vermeidet dieses Privileg vollständig und macht dieses Privileg standardmäßig überall aktiviert. Hinweis: Ich habe nicht getestet, ob eine explizite Verweigerung dieses Rechts wiederum verhindern würde, dass die Bypass-Traverse (Benutzerrecht) in diesem bestimmten Fall wirksam wird, aber möglicherweise).

Ergänzende Informationen: Das Benutzerrecht "Bypass Traverse Checking" ermöglicht es jemandem, passiv in einen Unterordner zu gelangen, auf den er direkt zugreifen kann (dh die Berechtigungen sind für diese Datei/diesen Ordner festgelegt, aber nicht unbedingt anderswo weiter oben im Dateipfad).

 0
Author: Rook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-02-20 01:45:23