Windows-Dateiberechtigungen und -attribute

15

Ich bin etwas verwirrt über das gesamte Windows-Dateisicherheitsschema. Ich habe einen Unix-Hintergrund, daher verstehe ich die Beziehung zwischen den Dateiberechtigungen / Sicherheitseinstellungen und den Attributen nicht vollständig. Insbesondere schreibgeschützt, die eine Datei haben kann.

Wenn ich mich beispielsweise als Administrator in meiner Box anmelde und über eine Datei verfüge, die den Administratoren die vollständige Kontrolle ermöglicht, aber über ein schreibgeschütztes Attribut verfügt, bedeutet dies, dass ich nicht in diese Datei schreiben kann? Gibt es eine Möglichkeit, außer das schreibgeschützte Attribut zu entfernen, mit dem ich in Dateien schreiben kann, über die ich angeblich die volle Kontrolle habe? Wenn nicht, was ist der Vorteil einer vollen Kontrolle, wenn Sie nicht wirklich die volle Kontrolle haben?

Prälisch
quelle
1
Fantastische Frage
Jim B
Windows-Dateiattribute sind analog zu Unix-
Chris S
Ich habe dies allgemeiner formuliert, da diese Prinzipien für alle modernen Windows-Versionen gelten, nicht nur für Server 2003.
MDMarra,
Es ist tatsächlich möglich, ab 2012 anders zu sein
Jim B

Antworten:

16

Dateiberechtigungen bestimmen, welchen Zugriff Sie auf eine Datei haben - so wie es sich anhört. Vollzugriff ermöglicht das Erstellen, Löschen, Anhängen, Ändern von Berechtigungen, Ändern von Attributen usw.

Dateien und Ordner können zusätzliche Attribute haben, ähnlich wie Dateien auf den meisten * nix-Dateisystemen. Als Beispiel kommt "Hidden" auf beiden Plattformen in den Sinn.

Unter Windows gehören zu den zusätzlichen Attributen System, Nur-Lesen, Archivieren, Verschlüsseln und Komprimieren. Wenn Sie Vollzugriff haben (oder Änderungen vornehmen), können Sie diese Attribute ändern. Wie Sie jedoch festgestellt haben, ist eine schreibgeschützte Datei auch für Personen mit Vollzugriff schreibgeschützt. Die vollständige Kontrolle gibt Ihnen die Möglichkeit, die Attribute einer Datei zu ändern, überschreibt sie jedoch nicht automatisch, so als würde lsdem Root-Benutzer auf * nix standardmäßig keine versteckte Datei angezeigt.

MDMarra
quelle
Es gibt keine "versteckte" NTFS-Datei, die ein Attribut verwendet. Dateien können mithilfe von Streams ausgeblendet werden. NTFS unterstützt alle Attribute, die von einer Anwendung benötigt werden, indem das erweiterte Attributfeld ($ EA) verwendet wird. Aus diesem Grund können Sie Unix-Dateiberechtigungen in einem NTFS-Dateisystem
Jim B,
6
Ich habe nicht gesagt, dass "versteckt" eine Funktion von NTFS ist, aber "versteckt" ist mit Sicherheit ein Attribut, das Sie für eine Datei oder einen Ordner festlegen können. Ich habe wirklich keine Ahnung, worauf du hinaus willst.
MDMarra
Was ist dieses versteckte Attribut unter Unix?
Edward Thomson
Versteckt war möglicherweise ein schlechtes Beispiel, aber illustrierte meinen Standpunkt. Es gibt kein "verstecktes" Attribut an sich, sondern nur Dateien, denen ein Punkt vorangestellt ist. Die fraglichen Windows-Dateiattribute sind eigentlich eher mit Dateiflaggen in Unix vergleichbar: freebsd.org/cgi/man.cgi?query=chflags&sektion=1 .
MDMarra
4

Eine Berechtigung ist eine Sicherheitskontrolle. Ein Attribut gilt unabhängig vom Sicherheitsprinzipal, der die Operation versucht.

Es gibt weit mehr Attribute als an der Eingabeaufforderung angezeigt werden. Dazu gehören, wenn die Datei eine Verknüpfung, verschlüsselt, ein Verzeichnis (ein Dateityp) und eine Integrität (niedrig, mittel oder hoch) ist.

Dateiattributkonstanten
http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117%28v=vs.85%29.aspx

FILE_ATTRIBUTE_ARCHIVE 32 (0x20)

Eine Datei oder ein Verzeichnis, das eine Archivdatei oder ein Archivverzeichnis ist. Anwendungen verwenden dieses Attribut normalerweise, um Dateien zum Sichern oder Entfernen zu markieren.

FILE_ATTRIBUTE_COMPRESSED 2048 (0x800)

