我试图拒绝所有用户删除文件。我希望任何用户能够阅读或执行该文件,但不能修改或删除它。但是,在我通过命令提示符使用以下代码后,首先没有人可以访问该文件!
icacls pic.jpg /deny Everyone:(D)
我尝试过授予某些权限并拒绝其他人无效的变体。如何实现这一点(在Windows 7/8上)?
答案 0 :(得分:1)
要保护文件,您必须使用:
icacls pic.jpg /deny Everyone:(DE)
保护文件夹的内容使用:
icacls pics /deny Everyone:(OI)(CI)(DE,DC)
如果您想授予删除文件的权利,则D是不同访问权限的组合。
要使此语言独立,请使用*S-1-1-0
代替Everyone
。
(OI)
=对象继承
(CI)
=容器继承
答案 1 :(得分: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),因为anonymous logon is not included in Everyone group since Windows XP,最好明确拒绝匿名登录。
编辑:注意icacls
中的(D)许可与(DE)不同。前者包括Synchronize权限,而后者仅包含Delete权限。如果您拒绝同步,则可能无法访问该文件夹(浏览或CD
或DIR
)。
警告:icacls
有一个错误,即(DE)单独拒绝的文件在查询时将显示为(DENY)(D)
而不是(DENY)(DE)
。在2 3中报告。如上所述(D)和(DE)
是不同的。