Benutzer können Dateien löschen, auf die sie keinen Zugriff haben. Das ist das, was als Feature (!) dokumentiert ist, sich aber meist als Riesenproblem äußert. Dann gibt es noch undokumentierte Schwächen, die auch problematisch sind, z. B. können manche Dateien, auf die nur Leserecht
erteilt wurde, verändert werden.
Dahinter steckt die sog. "POSIX-Falle": Windows NT wurde seinerzeit mit dem Ziel entworfen, einige wichtige Unix-Standards zu erfüllen. Eine etwas eigenwillige Umsetzung dieses Ziels beschert uns nun dieses Problem.
Der POSIX-Standard sieht vor, dass eine Datei dann gelöscht werden kann, wenn Schreibrecht auf Ordnerebene besteht. Dies widerspricht der gesamten Struktur der NT-Berechtigungen. Zudem ist die Implementierung in NTFS mehr als fragwürdig: Tatsächlich gibt es eine einzelne Berechtigung, die hierfür zuständig ist. An diese Berechtigung kam man unter NT4 aber weder über das GUI noch über die Kommandozeile ran (erst seit Windows 2000 ist sie tatsächlich sichtbar und kann gezielt gesetzt/verweigert werden: Sie nennt sich "Delete Subfolders and Files"). Die beste Möglichkeit, diese Berechtigung nicht zu erteilen, ist, den Usern auf Ordnerebene keinen Vollzugriff zu geben.
Darüber hinaus ist die Implementierung aber auch fehlerhaft: Wenn ich unter NT4 eine BMP-Datei anlege und einem User nur "Lesen"-Berechtigung erteile, kann der User mit MSPaint die Datei ändern und die Änderungen speichern – solange er Vollzugriff auf den Ordner hat. Schalte ich auf Ordnerebene um auf "Ändern" (oder "RWXDPO" einzeln), kann er die Datei nur lesen (was ja beabsichtigt ist). Das ist also offenkundig eine Folge der angeblich POSIX-kompatiblen Implementierung, aber ebenso offenkundig ein Bug. (Wobei ich mir sicher bin, dass das nicht auf *.bmp und MSPaint beschränkt ist.) Dies habe ich bislang nicht mit einer Windows-Version nach NT4 getestet.
http://faq-o-matic.net/?p=545