Ich habe ein über CIFS von einem Windows 7-„Server“ freigegebenes Verzeichnis. Keine Domäne: nur eine einfache Arbeitsgruppe.
Meine Clients greifen über LAN über „Standardbenutzer“-Konten (kein „Administrator“) auf dem Server auf dieses Verzeichnis zu. Sie verwenden diese Freigabe für „persönlichen Speicher“, sodass sie für alles darin die volle Rechte zum Erstellen/Bearbeiten/Löschen benötigen.
Das Problem ist: Ich erstelle dort serverseitig ein Verzeichnis.Dieses einzelne Element sollte in keiner Weise editierbar, sondern nur lesbar/durchsuchbar/auflistbar sein(Konzentrieren wir uns auf das Verzeichnis selbst, nicht auf die darin enthaltene Datei (manchmal gibt es keine)).
Ich arbeite mit NTFS-Berechtigungen: Ich habe die Vererbung aus dem Verzeichnis entfernt, das nicht gelöscht werden darf, damit ich an seinen Berechtigungen arbeiten kann.
Ich habe das Client-Konto entfernt und zu diesem Zeitpunkt sind nur SYSTEM, Administratoren und ich mit ihren Berechtigungen vorhanden. Zu diesem Zeitpunkt können Clients den Ordner weder löschen noch öffnen.
Wenn ich eine Regel zum Verweigern der „Vollzugriff“-Regel hinzufüge, ändert sich (wie erwartet) nichts.
AberWenn ich diese Regel ändere und nur „Ordner auflisten/Daten lesen“ zulasse und alle anderen auf „Verweigern“ belasse, kann der Benutzer den Ordner löschen!?!?!?
wie ist das möglich? was verstehe ich falsch?
Hinweis: Ich habe es mit einer einzelnen Datei, nicht mit einem Verzeichnis, noch einmal geprüft: dasselbe Problem!
Dies ist die Icacls-Ausgabe:
DARF NICHT GELÖSCHT WERDEN: NT AUTHORITY\SYSTEM:(OI)(CI)(F) muletto\Zane:(OI)(CI)(F) BUILTIN\Administrators:(OI)(CI)(F) muletto\myNetworkUser:(OI)(CI)(RX)
1 Datei erfolgreich verarbeitet; 0 Dateien konnten nicht verarbeitet werden
Antwort1
OK. Ich kann bestätigen, dass ein Benutzer eine Datei löschen (oder ein leeres Verzeichnis entfernen) kann, ohne Schreibzugriff auf diese Datei/dieses Verzeichnis zu haben, wenn er über die Berechtigung zum Löschen untergeordneter Verzeichnisse für das übergeordnete Verzeichnis verfügt. Wenn ich das vorher schon wusste, hatte ich es vergessen, aber es ist ein dokumentiertes Verhalten, siehe z. B.KB101651.
Es gibt (mindestens) drei Möglichkeiten, Ihr Problem zu lösen:
Geben Sie den Benutzern Änderungszugriff statt Vollzugriff auf das übergeordnete Verzeichnis. Die einzigen Unterschiede zwischen Vollzugriff und Änderung sind das Recht „Untergeordnetes Objekt löschen“ (das dem Benutzer erlaubt, untergeordnete Objekte zu löschen) und das Recht „DAC schreiben“ (das dem Benutzer erlaubt, die Berechtigungen für das Objekt zu ändern, auch wenn er nicht der Eigentümer ist).
Legen Sie die Berechtigungen für die Freigabe auf „Ändern“ statt auf „Vollständig“ fest. Dies sollte den gleichen Effekt haben, betrifft aber nur Netzwerkbenutzer, nicht interaktive Benutzer. Ein Nebeneffekt ist, dass die Benutzer die Berechtigungen nicht ändern können, nicht einmal für ihre eigenen Dateien.
Setzen Sie das Nur-Lese-Flag für die untergeordnete Datei/das untergeordnete Verzeichnis. Die Dokumentation ist in diesem Punkt unklar, aber meine Tests (Windows 7) zeigen, dass Sie mit Delete Child keine Dateien löschen oder Verzeichnisse entfernen können, deren Nur-Lese-Flag gesetzt ist. Sie können das Nur-Lese-Flag auch nicht zurücksetzen. Beachten Sie, dass die Explorer-GUI impliziert, dass das Nur-Lese-Flag keine Auswirkung auf Verzeichnisse hat; tatsächlich verhindert es, dass das Verzeichnis entfernt wird. (Es verhindert nicht, dass neue Dateien in das Verzeichnis geschrieben werden.) Nachtrag:Das schreibgeschützte Flag verhindert nicht, dass ein Verzeichnis verschoben wird.
Weitere Hinweise:
Sie können die Berechtigung „Untergeordnetes Verzeichnis löschen“ für das übergeordnete Verzeichnis ausdrücklich verweigern. Wenn der Benutzer jedoch über die Vollzugriffsberechtigung für das übergeordnete Verzeichnis verfügt, kann er den verweigerten Eintrag entfernen.
Wenn Benutzer über das Recht „Untergeordnetes Verzeichnis löschen“ für das übergeordnete Verzeichnis verfügen, können sie keine Dateien aus dem untergeordneten Verzeichnis löschen oder das untergeordnete Verzeichnis entfernen, es sei denn, es ist leer. Nachtrag:Benutzer können das untergeordnete Verzeichnis verschieben.