Ziel: Ein freigegebener Ordner, in dem Benutzer Dateien erstellen, aber nicht ändern oder löschen können. Benutzer sollten auch in der Lage sein, Unterordner zu erstellen.
Ich habe meiner Sicherheitsgruppe die folgenden erweiterten NTFS-Berechtigungen erteilt:
- Ordner durchlaufen / Datei ausführen
- Ordner auflisten / Daten lesen
- Attribute lesen
- Erweiterte Attribute lesen
- Dateien erstellen / Daten schreiben
- Berechtigungen lesen
Durch einen Versuch und Irrtum habe ich festgestellt, dass durch das NICHT- Gewähren von 'Schreibattributen' verhindert wird, dass ein Benutzer vorhandene Dateien ändert / löscht (was ich möchte). Ich hätte jedoch gerne eine Erklärung, warum dies genau funktioniert. Die einzige Theorie, die ich habe, ist, dass das Löschen / Ändern einer Datei die Attribute der Datei ändert? Hier ist eine Diskussion in die gleiche Richtung .
BEARBEITEN - Der zweite Teil meiner Frage ist irrelevant. Ich dachte, ich hätte nur "Dateien erstellen / Daten schreiben" ausgewählt, aber ich habe auch "Ordner erstellen / Daten anhängen" ausgewählt.
Darüber hinaus möchte ich, dass Benutzer Unterordner im Stammverzeichnis erstellen können, und ich habe festgestellt, dass durch die Gewährung von "Dateien erstellen / Daten schreiben" genau dies möglich ist. Aber auch hier schlägt der Name vor, dass diese Berechtigung nur das Erstellen von Dateien und nicht von Ordnern ermöglichen sollte. Ich verstehe also nicht, warum es funktioniert. Die Microsoft-Erklärung des Attributs " Dateien erstellen / Daten schreiben" lautet " Gibt für Ordner an, ob ein Benutzer Dateien innerhalb des Ordners erstellen kann. Gibt für Dateien an, ob ein Benutzer Dateien ändern oder Daten überschreiben kann." Es gibt keine Erwähnung der Möglichkeit, Unterordner innerhalb eines Ordners zu erstellen?
Im Grunde habe ich erreicht, was ich mir vorgenommen habe, verstehe aber nicht, warum es funktioniert?
quelle
Antworten:
Dies hängt davon ab, wie genau eine Dateimodifikation erfolgt. Wenn Sie eine Datei ändern, ändert das Betriebssystem die zu bearbeitende Datei nicht. Es ersetzt die Datei, die Sie bearbeiten, durch die Kopie, die Sie geändert haben. Im Wesentlichen nimmt eine Dateimodifikation eine Kopie der Originaldatei, lädt sie in den Speicher (wo Sie sie ändern), löscht die Originaldatei und erstellt eine neue Datei mit demselben Namen an derselben Stelle. Aus diesem Grund sind NTFS-
Delete
Berechtigungen erforderlich, um Dateien zu ändern. Wenn Sie dasAdvanced permissions
NTFS-Objekt überprüfen , gibt es keineModify
Berechtigung. Eine Änderung ist eigentlich nur ein Löschen und Schreiben.Um diese neue Kopie einer Datei zu erstellen, müssen die Dateiattribute dieser neuen Datei geschrieben werden. Für das Schreiben von Attributen ist natürlich die
Write attributes
NTFS-Berechtigung erforderlich . Aus diesem Grund können Sie eine Datei nicht ohne dieWrite attributes
NTFS-Berechtigung ändern .Insbesondere dank einem Chat mit Fitzroy , das Attribut NTFS - Datei dass Bedürfnisse geschrieben werden unter dem Sicherheitskontext des Benutzers (das kann nicht sein, ohne die
Write Attributes
Erlaubnis), wenn Sie eine Datei ändern, aber nicht , wenn ein völlig neues zu erstellen, würde sei die DateiLastModificationTime
. Dies istStandard Information
laut einem der Microsoft Core Team-Entwickler ein Teil des Attributs .quelle
Es ist wahr: Wenn der Benutzer nicht über die Berechtigung "Attribute schreiben" verfügt, kann er seine Dateien nicht ändern. Und laut Microsoft-Dokumentation macht es keinen Sinn. Das Ändern einer Datei bedeutet jedoch nicht, dass sie gelöscht und neu erstellt wird. Wenn eine Anwendung eine Datei zur Änderung öffnet, löscht das Betriebssystem die Datei nicht. Das Betriebssystem sperrt jedoch die Datei, um gleichzeitige Änderungen zu verhindern. Ich vermute, dass das Sperren der Datei unter das Konzept "Ändern der Dateiattribute" fällt. Wenn Attribute nicht geändert werden können, kann die Datei daher nicht geändert werden.
Für den zweiten Teil Ihrer Frage kann ich das nicht reproduzieren. Es gibt zwei verschiedene Berechtigungen, die für einen Ordner gelten: "Dateien erstellen / ..." und "Ordner erstellen / ...". Sie haben während meiner Tests gemäß der Dokumentation funktioniert.
quelle