Frage Festlegen von NTFS-Berechtigungen für die gemeinsame Nutzung von Stammumbrüchen


Ich habe ein Problem mit Windows 2012 R2, bei dem das Setzen von NTFS-Berechtigungen für das Stammverzeichnis einer Freigabe die Vererbung unterbricht und die NTFS-Berechtigungen effektiv durch den neuen ACE ersetzt werden. Die einzige Möglichkeit, dies zu veranschaulichen, besteht darin, zu zeigen, wie ich dieses Problem reproduziert habe.

Lassen Sie uns zuerst die Aktie aus der Gleichung herausnehmen - wo alles gut funktioniert.

Ich habe einen Ordner unter C: \ namens Data erstellt. Wenn ich die aktuelle ACL erhalte, sieht alles korrekt aus.

C:\>icacls c:\data
c:\data NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
    BUILTIN\Administrators:(I)(OI)(CI)(F)
    BUILTIN\Users:(I)(OI)(CI)(RX)
    BUILTIN\Users:(I)(CI)(AD)
    BUILTIN\Users:(I)(CI)(WD)
    CREATOR OWNER:(I)(OI)(CI)(IO)(F)

Jetzt werde ich einen ACE hinzufügen - einen sehr einfachen.

C:\>icacls c:\data /grant everyone:(RX)
processed file: c:\data
Successfully processed 1 files; Failed processing 0 files

Ich kann überprüfen, ob dies funktioniert hat, indem ich den ersten Befehl erneut ausgeführt habe.

C:\>icacls c:\data
c:\data Everyone:(RX)
        NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
        BUILTIN\Administrators:(I)(OI)(CI)(F)
        BUILTIN\Users:(I)(OI)(CI)(RX)
        BUILTIN\Users:(I)(CI)(AD)
        BUILTIN\Users:(I)(CI)(WD)
        CREATOR OWNER:(I)(OI)(CI)(IO)(F)

Kein Problem bis jetzt. Ich habe jetzt den ACE entfernt und das C: \ Data-Laufwerk mit dem folgenden Befehl als Daten freigegeben:

Net share Data=C:\Data /grant:Everyone,full

Wenn ich die ACL dieser Freigabe überprüfe, kann ich sehen, dass sie mit C: \ Data übereinstimmt - wie sie sein sollten.

C:\>hostname
mgmt57

C:\>icacls \\mgmt57\data
\\mgmt57\data NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
              BUILTIN\Administrators:(I)(OI)(CI)(F)
              BUILTIN\Users:(I)(OI)(CI)(RX)
              BUILTIN\Users:(I)(CI)(AD)
              BUILTIN\Users:(I)(CI)(WD)
              CREATOR OWNER:(I)(OI)(CI)(IO)(F)

Auch hier füge ich den gleichen ACE wie der erste hinzu, aber dieses Mal zur Freigabe.

C:\>icacls \\mgmt57\data /grant everyone:(RX)
processed file: \\mgmt57\data
Successfully processed 1 files; Failed processing 0 files

Sie sehen jetzt das Problem, wenn ich die ACL verifiziere.

C:\>icacls \\mgmt57\data
\\mgmt57\data Everyone:(RX)

Successfully processed 1 files; Failed processing 0 files

Das gleiche Problem ist auf der lokalen Festplatte offensichtlich.

C:\>icacls c:\data
c:\data Everyone:(RX)

Successfully processed 1 files; Failed processing 0 files

Die einzige Möglichkeit, diese ACL zu korrigieren, besteht darin, das markierte Feld unten zu aktivieren.

Advanced Security Settings for data

Nun, die Frage ist - wie kann ich ICACLS auf dem Stamm einer Freigabe verwenden, ohne dass die ACL beschädigt wird, wie ich hier dargestellt habe?

Das kann ich bestätigen:

  • Es ist kein Problem mit einem Server - ich habe dieses Problem auf vielen reproduziert.
  • Es ist ein Problem mit Datacenter und Standard Edition - aber ich habe kein anderes Betriebssystem als Windows 2012 R2 ausprobiert.
  • Die Server sind mit Patches voll up-to-date
  • Das Problem tritt nicht auf, wenn ich ACE zu einem Unterordner unter root hinzufüge (zum Beispiel, wenn ich ACL eines Ordners \\ server \ share \ setze), was bedeutet, dass meine aktuelle Problemumgehung darin besteht, die ACLs auf \\ server \ c $ zu setzen \Daten. Hinweis: diese Problemumgehung erfordert, dass Sie Administrator des fraglichen Servers sind, weshalb es keine Lösung ist. In meinem Anwendungsfall sind die Personen, die die Berechtigungen festlegen, keine Administratoren, haben aber ausreichende Berechtigungen über NTFS, um neue ACEs hinzuzufügen
  • Die Freigabeberechtigungen sind für das Problem nicht relevant
  • Die in meinem obigen Beispiel verwendeten NTFS-Berechtigungen sind ebenfalls nicht relevant - das Problem tritt bei jeder NTFS-Berechtigung auf, die dem Stamm der Freigabe hinzugefügt wurde.
  • Die Verwendung einer anderen Methode als ICACLS (z. B. Powershell und Set-ACL) führt zu demselben Ergebnis
  • Nur die Vererbung ist unterbrochen - andere Berechtigungen, die dem Stammordner zugewiesen wurden, bleiben erhalten. Wenn ich zum Beispiel zwei Berechtigungen hinzufüge, sehe ich beide, und alle geerbten Berechtigungen werden verschwinden.
  • Das Problem ist nicht nur kosmetischer Natur - wenn ich eine Gruppe, der ich kein Mitglied bin, zum Freigabe-Stamm hinzufüge und dann versuche, Windows Explorer zu verwenden, um das lokale Equivalent zu durchsuchen, erhalte ich den folgenden Fehler:

You don't currently have permission to access this folder

Entschuldigung für solch eine langwierige Frage, aber ich wollte zeigen, dass ich mich sehr bemüht habe, dieses Problem zu isolieren. Es ist mir nicht gelungen, andere mit demselben Problem zu finden.


0
2017-12-12 20:20


Ursprung




Antworten:


Das ist Absicht. Wenn Sie versuchen, die Berechtigung mithilfe von Windows Explorer festzulegen, wird die folgende Meldung angezeigt:

Windows Security

Problemumgehungen sind Ihre einzige Lösung.


0
2017-12-12 20:27