NTFS-Berechtigungen - Erstellen Sie Dateien und Ordner, verhindern Sie jedoch das Löschen und Ändern

10

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?

Fitzroy
quelle
Der Inhalt einer NTFS-Datei ist ein "Attribut". nämlich das standardmäßige unbenannte Datenattribut und möglicherweise ein oder mehrere benannte Datenattribute.
Kreemoweet
Siehe auch die gute Antwort hier: superuser.com/a/1145363/132727
CrazyTim

Antworten:

7

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.

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- DeleteBerechtigungen erforderlich, um Dateien zu ändern. Wenn Sie das Advanced permissionsNTFS-Objekt überprüfen , gibt es keine ModifyBerechtigung. 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 attributesNTFS-Berechtigung erforderlich . Aus diesem Grund können Sie eine Datei nicht ohne die Write attributesNTFS-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 AttributesErlaubnis), wenn Sie eine Datei ändern, aber nicht , wenn ein völlig neues zu erstellen, würde sei die Datei LastModificationTime. Dies ist Standard Informationlaut einem der Microsoft Core Team-Entwickler ein Teil des Attributs .

HopelessN00b
quelle
1
"Aus diesem Grund sind NTFS-Löschberechtigungen erforderlich, um Dateien zu ändern. Wenn Sie die erweiterten Berechtigungen für ein NTFS-Objekt überprüfen, gibt es keine Änderungsberechtigung. Eine Änderung ist eigentlich nur ein Löschen und Schreiben." Können Sie das mit Fakten oder Referenzen belegen? Weil ich durch weitere Tests festgestellt habe, dass ich zum Ändern des Inhalts einer einfachen Textdatei (mithilfe des Notizblocks) die folgenden Berechtigungen hinzugefügt habe: Attribute schreiben, Erweiterte Attribute schreiben und Ordner erstellen / Daten anhängen. Ich akzeptiere, dass verschiedene Programme beim Ändern einer Datei ein unterschiedliches Verhalten aufweisen können ...
Fitzroy
... ich denke jedoch, dass dieser Test beweist, dass 'Löschen' nicht erforderlich ist.
Fitzroy
"Dies hängt genau davon ab, wie eine Dateimodifikation erfolgt. Wenn Sie eine Datei ändern, ändert das Betriebssystem die zu bearbeitende Datei nicht. Sie ersetzt die zu bearbeitende Datei durch die von Ihnen geänderte Kopie. 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. " - ist ähm, ziemlich irreführend und auf vielen verschiedenen technischen Ebenen grob ungenau .
user2864740
3

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.

drk.com.ar
quelle
Drk - Verdauen Sie einfach Ihre Antwort. Zu Ihrer Information - Ich habe in meiner Frage eine Berechtigung ausgelassen. Ich hätte auch "Erweiterte Attribute lesen" auflisten sollen. Ohne diese Erlaubnis habe ich festgestellt, dass Benutzer den Inhalt einer Datei nicht anzeigen können (sie erhalten den Fehler "Zugriff verweigert"). Ich habe meine Frage entsprechend aktualisiert.
Fitzroy
Ok, für meinen Test habe ich angenommen, dass Sie auch diese Erlaubnis erteilt haben. Ich habe festgestellt, dass der Editor eine Datei nicht ändern kann, selbst wenn die Berechtigung "... / Daten schreiben" erteilt wurde. Folgendes ist noch zu beachten: Das Schreiben von Daten im Vergleich zum Anhängen von Daten hängt davon ab, wie Ihre Anwendung die Datei zur Änderung öffnet. Höchstwahrscheinlich öffnen Notizblöcke Dateien zum Anhängen von Daten immer, auch wenn sie nicht benötigt werden.
drk.com.ar
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. Sie haben völlig Recht, mein Fehler. Ich dachte, ich hätte nur "Dateien erstellen / Daten schreiben" ausgewählt, aber ich habe auch "Ordner erstellen / Daten anhängen" ausgewählt.
Fitzroy