如何使用 cacls.exe 递归更改 ACL?

maa*_*nus 5 permissions windows-xp cacls

我想将目录中所有内容的访问权限限制work为我和系统。我用以下命令尝试了这个:

cacls.exe work /t /p 'PIXLA09\Maaartin:f' 'NT AUTHORITY\SYSTEM':f
Run Code Online (Sandbox Code Playgroud)

然而,它根本不起作用。下面的命令应该只显示两个指定的用户,而是显示一个很长的权限列表:

cacls.exe work/somedirectory
Run Code Online (Sandbox Code Playgroud)

我也尝试使用/g而不是/p。由于我没有使用/e权限不应该被编辑而是被替换。

任何想法有什么问题?

sah*_*pee 1

您的第一个命令行中可能有一个小错误。:f 应该位于引号之外。您似乎还使用了单引号而不是双引号。当我尝试时,这不起作用。

这个命令行对我来说工作正常:

cacls test /t /g "computername\sahmeepee":f "system":f
Run Code Online (Sandbox Code Playgroud)

或使用您的名字:

cacls work /t /g "PIXLA09\Maaartin":f "system":f
Run Code Online (Sandbox Code Playgroud)

另一个可能的问题是 cacls 命令应用权限更改的顺序似乎很奇怪。如果您运行上面的命令,而不是向其他人的帐户授予权限,而不是您自己的帐户,则只有目录“test”会受到影响,而不是其子目录。这是因为该命令似乎是从上到下进行更改,而不是从下到上,因此当涉及到编辑子目录上的 ACL 时,它不再具有权限!