NTFS安全ACL存储位置、权限存储介质及跨NT系统修改影响咨询
NTFS权限相关问题解答
1. Windows系统中NTFS安全ACL存储在何处?
NTFS的安全ACL(访问控制列表)是存储在**主文件表(MFT)**的对应文件/目录记录里的。具体来说,每个MFT条目包含一个$SECURITY_DESCRIPTOR属性,这个属性就保存了该对象的安全描述符——其中就包含了DACL(自主访问控制列表,也就是我们常说的权限列表)和SACL(系统访问控制列表,用于审核)。另外,为了节省空间,多个对象如果使用相同的安全描述符,NTFS会共享这个描述符的存储,避免重复写入。
2. 用户或组的文件、目录访问权限是存储在磁盘上的NTFS结构中,还是Windows系统的注册表数据库,抑或是其他位置?
肯定是存在磁盘的NTFS结构里,也就是刚才提到的MFT的$SECURITY_DESCRIPTOR属性中。注册表是存储Windows系统配置信息的,和文件系统权限完全无关——毕竟权限是和具体的文件/目录绑定的,必须跟着卷走,这样不管这个卷被挂载到哪个Windows系统上,权限信息都能被正确读取。
3. 若多个NT类操作系统访问同一硬盘卷,在其中一个系统上修改/修复访问权限是否不会影响其他系统?即在OS1中设置/修改的文件系统对象权限,是否会影响OS2中的权限(反之亦然)?
当然会互相影响!因为权限信息是直接存在NTFS卷本身的结构里的,不是存在某个系统的本地配置里。不管你把这个卷挂载到Windows 10、Windows Server 2019还是其他NT类系统上,所有系统读取的都是同一个MFT里的安全描述符。所以在OS1里修改了某个文件的权限,当OS2挂载这个卷后,看到的就是修改后的权限,反过来也是一样的。
内容的提问来源于stack exchange,提问作者NimbUs




