我打算授予(WDAC)
权限“更改权限” user
。但是,我遇到了(WO)
代表“取得所有权”的权限。这两者有什么区别?在没有设置权限的情况下,user
拥有权限的人是否仍然可以更改权限?(WDAC)
(WO)
答案1
两者有什么区别?
WO
指的是文件的“所有者”参数,它是与 DACL 条目完全不同的字段(尽管仍然是 ACL 结构的一部分)。它并不是指能够编辑“创建者所有者”ACL 条目。
该文件的所有者隐含地拥有WDAC
权限(但不是完全权限 – 其余权限必须通过标准 ACE 授予。此外,启用磁盘配额时,文件占用的空间将计入其所有者的配额,这也是将文件所有者设置为单独权限的另一个原因。
请注意,拥有WO
权限并不意味着WDAC
要获得 WDAC,您仍然需要先将自己设置为所有者。
具有(WDAC)权限的用户是否仍可以在没有设置(WO)权限的情况下更改权限?
是的,他们可以更改所有 DACL 条目。
附加说明:如果某些操作看似不应该但实际上却有效(尤其是当某些 PowerShell cmdlet 允许您执行违反文件 DACL 的操作时),通常是因为它是通过系统范围的权限完成的。
例如,“取得所有权”不一定通过拥有WO
权限来完成 - 它也可以使用所有管理员都拥有的系统范围的 SeTakeOwnership 权限来完成。
管理员还拥有系统范围的 SeBackupPrivilege 和 SeRestorePrivilege;当这些权限被激活时,该进程可以绕过 DACL 执行大多数操作。例如,当您尝试在 PowerShell 中删除某些内容时,它会引发 SeRestorePrivilege 以绕过任何阻止您删除它的 ACL。
再举一个例子,WO
权限和 SeTakeOwnershipPrivilege 都不允许你将任意帐户设置为文件所有者 - 它们都只允许你将文件声明为你自己。因此,当您使用 Explorer 的 GUI 或icacls /setowner
设置其他人作为新所有者,这实际上是通过依靠 SeRestorePrivilege 设置任意 ACL 来完成的。
答案2
这是两种截然不同的权限。
WO 动词执行“写入所有者”,从而您拥有该对象的所有权。所有者当然拥有所有权限,包括写入 DAC 权限。
要更改文件夹的访问列表,用户需要具有写入 DAC 权限 (WRITE_DAC — WDAC)。至少有一名用户(对象所有者)具有修改 DACL 的权限。
因此,是的,具有写 DAC 权限的用户无需成为所有者就可以更改大多数权限。