现代教育技术>>本期导读

    利用Cacls命令简化访问权限设置 [浙江科技工程学校    曹融 罗坚]


    我校配有10多个计算机教室,这些机房均安装了Windows2000操作系统,硬盘分区的文件格式为NTFS。为了增强机房的安全性,我们利用在NTFS分区上系统提供的文件级的安全访问控制,对机房用户访问硬盘文件的权限进行设置。具体思路如下:在每台计算机中设立10个左右的用户账号,然后给每个班级分配一个账号,班内学生使用同一个账号登录各自规定的计算机,每个用户只能对指定给该用户的文件夹进行浏览和修改,对系统盘的访问权限按最小化原则进行设置。这样,用户就不能随意对系统盘的重要文件进行删改操作;另外,即使有黑客和计算机病毒试图攻击计算机系统软件,也由于当前用户的权限很低而无法删改计算机系统文件,使潜在的威胁降到最低程度。
    这种方法对于机房计算机的管理有很大的好处:一方面使计算机系统的稳定性大大提高,降低了网管工作强度;另一方面,由于限制了学生对其他同学文件的访问权限,避免了有意或无意地删除其他同学的文件的事件发生。但是这种方法也带来了一个问题:为每台计算机上的每个用户进行文件访问权限设置的工作量非常大。以1台计算机为例,每个用户至少要设置5个以上的硬盘或文件夹访问权限,设置1个硬盘或文件夹访问权限至少需要进行5步以上的操作,1台计算机有10多个用户,完成1台计算机设置少则要用5分钟,多则需要10多分钟。一个机房有50多台计算机,全校有10多个机房,可想而知这工作量有多繁重。那么,有没有办法实现对各个用户的文件访问权限进行批量设置呢?如果这个问题能解决,那对机房管理员来说无疑是一个福音。笔者经过查找资料与反复实践后发现,通过使用Windows2000自带的命令行中的Cacls命令结合批处理文件,能够很方便地使原本繁复的工作变得轻松自在。
    一、关于Cacls命令
    这是一个在Windows2000/XP/Server 2003操作系统下都可以使用的命令。此命令要求硬盘的文件格式必须为NTFS格式,它的作用是显示或者修改文件的访问控制表。在此命令中可以使用通配符指定多个文件,也可以指定多个用户。此命令的语法如下:
    CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]] [/P user:perm [...]] [/D user [...]]
   filename 显示 ACL。
   /T 更改当前目录及其所有子目录中指定文件的 ACL。
    /E 编辑 ACL 而不替换。
    /C 在出现拒绝访问错误时继续。
    /G user:perm 赋予指定用户访问权限。
   Perm 可以是: R(读取);W(写入);C(更改、写入);F(完全控制)。
    /R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
    /P user:perm 替换指定用户的访问权限。
