【问题标题】:icacls Deny Everyone Directory Delete Permissionicacls 拒绝所有人目录删除权限
【发布时间】:2014-11-02 23:43:33
【问题描述】:

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

我的currently have 不起作用。

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

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

【问题讨论】:

    标签: batch-file windows-8 permissions cacls icacls


    【解决方案1】:

    我想我找到了解决办法:

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

    它拒绝删除 (DE)删除孩子 (DC) 的特定权利。

    • 要获得这种语言独立使用*S-1-1-0 而不是Everyone。 (见Well-Known SIDs
    • 如果文件夹碰巧是空的,您仍然可以删除该文件夹。如果这是一个问题,请考虑设置只读标志,例如attrib +r pics,然后拒绝(WA),使其无法更改(归功于Harry Johnston

    【讨论】:

    • 这真的让我很烦:)
    • 如果文件夹碰巧是空的,您可能仍然可以删除该文件夹。如果这是一个问题,请考虑设置只读标志,例如attrib +r pics,然后拒绝(WA),使其无法更改。
    • 太好了,我想知道这个命令实际上对目录做了什么。我已经测试了这个命令,我发现执行它后,我可以添加/创建子文件夹或文件,但不能重命名它。
    【解决方案2】:

    要防止删除文件,您需要拒绝文件的删除权限拒绝删除子文件权限(又名“删除子文件夹和文件”)在包含文件夹。为了真正防止删除,两者都不能被允许。

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

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

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

    这是一个将两个技巧组合在一起的批处理脚本示例:

    ECHO.>"myfolder\dummy"
    REM Technically R is sufficient to prevent deletion,
    REM but it wouldn't hurt to add H and S attributes.
    attrib +R +H +S "myfolder\dummy"
    REM Deny permissions on dummy file.
    REM Hint: S-1-1-0 means Everyone; S-1-5-7 means Anonymous Logon group
    icacls "myfolder\dummy" /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^)
    

    【讨论】:

    • 你救我!!!是唯一有效的东西!!!!谢谢!!!!
    猜你喜欢
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多