icacls拒绝Everyone目录删除权限



我试图拒绝所有用户删除文件夹(以及文件夹内容,如果可能的话)。

我目前拥有的东西不起作用。

icacls pics /deny Everyone:(OI)(CI)(DE)

使用上面的行既不能保护文件夹也不能保护其内容,因为我仍然可以删除文件夹及其内的所有文件。

我想我找到了一个解决方案:

icacls pics /deny Everyone:(OI)(CI)(DE,DC)

其拒绝删除CCD_ 1和移除子级CCD_。

  • 要使该语言独立,请使用*S-1-1-0而不是Everyone。(参见众所周知的SID)
  • 如果文件夹恰好为空,您可能仍然可以删除该文件夹。如果这是一个问题,可以考虑设置只读标志,例如attrib +r pics,然后拒绝(WA),使其无法更改(归功于Harry Johnston)

要防止删除文件,您需要拒绝文件上的删除权限和包含的文件夹上的删除子权限(也称为"删除子文件夹和文件")。为了真正防止删除,两者都不能被允许。

换句话说,如果其中一个或两个权限都被授予,Windows允许删除文件。

如果你被允许更改包含文件夹的权限,以上部分的答案就足够了,否则,有一些技巧可以防止你的文件夹被删除(都是我试验过的)。

  1. 您可以在文件夹中创建一个(隐藏的)伪文件,并阻止删除该文件(再次使用访问控制)
  2. 所有删除操作,无论是通过Windows资源管理器GUI还是DELRMDIR命令,都不能直接删除只读文件或文件夹,上述命令所做的是在执行删除操作之前尝试删除文件上的只读属性。因此,在拒绝写入属性(WA)权限的同时设置文件夹的只读属性将有效地防止文件夹被删除

下面是一个将两个技巧结合在一起的批处理脚本示例:

ECHO.>"myfolderdummy"
REM Technically R is sufficient to prevent deletion,
REM but it wouldn't hurt to add H and S attributes.
attrib +R +H +S "myfolderdummy"
REM Deny permissions on dummy file.
REM Hint: S-1-1-0 means Everyone; S-1-5-7 means Anonymous Logon group
icacls "myfolderdummy" /deny *S-1-1-0:^(DE,WA^) *S-1-5-7:^(DE,WA^)
REM Make folder read-only and deny permissions on it.
attrib +R "myfolder"
icacls "myfolder" /deny *S-1-1-0:^(DE,DC,WA^) *S-1-5-7:^(DE,DC,WA^)

最新更新