Perm 可以是: N(无);R(读取);W(写入);C(更改、写入);F(完全控制)。
    /D user 拒绝指定用户的访问。
    在命令中可以使用通配符指定多个文件,也可以指定多个用户。
    说明:ACL——访问控制列表;ACE——访问控制权限;CI——容器继承;ACE 会由目录继承;OI ——对象继承,ACE 会由文件继承;IO——只继承,ACE 不适用于当前文件/目录。
    那么究竟应该怎么使用此命令呢?下面我们来看几个实例。
    实例一:查看文件夹的访问权限
    我们希望查看D:\student\u01文件夹的访问控制权限,那么只需在命令行模式下键入如下命令:
    cacls D:\student\u01
    屏幕显示:
    d:\student\user01 BUILTIN\Administrators:(OI)(CI)F
    STUDENTS\u01:(OI)(CI)C
    此时,我们会看到所有用户组和用户对D:\student\u01文件夹的访问控制权限项目,例如F表示完全控制,C表示更改,W表示写入。
    实例二:修改文件夹的访问权限
    假如你希望给予本地用户u01完全控制D:\student\ u01文件夹及子文件夹中所有文件的访问权限,只需要输入如下命令:
    cacls D:\student\u01 /T /E /C /P u01:F
    这里的“/T”表示修改文件夹及子文件夹中所有文件的ACL;“/E”表示仅做编辑工作而不替换,也就是说对文件夹原有的权限设置不作替换;“/C”表示在出现拒绝访问错误时继续;而“/P u01:F”表示给予本地用户u01以完全控制的权限;“F”代表完全控制。如果只是希望给予本地用户u01读取权限,那么应当将“F”改为“R”。注意:在Cacls命令行中使用的参数必须要用大写字母,否则会造成命令行参数返回错误的信息。
    实例三:撤销用户的访问权限
    如果你希望撤销u01用户对D:\student\u01文件夹及其子文件夹的访问控制权限,可以输入如下命令:
    cacls D:\student\u01 /T /E /C /R u01
    二、Cacls命令在机房中的实际应用
    现以我校某机房为例,说明通过使用Cacls命令进行文件夹与磁盘读写操作的设置。该机房共有计算机58台,每台计算机中都建有10个学生用户(分别为uxx,其中xx为从01到10的数字)和一个教师用户teacher。每个班级分配到一个账号,每台计算机分别有C、D、E三个逻辑分区,并且在E分区下建有stud文件夹,在此文件夹中建有10个子文件夹uxx(xx为从01到10的数字)。本学期将有8个班级在该机房上机,其中有3个班级要使用3DMAX软件,该软件要求对C分区拥有写的权限,也就是说使用这3个账号的用户要对C盘拥有写的权利,其余用户对C盘只给予读的权限。用户具体权限如下表所示(因u4-u10用户权限类似,表中只列出u01至u04用户的访问控制)。


    具体实现:
    1. 使用net users和net group建立Students用户组,u01-u10用户均属于为Students用户组,Teacher用户为“管理员”组。
    2. 根据上表各用户权限要求,使用文本编辑器编辑批处理文件,内容如下:
    cacls C:\ /T /E /C /P Administrators:F
    cacls D:\ /T /E /C /P Administrators:F
    cacls E:\ /T /E /C /P Administrators:F
    cacls C:\ /T /E /C /P Students:R
    cacls C:\ /T /E /C /P u01:W
    cacls C:\ /T /E /C /P u02:W
    cacls C:\ /T /E /C /P u03:W
    cacls D:\ /T /E /C /P Students:R
    cacls E:\ /T /E /C /P Students:R
    cacls E:\student /E /C /P Students:R
    cacls E:\student\u01/T /E /C /P u01:C
    cacls E:\student\u02/T /E /C /P u02:C
    cacls E:\student\u03/T /E /C /P u03:C
    cacls E:\student\u04/T /E /C /P u04:C
    ……
   (其他用户文件的访问权限以此类推。)
    3. 将批处理文件分发到每台计算机上并分别运行,每台计算机的用户访问权限就可以在瞬间设置完毕。原来要做一天的工作,现在只要几十分钟就可以全部完成了。
    综上所述,我们可以发现,利用命令行模式结合批处理命令,可以避免机房管理中大量的重复劳动。如果能够合理使用net user、net group、Cacls等Windows2000自带的命令行用户管理命令的话,无疑使得像建立用户、添加用户组、更改密码、设置文件访问权限等繁琐的工作变得非常轻松。□(技术编辑 蒋先华)
参考文献:
[1]刘晓辉.Windows9x\Me\2000\XP\2003 DOS命令实用技术详解[M].北京:人民邮电出版社,2005.4.
[2]曹融.利用NTFS的安全特性管理学生机房[J].职业技术教育,2003,(13).
[3]许峰飞.中文版Windows 2000入门与提高(2004技术增强版)——Windows应用技术系列[M].北京:中国电力出版社, 2004.9.

现代教育技术
搜索查询

请输入查询关键字:


投稿须知