【问题标题】:icacls Deny Delete for Everyone Not Workingicacls 拒绝删除所有不工作的人
【发布时间】:2014-09-09 13:00:22
【问题描述】:

我试图拒绝所有用户删除文件。我希望任何用户都能够读取或执行该文件,但不能修改或删除它。但是,在我通过命令提示符使用以下代码后,一开始就没有人可以访问该文件!

icacls pic.jpg /deny Everyone:(D)

我尝试了授予某些权限并拒绝其他权限的变体,但均无济于事。我怎样才能做到这一点(在 Windows 7/8 上)?

【问题讨论】:

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


    【解决方案1】:

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

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

    所以,假设您正在保护 foo\bar.txt 不被删除,您至少应该:

    icacls foo\bar.txt /deny Everyone:(DE) *S-1-5-7:(DC)
    icacls foo /deny Everyone:(DC) *S-1-5-7:(DC)
    

    请注意,我将 S-1-5-7(匿名登录)包含在拒绝列表中,因为 anonymous logon is not included in Everyone group since Windows XP,无论如何最好明确拒绝匿名登录。

    编辑:注意icacls 中的 (D) 权限与 (DE) 不同。前者包括同步权限,而后者是单独的删除权限。如果您拒绝同步权限,您可能无法访问(浏览或CDDIR)该文件夹。

    警告:icacls 有一个错误,即单独拒绝 (DE) 的文件将在查询时显示为 (DENY)(D) 而不是 (DENY)(DE)。报告于23。如上所述(D)和(DE) 不一样。

    【讨论】:

      【解决方案2】:

      要保护您必须使用的文件:

      icacls pic.jpg /deny Everyone:(DE)
      

      使用内容保护文件夹:

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

      D是不同访问权限的组合,如果你想授予删除文件的权限。

      要获得这种语言独立,请使用*S-1-1-0 而不是Everyone


      (OI)= 对象继承 (CI)= 容器继承

      【讨论】:

      • 谢谢!我要退出 [此列表[(ss64.com/nt/icacls.html),其中不包括 DE!我应该在命令提示符下输入icacls 来找到这个DE 选项。
      • 别担心,我之前也去过那里。
      • 试试icacsl pics /deny Everyone:(OI)(CI)(DE),这样 (DE) 就会被所有包含的对象和容器继承。
      • 我假设您无法阻止本地管理员删除文件。我在我的机器上本地尝试了这个。使用我的正常工作帐户可以正常工作。当我使用提升的管理员帐户时,我也可以删除文件。我认为 FULL-Access" 会覆盖 DENY (DE),您应该期望 FULL-Access 实现这一点。
      • 找到了。改变了答案。
      猜你喜欢
      • 2014-11-02
      • 1970-01-01
      • 2012-09-29
      • 2012-03-19
      • 1970-01-01
      • 2018-06-21
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多