Windows文件权限和属性


15

我对整个Windows文件安全方案感到有些困惑。我来自UNIX背景,因此我不完全了解文件权限/安全设置与属性之间的关系;文件可以具有的只读属性。

例如,如果我以管理员身份登录到我的邮箱中,并且拥有一个可以完全控制管理员的文件,但是设置了只读属性,那意味着我无法写入该文件?除了删除我可以写到据称可以完全控制的文件的只读属性之外,还有什么办法吗?如果没有,如果您没有真正的完全控制权,那么拥有完全控制权的优势是什么?


1
很棒的问题
Jim B

Windows文件属性类似于Unix文件标志
Chris

我已经编辑这是更通用的,因为这些原则适用于Windows,而不只是Server 2003的所有现代版本
MDMarra

实际上,2012年及以后可能会有所不同
Jim B

Answers:


16

文件权限决定了您对文件的访问权限-就像听起来一样。完全控制使您可以创建,删除,追加,更改权限,更改属性等。

文件和文件夹可以具有其他属性,就像大多数* nix文件系统上的文件一样。在两个平台上都以“隐藏”为例。

在Windows上,一些其他属性包括系统,只读,存档,加密和压缩。拥有完全控制(或修改)的权限时,您可以更改这些属性,但是,正如您所发现的,即使对完全控制的人,只读文件也是只读的。尽管完全控制使您能够更改文件的属性,但它不会自动覆盖它们,就像ls默认情况下在* nix上不向根用户显示隐藏文件一样。


没有使用属性的“隐藏” NTFS文件。可以使用流隐藏文件。NTFS支持使用扩展属性字段($ EA)的任何应用程序所需的任何属性,这就是为什么您可以在NTFS文件系统中存储Unix文件权限的原因
Jim B

6
我并不是说“隐藏”是NTFS在任何地方的功能,但“隐藏”无疑是可以在文件或文件夹上设置的属性。我真的不知道您要说的重点是什么。
MDMarra 2013年

Unix上的这个隐藏属性是什么?
爱德华·汤姆森

隐藏可能是一个糟糕的例子,但说明了我的观点。本身没有“隐藏”属性,只有带有句点前缀的文件。所讨论的Windows文件属性实际上更类似于Unix中的文件标志:freebsd.org/cgi/man.cgi?query=chflags&sektion=1
MDMarra 2013年

4

权限是一种安全控制。无论尝试执行该操作的安全主体如何,都将应用属性。

属性远远超过您在命令提示符下看到的属性。这些包括文件是否是链接,加密,目录(文件的类型)和完整性(低,中或高)。

文件属性常量
http://msdn.microsoft.com/zh-cn/library/windows/desktop/gg258117%28v=vs.85%29.aspx

FILE_ATTRIBUTE_ARCHIVE 32(0x20)

作为存档文件或目录的文件或目录。应用程序通常使用此属性将文件标记为备份或删除。

FILE_ATTRIBUTE_COMPRESSED 2048(0x800)

压缩的文件或目录。对于文件,将压缩文件中的所有数据。对于目录,压缩是新创建的文件和子目录的默认设置。

FILE_ATTRIBUTE_DEVICE 64(0x40)

该值保留供系统使用。

FILE_ATTRIBUTE_DIRECTORY 16(0x10)

标识目录的句柄。

FILE_ATTRIBUTE_ENCRYPTED 16384(0x4000)

加密的文件或目录。对于文件,文件中的所有数据流均已加密。对于目录,加密是新创建的文件和子目录的默认设置。

FILE_ATTRIBUTE_HIDDEN2(0x2)文件或目录被隐藏。它不包含在普通目录列表中。

FILE_ATTRIBUTE_INTEGRITY_STREAM 32768(0x8000)

目录或用户数据流配置为具有完整性(仅ReFS卷支持)。它不包含在普通目录列表中。如果文件被重命名,完整性设置将与文件一起保留。如果复制了文件,那么如果源文件或目标目录都设置了完整性,则目标文件将设置完整性。

Windows Server 2008 R2,Windows 7,Windows Server 2008,Windows Vista,Windows Server 2003和Windows XP:直到Windows Server 2012才支持此标志。

FILE_ATTRIBUTE_NORMAL 128(0x80)

没有设置其他属性的文件。该属性仅在单独使用时才有效。

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 8192(0x2000)

内容索引服务不对文件或目录建立索引。

FILE_ATTRIBUTE_NO_SCRUB_DATA 131072(0x20000)

后台数据完整性扫描程序(AKA洗涤器)不会读取用户数据流。在目录上设置时,它仅提供继承。仅在存储空间和ReFS卷上支持此标志。它不包含在普通目录列表中。

