现在越来越多的用户使用NTFS文件系统来增强 Windows 系统的安全性。通常是在图形用户界面(GUI)的“安全”选项卡中对文件或目录访问控制权限进行设置。还有一种设置方式大家可能很少使用,这就是Cacls命令。虽然它是一个基于命令行的命令,使用起来有点繁琐,但只要你合理利用,也会在提高系统安全性方面起到很好的效果。Cacls命令使用格式如下:
   Cacls 200469123250.htm [/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——替换指定用户的访问权限;
/D user——拒绝指定用户的访问。

   1.查看目录和ACL
   以
Windows XP系统为例,笔者使用Cacls命令查看E盘CCE目录访问控制权限。点击“开始→运行”,在运行对话框中输入“C_blank> MD ”命令,弹出命令提示符对话框,在“E:\>”提示符下输入“Cacls CCE”命令,接着就会列出 Windows XP系统中用户组和用户对CCE目录的访问控制权限项目。如果想查看CCE目录中所有文件访问控制权限,输入“Cacls cce\ . ”命令即可。

   2.修改目录和ACL
  设置用户访问权限:我们经常要修改目录和文件的访问权限,使用Cacls命令就很容易做到。下面要赋予本机用户Chenfeng对E盘下CCE目录及其所有子目录中的文件有完全控制权限。在命令提示符对话框中输入“Cacls CCE /t /e /c /g Chenfeng:f ”命令即可。
   替换用户访问权限:将本机用户Chenfeng的完全控制权限替换为只读权限。在命令提示符对话框中输入“ Cacls CCE /t /e /c /p Chenfeng:r ”命令即可。
   撤销用户访问权限:要想撤销本机用户Chenfeng对该目录的完全控制权限也很容易,在命令提示符中运行“Cacls CCE /t /e /c /r Chenfeng ”即可。拒绝用户访问:要想拒绝用户Chenfeng访问CCE目录及其所有子目录中的文件,运行“Cacls CCE /t /e /c /d Chenfeng”即可。
   以上只是简单介绍Cacls命令的使用,建议大家亲自尝试一下,你会发现它还有很多奇妙的功能。

随着Windows XP/Server 2003的流行,越来越多的用户开始选择NTFS文件系统,NTFS的好处自然是大大增强了系统的安全性,在“安全”标签页下,我们可以在这里为不同级别的用户设置相应的访问控制权限,包括完全控制、修改、读取和运行、列出文件夹目录、读取、写入、特别的权限等,你只需要在“允许”和“拒绝”下简单勾选即可,点击“高级”按钮还可以设置更多的特殊权限,这里就不多说了。
  其实,除了在图形用户界面下对文件或文件夹的访问控制权限进行设置外,我们还可以在命令行方式下完成这项工作,这在由于某些原因无法进入图形用户界面时特别实用,虽然使用时有些麻烦,但却可以救急。
  一、使用Cacls.exe命令
  这是一个在Windows 2000/XP/Server 2003操作系统下都可以使用的命令,作用是显示或者修改文件的访问控制表,在命令中可以使用通配符指定多个文件,也可以在命令中指定多个用户。命令语法如下:  
  Cacls filename [/T] [/E] [/C] [/G usererm] [/R user [...]] [/P usererm [...]] [/D user [...]]  
  Filename:显示访问控制列表(以下简称ACL)  
  /T:更改当前目录及其所有子目录中指定文件的ACL  
  /E:编辑ACL而不替换  
  /C:在出现拒绝访问错误时继续    
  /G Userer:perm:赋予指定用户访问权限,Perm代表不同级别的访问权限,其值可以是R(读取)、W(写入)、C(更改,写入)、F(完全控制)等。  
  /R user:撤销指定用户的访问权限,注意该参数仅在与“/E”一起使用时有效。  
  /P user:perm:替换指定用户的访问权限,perm的含义同前,但增加了“N(无)”的选项。

  /D user:拒绝指定用户的访问。
  实例一:查看文件夹的访问控制权限
  例如,这里我们希望查看h: emp文件夹的访问控制权限,那么只需要在“开始→运行”对话框或切换到命令提示符模式下,键入如下命令:Cacls h: emp
  此时,我们会看到所有用户组和用户对h: emp文件夹的访问控制权限项目,这里的CI表示ACE会由目录继承,OI表示ACE会由文件继承,IO表示ACI不适用于当前文件或目录,每行末尾的字母表示控制权限,例如F表示完全控制,C表示更改,W表示写入。
  如果你希望查看该文件夹中所有文件(包括子文件夹中的文件)的访问控制权限,可以键入“Cacls h: emp .”命令。
  实例二:修改文件夹的访问控制权限
  假如你希望给予本地用户wzj9999完全控制h: emp文件夹及子文件夹中所有文件的访问权限,只需要键入如下命令:   
  Cacls h: emp /t /e /c /g wzj9999:f
  这里的“/t”表示修改文件夹及子文件夹中所有文件的ACL,“/e”表示仅做编辑工作而不替换,“/c”表示在出现拒绝访问错误时继续,而“/g wzj9999:f”表示给予本地用户wzj9999以完全控制的权限,这里的“f”代表完全控制,如果只是希望给予读取权限,那么应当是“r”。
  实例三:撤销用户的访问控制权限
  如果你希望撤销wzj9999用户对h: emp文件夹及其子文件夹的访问控制权限,可以键入如下命令:
  cacls h: emp /t /e /c /r wzj9999
  如果只是拒绝用户的访问,那么可以键入如下命令:
  cacls h: emp /t /e /c /d wzj9999
  二、使用增强工具xcals.exe
  在windows 2000资源工具包中,微软还提供了一个名为xcacls.exe的文件控制权限修改工具,其
功能较cacls.exe更为强大,可以通过命令行设置所有可以在windows资源管理器中访问到的文件系统安全选项,我们可以从
[url]http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/xcacls-o.asp[/url] 下载,安装后即可使用。

  xcacls.exe命令的语法和参数与cacls.exe基本相同,但不同的是它通过显示和修改文件的访问控制列表(acl)执行此操作。在“/g”参数后除保持原有的perm权限外,还增加了spec(特殊访问权限)的选项,另外还增加了“/y”的参数,表示禁止在替换用户访问权限时出现确认提示,而默认情况下,cacls.exe是要求确认的,这样在批处理中调用cacls.exe命令时,程序将停止响应并等待输入正确的答案,引入“/y”参数后将可以取消此确认,这样我们就可以在批处理中使用xcacls.exe命令了。
  实例一:查看文件或文件夹的权限
  在“开始→运行”对话框或切换到命令提示符模式下,注意请事先将“c:program files esource kit”添加到“系统属性→高级→环境变量→系统变量”中,或者通过cd命令将其设置为当前路径,否则会提示找不到文件,然后键入如下命令:
  xcacls h: emp
  此时,可以查看到所有用户组或用户对h: emp文件夹的访问控制权限,io表示此ace不应用于当前对象,ci表示从属窗口将继承此ace,oi表示从属文件将继承该ace,np表示从属对象不继续传播继承的ace,而每行末尾的字母表示不同级别的权限,例如f表示完全控制,c表示更改,w表示写入。
  实例二:替换文件夹中的acl而不确认
  xcacls h: emp /g administrator:rw/y
  以上命令将替换h: emp文件夹中所有文件和文件夹的acl,而不扫描子文件夹,也不会要求用户确认。
  实例三:赋予某用户对文件夹的控制权限
  xcacls h: emp /g wzj9999:rwed;rw /e
  以上命令将赋予用户wzj9999对h: emp文件夹中所有新建文件的读取、写入、运行和删除权限,但需要说明的是,这条命令只是赋予了用户对文件夹本身的读写权限,而不包括子文件夹下的文件。

  对普通用户来说,cals.exe和xcacls.exe的作用可能不是那么明显,这在windows 2000/xp/server 2003的无人值守安装中特别有用,管理员可以为操作系统所在的文件夹设置初始访问权限;在将软件分发到服务器或工作站时,还可以借助xcacls.exe提供单步保护,以防止用户误删除文件夹或文件。