在 Windows 10 下,在新格式化的硬盘介质类型的非系统 NTFS 卷(不可分区的 USB 拇指驱动器有所不同)上,NTFS ACE 如下(获取 Acl):
FileSystemRights : -536805376
AccessControlType : Allow
IdentityReference : NT AUTHORITY\Authenticated Users
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly
FileSystemRights : Modify, Synchronize
AccessControlType : Allow
IdentityReference : NT AUTHORITY\Authenticated Users
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : NT AUTHORITY\SYSTEM
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
FileSystemRights : 268435456
AccessControlType : Allow
IdentityReference : NT AUTHORITY\SYSTEM
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly
FileSystemRights : 268435456
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly
FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
FileSystemRights : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : BUILTIN\Users
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
FileSystemRights : -1610612736
AccessControlType : Allow
IdentityReference : BUILTIN\Users
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly
相应的 SDDL 字符串是(也来自获取 Acl):O:SYG:SYD:AI(A;OICIIO;SDGXGWGR;;;AU)(A;;0x1301bf;;;AU)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;OICIIO;GA;;;BA)(A;;FA;;;BA)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)
我的问题是不是ACE 的含义。我知道,每对 ACE 实际上是双胞胎,一个是卷根文件夹的非继承,一个是子文件夹和文件的继承。我还知道一些文件系统权限,网络上有很多关于它们的资料:两个“双胞胎”的权限实际上是相同的,唯一的区别是,非继承权限使用“文件”权限,而继承权限使用“通用”权限(您会在 SDDL 字符串中看到后者为 Gs)。后者以数字表示的唯一原因是没有合适的枚举名称。
相反,我的问题如下:
(1)为什么在进行如此全新的格式化之后,Windows 会自动将原来的四个权限拆分成八个(两个一对)?
(2)为什么 GUI (->特性->安全选项卡)反映了这种分裂,但 PowerShell,伊卡克尔斯和权限控制做?
(3)Windows为什么要继承两个都对子文件系统对象的权限,尽管只有每个一这些权限是可继承的吗?
我还有一个问题。如果你添加任意 ACE 到 ->特性->安全选项卡到这样的 ACL,保存,然后立即再次删除这个额外的 ACE,新格式化的驱动器的 ACE 突然看起来就像你从一开始就预料的那样(获取 Acl再次):
FileSystemRights : Modify, Synchronize
AccessControlType : Allow
IdentityReference : NT AUTHORITY\Authenticated Users
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : None
FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : NT AUTHORITY\SYSTEM
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : None
FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : None
FileSystemRights : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : BUILTIN\Users
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : None
相应的 SDDL 字符串 (获取 Acl):O:SYG:SYD:PAI(A;OICI;0x1301bf;;;AU)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)
(4)为什么在您添加 ACE 时,即使您随后删除它,Windows 也会自动将拆分的权限再次合并为一个?