Windows Server 2008 R2,Windows 7,Windows Server 2008,Windows Vista,Windows Server 2003和Windows XP:在Windows 8和Windows Server 2012之前不支持此标志。

FILE_ATTRIBUTE_OFFLINE 4096(0x1000)

文件数据无法立即使用。此属性指示文件数据已物理移动到脱机存储中。该属性由远程存储使用,远程存储是分层存储管理软件。应用程序不应随意更改此属性。

FILE_ATTRIBUTE_READONLY 1(0x1)

只读文件。应用程序可以读取文件,但不能对其进行写入或删除。目录不支持此属性。有关详细信息,请参阅在Windows Server 2003,Windows XP,Windows Vista或Windows 7中无法查看或更改文件夹的只读或系统属性。

FILE_ATTRIBUTE_REPARSE_POINT 1024(0x400)

具有关联的重新解析点的文件或目录,或者是符号链接的文件。

FILE_ATTRIBUTE_SPARSE_FILE 512(0x200)

是稀疏文件的文件。

FILE_ATTRIBUTE_SYSTEM 4(0x4)

操作系统使用一部分或专门使用的文件或目录。

FILE_ATTRIBUTE_TEMPORARY 256(0x100)

用于临时存储的文件。如果有足够的高速缓存可用,文件系统避免将数据写回大容量存储,因为通常,应用程序在句柄关闭后会删除临时文件。在那种情况下,系统可以完全避免写入数据。否则,将在关闭句柄之后写入数据。

FILE_ATTRIBUTE_VIRTUAL 65536(0x10000)

该值保留供系统使用。


这不能完全回答问题。他们想知道为什么只读取代了“完全控制”特权。这些属性在程序中使用。
内森·C

1
您还混合使用了FAT样式和NTFS属性-不再是一个很大的区别,但是有时区分是至关重要的。
克里斯S

1
@Nathan C.这也正好回答了这个问题。只读不会取代完全控制。正如答案所说的那样,“属性适用,而与尝试操作的安全主体无关。”但是,正如Chris S指出的那样,可选的旧式属性与NTFS属性混合在一起。
Jim B

-6

我将提供更长的答案,但总的来说,您所指的属性是DOS FAT文件系统时代以来文件的旧设置。FAT将这些属性存储为文件的文件系统目录条目的一部分。NTFS有自己的属性集,这些属性封装了较旧的属性。默认情况下,任何具有文件访问权限的用户都可以对其进行修改,并可以用来防止意外覆盖数据。

权限是特定于NTFS的,可以在每个用户的基础上控制对这些权限的更改(这样用户就不能从只读更改为可写)。具体来说,如果您要查看attrib命令(它在Windows的更高版本中同时显示了旧属性和新属性的添加,例如完整性),则可能在权限中设置了只读访问权限,但未在属性中设置了只读权限。有趣的是(如果不重要的话),可以理解,由于抽象的原因,它在技术上可以启用遗留属性(存储在$ standard_information NTFS属性中),而不必在常规GUI中显示它们。

具体来说,完全控制权限允许您更改任何NTFS权限。设置只读属性可防止更改,直到将其删除。

FAT属性将优先于Windows下的NTFS属性。


3
in general attributes are legacy settings-您是否有消息来源,因为我认为该说法不正确。它们是对文件系统权限的补充-尚未被它们替换或取代。标准权限中没有什么可以替代隐藏,存档或系统的功能。
MDMarra 2013年

1
Any user can modify them and can be used to prevent accidental overwrites of data.同样,这实际上是不正确的。只有对文件或目录具有“写属性”的用户才能更改该对象的属性。
MDMarra 2013年


2
吉姆,请花一点时间从一开始就研究一下。您已经远远超过了这个“ NTFS属性”兔子洞,您已经忘记了自己是唯一谈论NTFS属性的人。OP显然在谈论全局文件属性,例如“隐藏”和“只读”。他在问题中明确提到“只读”。我无法告诉您您是要脚又失败还是要合理地错过这一点。是的,我们知道,NTFS(扩展)属性与全局(FAT样式)文件/文件夹属性不同。没有人声称这一点。
MDMarra 2013年

3
我认为您显然已经错过了此问题的精神和意图,并且您正在尝试采取的立场一方面是不正确的,另一方面是无助的。您已经清楚地表明,您已经掌握了NTFS属性的工作原理,但是没有人问过它们,也没有人使用它们作为答案。如果您想炫耀您对NTFS属性的了解,那么您做得很好。问题是您完全错过了问题的要点。
MDMarra 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.