WDAC 和 WO(icacls)有什么区别?

WDAC 和 WO(icacls)有什么区别?

我打算授予(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 权限的用户无需成为所有者就可以更改大多数权限。

相关内容