cacls实例教程

来源:百度文库 编辑:神马文学网 时间:2024/04/29 04:18:15

cacls的用法,我再具体写一下了,要么以后又该忘了。虽然cmd下help了一下。不过理解透。。。

我想看完这个cacls教程,再笨的人也能理解透彻cacls是个什么玩意了。

以下是cmd下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 不适用于当前文件/目录。