使用Windows Server 2012 R2和Windows Server 2008 R2。
我有一个名为的文件夹C:\temp\test
,我想向其授予访问权限,SYSTEM
以及一个用户,所有文件和子目录,并删除其他所有内容。我已经尝试过此命令,但所有现有权限仍然保留:
现有权限为:
Access : NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
BUILTIN\Users Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow AppendData
BUILTIN\Users Allow CreateFiles
CREATOR OWNER Allow 268435456
我想删除除以外的所有ACL SYSTEM
,然后添加<DOMAIN>\<USER>
我尝试了以下命令:
icacls c:\temp\test /grant:r <DOMAIN>\<USER>:(OI)(CI)F /t
processed file: c:\temp\test
Successfully processed 1 files; Failed processing 0 files
之后,当我查看权限时,<DOMAIN>\<USER>
具有正确的权限,但其他所有权限仍然保留。我以为/grant:r
替换了所有权限?您知道要删除所有其他权限时需要运行什么命令吗?
/grant:r
仅删除现有的显式权限,而不从上面的文件夹中删除继承的权限。您还需要包括在内/inheritance:r
。
如果CACLS完成了这项工作,那么无论是否已弃用,都没有理由不使用它。
—
joeqwerty 2014年
@joeqwerty是对的,但感觉太脏了。cacls本身甚至返回使用icacls的消息,因此必须有一个很好的理由。
—
Mark Allison 2014年
NOTE: Cacls is now deprecated, please use Icacls.
@joeqwerty
—
Craig
cacls.exe
可能会以错误的顺序设置ACL,从而可能引起问题(我将其留给读者练习)。
cacls c:\temp\test /t /g <DOMAIN>\<USER>:F
但是我听说icacls已取代它,有人可以告诉我等效的icacls版本以产生相同的行为吗?