cacls 使用方法
C:\>cacls /?
显示或者修改文件的访问控制表(ACL)
CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]
[/P user:perm [...]] [/D user [...]]
filename 显示 ACL。
(fileame为文件路径+具体文件名;例:cacls c:\test.txt,他就会显示该文件的所有用户权限了。不懂 就看图1)
另外大家可能看到BUILTIN\Administrator,可能有人会奇怪,这个BUILTIN是什么意思,他的意思就是“表示内建帐户。也即表示Windows的Administrator用户组。”
(图1)
/T 更改当前目录及其所有子目录中指定文件的 ACL。
(/T就是修改当前以及在其目录下的所有子目录的相应文件权限,比如我建立了
c:\1\1.txt
c:\1\2\1.txt
c:\1\2\2.txt
三个文件,如果我用cacls c:\1\1.txt /t /g:everyone:r,那么他的效果就如图2图3图4,本来我是处理的c:\1\1.txt,但是因为加了/t这个参数,在c:\1\目录下所有子目录下的1.txt权限就都被更改了。
)
图2 c:\1\1.txt
图3 c:\1\2\1.txt
图4 c:\1\2\2.txt
/E 编辑 ACL 而不替换。
(这个/E对于我来说有点咬文嚼字了,编辑,而不替换,什么意思呢就是说,比如c:\test.txt的权限,如图5)
图5
大家都看到他的权限了吧,那么/e参数起什么作用呢?我们来修改下Administrator的权限。
命令是cacls c:\test.txt /e /p Administrator:r ,处理过的文件看图6
图6,和图5比较一下,因为有/e参数,他只是修改了Administrator的权限。
/C 在出现拒绝访问错误时继续。
(这个就好解释了,就是不管命令是否有错,都继续执行。就不加图做演示了。)
/G user:perm 赋予指定用户访问权限。
Perm 可以是: R 读取
W 写入
C 更改(写入)
F 完全控制
(/G呢就是给指定用户访问权限,而且会删除该文件上其他用户的所有权限,比如我那个更改HOSTS文件
权限的命令吧,就是/g everyone:r 用了这个命令,就会把hosts文件上的所有用户只替换成你指定的用户
权限,并把其他用户全部删除。那么看下演示,还是c:\test.txt,先看下它没经过/g处理的时候,如图7)
图7 c:\test.txt没经过/G参数处理时候的图。
再看图8,是用/G参数处理过的,处理命令为echo y|cacls c:\test.txt /g Administrator:r
图8,用echo y|cacls c:\test.txt /g Administrator:r命令处理过的效果。
用图8和图7一对比,知道/g参数的作用了否???
/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
(/R我的理解就是删除文件上指定用户的权限,你写哪个用户,哪个用户的权限就会删除,同时必须有/E参数)
看图说明吧,还是图比较直观,先看c:\test1.txt文件原来有的权限。如图9
图9
那么我们用命令cacls c:\test1.txt /e /r system命令处理一下,把system用户权限给删除。看图10
图10,用命令cacls c:\test1.txt /e /r system把SYSTEM用户权限给删掉了。和图9比一下 。也就理解了。那如果我是用命令cacls c:\test1.txt /e /r Administrator呢?界于/R参数的关系 ,那就Administrator的用户权限也没有了呗!
/P user:perm 替换指定用户的访问权限。
Perm 可以是: N 无
R 读取
W 写入
C 更改(写入)
F 完全控制
(/P就是把原来的所用用户权限都改为你命令中输入的权限,比如你看图11,一共有3个用户权限)
图11
主要是看现在Administrator的权限,是所有权限,那么我们用命令
echo y|cacls c:\test1.txt /p Administrator:r,把test1.txt文件改为只有
Administrator有读取权限。看图12
明白了吧,替换就是把所有的权限都替换成你命令里的权限,如果加了/E参数的话 ,那其他2个用户的权限就不会没有,而Administrator一样会被改为只有读取权限。我就不再做说明了。大家可以测试下。
命令是cacls 文件 /e /p 用户名:r,用这个命令处理过一个文件后,你会发现他原来的用户权限都在。
但是你命令中的用户名权限 就会被改为只有读取权限了。
/D user 拒绝指定用户的访问。在命令中可以使用通配符指定多个文件。也可以在命令中指定多个用户。
(/D嘛,看CMD的说明就知道了。就是拒绝指定用户的访问了。。再来个图片说明,看图13 c:\test2.txt文件的原有权限。)
图13。他的Administrator目前是所有权限。
那我们用命令echo y|cacls c:\test2.txt /e /d Administrator处理下。
看图14,然后再和图13比一下 。我们会发现Administrator的权限都变成拒绝了,且文件不可访问。
图14
大概就是这些意思吧,可能其中的某些参数没有演示到位,或者有些词不搭意,但是我想不懂的人看过之后至少能明白一些,其中的命令配合大家自行研究一下,其实我对批处理也只是一知半解,但是我这个人遇到问题后就喜欢把问题写出来,做个简单的教程来同大家分享,因为我介绍的这些东西并不是什么高深内容,但是讲起来又很麻烦,所以就算是普及一下九年义务教育好了。高手别骂我,如果有什么错误请指正,同时没有诋毁任何人的意思。
缩写:
CI - 容器继承。
ACE 会由目录继承。
OI - 对象继承。
ACE 会由文件继承。
IO - 只继承。
ACE 不适用于当前文件/目录。
显示或者修改文件的访问控制表(ACL)
CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]
[/P user:perm [...]] [/D user [...]]
filename 显示 ACL。
(fileame为文件路径+具体文件名;例:cacls c:\test.txt,他就会显示该文件的所有用户权限了。不懂 就看图1)
另外大家可能看到BUILTIN\Administrator,可能有人会奇怪,这个BUILTIN是什么意思,他的意思就是“表示内建帐户。也即表示Windows的Administrator用户组。”
(图1)
/T 更改当前目录及其所有子目录中指定文件的 ACL。
(/T就是修改当前以及在其目录下的所有子目录的相应文件权限,比如我建立了
c:\1\1.txt
c:\1\2\1.txt
c:\1\2\2.txt
三个文件,如果我用cacls c:\1\1.txt /t /g:everyone:r,那么他的效果就如图2图3图4,本来我是处理的c:\1\1.txt,但是因为加了/t这个参数,在c:\1\目录下所有子目录下的1.txt权限就都被更改了。
)
图2 c:\1\1.txt
图3 c:\1\2\1.txt
图4 c:\1\2\2.txt
/E 编辑 ACL 而不替换。
(这个/E对于我来说有点咬文嚼字了,编辑,而不替换,什么意思呢就是说,比如c:\test.txt的权限,如图5)
图5
大家都看到他的权限了吧,那么/e参数起什么作用呢?我们来修改下Administrator的权限。
命令是cacls c:\test.txt /e /p Administrator:r ,处理过的文件看图6
图6,和图5比较一下,因为有/e参数,他只是修改了Administrator的权限。
/C 在出现拒绝访问错误时继续。
(这个就好解释了,就是不管命令是否有错,都继续执行。就不加图做演示了。)
/G user:perm 赋予指定用户访问权限。
Perm 可以是: R 读取
W 写入
C 更改(写入)
F 完全控制
(/G呢就是给指定用户访问权限,而且会删除该文件上其他用户的所有权限,比如我那个更改HOSTS文件
权限的命令吧,就是/g everyone:r 用了这个命令,就会把hosts文件上的所有用户只替换成你指定的用户
权限,并把其他用户全部删除。那么看下演示,还是c:\test.txt,先看下它没经过/g处理的时候,如图7)
图7 c:\test.txt没经过/G参数处理时候的图。
再看图8,是用/G参数处理过的,处理命令为echo y|cacls c:\test.txt /g Administrator:r
图8,用echo y|cacls c:\test.txt /g Administrator:r命令处理过的效果。
用图8和图7一对比,知道/g参数的作用了否???
/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
(/R我的理解就是删除文件上指定用户的权限,你写哪个用户,哪个用户的权限就会删除,同时必须有/E参数)
看图说明吧,还是图比较直观,先看c:\test1.txt文件原来有的权限。如图9
图9
那么我们用命令cacls c:\test1.txt /e /r system命令处理一下,把system用户权限给删除。看图10
图10,用命令cacls c:\test1.txt /e /r system把SYSTEM用户权限给删掉了。和图9比一下 。也就理解了。那如果我是用命令cacls c:\test1.txt /e /r Administrator呢?界于/R参数的关系 ,那就Administrator的用户权限也没有了呗!
/P user:perm 替换指定用户的访问权限。
Perm 可以是: N 无
R 读取
W 写入
C 更改(写入)
F 完全控制
(/P就是把原来的所用用户权限都改为你命令中输入的权限,比如你看图11,一共有3个用户权限)
图11
主要是看现在Administrator的权限,是所有权限,那么我们用命令
echo y|cacls c:\test1.txt /p Administrator:r,把test1.txt文件改为只有
Administrator有读取权限。看图12
明白了吧,替换就是把所有的权限都替换成你命令里的权限,如果加了/E参数的话 ,那其他2个用户的权限就不会没有,而Administrator一样会被改为只有读取权限。我就不再做说明了。大家可以测试下。
命令是cacls 文件 /e /p 用户名:r,用这个命令处理过一个文件后,你会发现他原来的用户权限都在。
但是你命令中的用户名权限 就会被改为只有读取权限了。
/D user 拒绝指定用户的访问。在命令中可以使用通配符指定多个文件。也可以在命令中指定多个用户。
(/D嘛,看CMD的说明就知道了。就是拒绝指定用户的访问了。。再来个图片说明,看图13 c:\test2.txt文件的原有权限。)
图13。他的Administrator目前是所有权限。
那我们用命令echo y|cacls c:\test2.txt /e /d Administrator处理下。
看图14,然后再和图13比一下 。我们会发现Administrator的权限都变成拒绝了,且文件不可访问。
图14
大概就是这些意思吧,可能其中的某些参数没有演示到位,或者有些词不搭意,但是我想不懂的人看过之后至少能明白一些,其中的命令配合大家自行研究一下,其实我对批处理也只是一知半解,但是我这个人遇到问题后就喜欢把问题写出来,做个简单的教程来同大家分享,因为我介绍的这些东西并不是什么高深内容,但是讲起来又很麻烦,所以就算是普及一下九年义务教育好了。高手别骂我,如果有什么错误请指正,同时没有诋毁任何人的意思。
缩写:
CI - 容器继承。
ACE 会由目录继承。
OI - 对象继承。
ACE 会由文件继承。
IO - 只继承。
ACE 不适用于当前文件/目录。