Eine Datei oder ein Verzeichnis, das komprimiert ist. Bei einer Datei werden alle Daten in der Datei komprimiert. Bei einem Verzeichnis ist die Komprimierung die Standardeinstellung für neu erstellte Dateien und Unterverzeichnisse.

FILE_ATTRIBUTE_DEVICE 64 (0x40)

Dieser Wert ist für die Verwendung durch das System reserviert.

FILE_ATTRIBUTE_DIRECTORY 16 (0x10)

Das Handle, das ein Verzeichnis identifiziert.

FILE_ATTRIBUTE_ENCRYPTED 16384 (0x4000)

Eine Datei oder ein Verzeichnis, das verschlüsselt ist. Bei einer Datei werden alle Datenströme in der Datei verschlüsselt. Bei einem Verzeichnis ist die Verschlüsselung die Standardeinstellung für neu erstellte Dateien und Unterverzeichnisse.

FILE_ATTRIBUTE_HIDDEN2 (0x2) Die Datei oder das Verzeichnis ist ausgeblendet. Es ist nicht in einer normalen Verzeichnisliste enthalten.

FILE_ATTRIBUTE_INTEGRITY_STREAM 32768 (0x8000)

Das Verzeichnis oder der Benutzerdatenstrom wird mit Integrität konfiguriert (nur auf ReFS-Volumes unterstützt). Es ist nicht in einer normalen Verzeichnisliste enthalten. Die Integritätseinstellung bleibt bei der Datei erhalten, wenn sie umbenannt wird. Wenn eine Datei kopiert wird, wird für die Zieldatei die Integrität festgelegt, wenn für die Quelldatei oder das Zielverzeichnis die Integrität festgelegt wurde.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieses Flag wird erst unter Windows Server 2012 unterstützt.

FILE_ATTRIBUTE_NORMAL 128 (0x80)

Eine Datei, für die keine anderen Attribute festgelegt wurden. Dieses Attribut ist nur bei alleiniger Verwendung gültig.

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 8192 (0x2000)

Die Datei oder das Verzeichnis darf vom Inhaltsindexdienst nicht indiziert werden.

FILE_ATTRIBUTE_NO_SCRUB_DATA 131072 (0x20000)

Der Benutzerdatenstrom, der vom Hintergrunddatenintegritätsscanner (AKA-Scrubber) nicht gelesen werden soll. Bei der Einstellung in einem Verzeichnis wird nur die Vererbung bereitgestellt. Dieses Flag wird nur auf Storage Spaces und ReFS-Volumes unterstützt. Es ist nicht in einer normalen Verzeichnisliste enthalten.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieses Flag wird erst unter Windows 8 und Windows Server 2012 unterstützt.

FILE_ATTRIBUTE_OFFLINE 4096 (0x1000)

Die Daten einer Datei sind nicht sofort verfügbar. Dieses Attribut gibt an, dass die Dateidaten physisch in den Offlinespeicher verschoben werden. Dieses Attribut wird von Remote Storage verwendet, der hierarchischen Speicherverwaltungssoftware. Anwendungen sollten dieses Attribut nicht willkürlich ändern.

FILE_ATTRIBUTE_READONLY 1 (0x1)

Eine Datei, die schreibgeschützt ist. Anwendungen können die Datei lesen, jedoch nicht schreiben oder löschen. Dieses Attribut wird in Verzeichnissen nicht berücksichtigt. Weitere Informationen finden Sie unter Sie können die schreibgeschützten oder Systemattribute von Ordnern in Windows Server 2003, Windows XP, Windows Vista oder Windows 7 nicht anzeigen oder ändern.

FILE_ATTRIBUTE_REPARSE_POINT 1024 (0x400)

Eine Datei oder ein Verzeichnis mit einem zugeordneten Analysepunkt oder eine Datei mit einer symbolischen Verknüpfung.

FILE_ATTRIBUTE_SPARSE_FILE 512 (0x200)

Eine Datei mit geringer Dichte.

FILE_ATTRIBUTE_SYSTEM 4 (0x4)

Eine Datei oder ein Verzeichnis, von dem das Betriebssystem einen Teil verwendet oder das ausschließlich verwendet.

FILE_ATTRIBUTE_TEMPORARY 256 (0x100)

Eine Datei, die zum temporären Speichern verwendet wird. Dateisysteme vermeiden das Zurückschreiben von Daten in den Massenspeicher, wenn ausreichend Cache-Speicher verfügbar ist, da eine Anwendung in der Regel eine temporäre Datei löscht, nachdem das Handle geschlossen wurde. In diesem Szenario kann das System das Schreiben der Daten vollständig vermeiden. Andernfalls werden die Daten geschrieben, nachdem das Handle geschlossen wurde.

FILE_ATTRIBUTE_VIRTUAL 65536 (0x10000)

Dieser Wert ist für die Verwendung durch das System reserviert.

