为什么撤销读取权限后无法使用 icacls 从文件中删除组?

为什么撤销读取权限后无法使用 icacls 从文件中删除组?

如果拒绝读取权限,为什么我无法从文件中删除组,即使我具有来自我帐户的读取权限、是管理员组的一部分,并且我正在从提升的命令提示符运行 icacls?

这将完美地删除“用户”组:

copy a b
icacls b /inheritance:d
icacls b /remove:g "Users"

结果:该文件不再具有“用户”组。

但是如果我删除读取权限,那么 icacls 就无法删除该组:

copy a b
icacls b /inheritance:d
icacls b /deny "Users":r
icacls b /remove:g "Users"

结果:该文件仍然具有“用户”组。

为了解决这个问题,我必须先授予某个群组“完全”权限,然后使用它/remove来保证该群组将被删除。但这感觉像是一个漏洞,因为某个特定群组将短暂拥有完全访问权限。

答案1

您使用了错误的开关。您需要使用/remove:d

icacls b /remove:d "Users"

当某个组的权限被拒绝时,交换机将无权/remove:g删除该组的任何权限。

或者,删除任何分配给组的权限,无论是授予还是拒绝,使用:

icacls b /remove "Users"

概括

  • /remove:g删除以下权利(的确
  • /remove:d删除以下权利(D)被拒绝
  • /remove删除所有权利

有关 Icacls 开关的更多信息,请参阅科技网

相关内容