我试图拒绝所有用户删除文件。我希望任何用户都能够读取或执行该文件,但不能修改或删除它。但是,在我通过命令提示符使用以下代码后,甚至没有人可以首先访问该文件!
icacls pic.jpg /deny Everyone:(D)
我尝试了授予某些权限并拒绝其他权限的变体,但均无济于事。我怎样才能做到这一点(在 Windows 7/8 上)?
我试图拒绝所有用户删除文件。我希望任何用户都能够读取或执行该文件,但不能修改或删除它。但是,在我通过命令提示符使用以下代码后,甚至没有人可以首先访问该文件!
icacls pic.jpg /deny Everyone:(D)
我尝试了授予某些权限并拒绝其他权限的变体,但均无济于事。我怎样才能做到这一点(在 Windows 7/8 上)?
要防止删除文件,您需要拒绝该文件的Delete权限并拒绝包含文件夹的Delete Child权限(又名“删除子文件夹和文件”)。为了真正防止删除,两者都不能被允许。
换句话说,如果授予其中一个或两个权限,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) 包含在拒绝列表中,因为自 Windows XP 以来,Everyone 组中不包含匿名登录,因此最好还是明确拒绝匿名登录。
编辑:请注意,icacls
(D)权限与(DE)不同。前者包括同步权限,而后者是单独的删除权限。如果您拒绝同步权限,您可能无法访问(浏览或CD
访问或DIR
打开)该文件夹。
警告:icacls
有一个错误,即单独拒绝 (DE) 的文件将显示为(DENY)(D)
而不是(DENY)(DE)
在查询时显示。报告于2 3。如上所述(D)和(DE)是不同的。
要保护文件,您必须使用:
icacls pic.jpg /deny Everyone:(DE)
使用内容保护文件夹:
icacls pics /deny Everyone:(OI)(CI)(DE,DC)
D 是不同访问权限的组合,如果要授予删除文件的权限。
为了让这种语言独立使用*S-1-1-0
而不是Everyone
.
(OI)
= 对象继承
(CI)
= 容器继承