Greg Askew
quelle
Dies beantwortet die Frage nicht genau. Sie fragten sich, warum schreibgeschützt das Privileg "Vollzugriff" ablöste. Diese Attribute werden in Programmen verwendet.
Nathan C
1
Sie haben auch FAT-Style- und NTFS-Attribute gemischt - das ist kein großer Unterschied mehr, aber es gibt Zeiten, in denen es wichtig ist, zu unterscheiden.
Chris S
1
@ Nathan C. Dies beantwortet auch genau die Frage. Schreibgeschützt ersetzt nicht die volle Kontrolle. In der Antwort heißt es: „Ein Attribut gilt unabhängig vom Sicherheitsprinzipal, das die Operation versucht.“ Wie Chris S jedoch ausführte, werden die optionalen Legacy-Attribute mit den NTFS-Attributen gemischt.
Jim B
-6

Ich werde eine längere Antwort geben, aber im Allgemeinen handelt es sich bei den Attributen, auf die Sie sich beziehen, um ältere Einstellungen für eine Datei aus der Zeit des DOS-FAT-Dateisystems. FAT speichert diese Attribute als Teil der Dateisystemverzeichniseinträge für eine Datei. NTFS verfügt über einen eigenen Satz von Attributen, die die älteren Attribute kapseln. Standardmäßig kann jeder Benutzer mit Dateizugriff diese ändern und ein versehentliches Überschreiben von Daten verhindern.

Berechtigungen sind NTFS-spezifisch und Änderungen an diesen Berechtigungen können auf Benutzerbasis gesteuert werden (sodass ein Benutzer nicht von schreibgeschützt auf beschreibbar wechseln kann). Insbesondere wenn Sie sich den Befehl attrib ansehen (der sowohl ältere als auch die neuen Attributzusätze wie die Integrität in späteren Versionen von Windows anzeigt), ist es möglich, dass in den Berechtigungen nur Lesezugriff festgelegt wurde, in den Attributen jedoch keine Lesezugriffsberechtigung festgelegt wurde. Es ist auch interessant (wenn auch nicht wichtig) zu verstehen, dass es aufgrund der Abstraktion technisch möglich ist, die Legacy-Attribute (die im NTFS-Attribut $ standard_information gespeichert sind) zu aktivieren, ohne dass sie notwendigerweise in der normalen GUI angezeigt werden.

Insbesondere können Sie mit den Vollzugriffsberechtigungen alle NTFS-Berechtigungen ändern. Durch das Festlegen des schreibgeschützten Attributs werden Änderungen verhindert, bis es entfernt wird.

FAT-Attribute haben unter Windows Vorrang vor NTFS-Attributen.

Jim B
quelle
3
in general attributes are legacy settings- Haben Sie eine Quelle dafür, weil ich diese Aussage für falsch halte? Sie sind kostenlos für Dateisystemberechtigungen - sie wurden nicht ersetzt oder ersetzt. In den Standardberechtigungen ist nichts enthalten, was die Funktionalität von Hidden, Archive oder System ersetzt.
MDMarra
1
Any user can modify them and can be used to prevent accidental overwrites of data.Auch das ist sachlich falsch. Nur Benutzer mit "Attribut schreiben" in eine Datei oder ein Verzeichnis können die Attribute für dieses Objekt ändern.
MDMarra
1
i.stack.imgur.com/2fhEr.png zur Verdeutlichung.
Nathan C
2
Jim, bitte nehmen Sie sich eine Minute Zeit, um dies von Anfang an zu betrachten. Sie sind dieses "NTFS-Attribut" -Hasenloch so weit durchgegangen, dass Sie vergessen haben, dass Sie der einzige sind, der über NTFS-Attribute spricht. Das OP spricht eindeutig von globalen Dateiattributen wie "Versteckt" und "Nur Lesen". Er erwähnt ausdrücklich "Read only" in der Frage. Ich kann nicht sagen, ob Sie versuchen, pedantisch zu sein und versagen oder ob Sie diesen Punkt zu Recht verpasst haben. Ja, wir wissen, dass NTFS-Attribute (erweiterte Attribute) nicht mit globalen Datei- / Ordnerattributen (im FAT-Stil) identisch sind. Niemand behauptet das.
MDMarra,
3
Ich denke, Sie haben den Geist und die Absicht dieser Frage eindeutig verfehlt und Sie versuchen, eine Haltung einzunehmen, die zum einen falsch und zum anderen nicht hilfreich ist. Sie haben deutlich gezeigt, dass Sie die Funktionsweise von NTFS-Attributen verstehen, aber niemand hat nach ihnen gefragt, und niemand hat sie in einer Antwort verwendet . Wenn Sie versuchen, Ihr Wissen über NTFS-Attribute zu demonstrieren, haben Sie es gut gemacht. Das Problem ist, dass Sie den Punkt der Frage völlig übersehen haben.
MDMarra