XCACLS.EXE命令允许你从命令行设置像在文件管理器或资源管理器中容易理解的所有文件系统安全选项。在出现XCACLS以前,从Windows NT命令行设置文件和目录访问权限的标准方法是使用CACLS。然而对于CACLS,它不可能设定像在文件管理器(在Windows NT 3.51或更高版本中)或资源管理器(在Windows NT 4.0平台上)中指定的详细访问权限。现在使用XCACLS,你可以从命令行查看或更改访问控制表(ACLs)。
XCACLS对于无人值守安装Windows NT工作站或Windows NT服务器特别有用。这个工具允许你在安装过操作系统的目录上设置初始的访问权限。你也可以在分发软件到服务器和工作站上时使用XCACLS保护目录或文件,以防被用户删除。
你可以从命令行运行XCACLS。你也可以用以下方法运行XCALCS:
• 在Windows NT 4.0平台上,单击“开始”,单击“运行”,输入“xcacls”,然后单击“确定”。
• 在Windows NT3.51版本中,在程序管理器中,在“文件”菜单上单击“运行”,输入“xcacls”,然后单击“确定”。
下面描述XCACLS参数和包括一些用法概要。
假如你不带任何参数运行XCACLS,屏幕上将显示下面的语法(部分英文已经被翻译成中文):
显示或更改文件的访问控制表(ACLs)
XCACLS filename [/T] [/E] [/C] [/G user:perm;spec] [/R user [...]]
[/P user:perm;spec [...]] [/D user [...]] [/Y]
filename 显示文件或指定文件的访问控制表ACL。
/T 在当前目录及所有子目录下改变指定文件的ACL。
/E 编辑ACL,但不替换。
/C 继续更改ACL,并忽略错误。
/G user:perm;spec 将访问权授予指定用户。
Perm 可以是:r 读取
c 更改(写)
f 完全控制
P 更改权限(特殊访问)
O 取得所有权(特殊访问)
X 执行(特殊访问)
E 读取(特殊访问)
W 写入(特殊访问)
D 删除(特殊访问)
Spec可以与perm相同并且仅被应用到目录。在这种情况下,这个目录中Perm将被作为文件继承。如果没有忽略这个参数,Spec=Perm。对Spec仅有的指定值:
T 不指定(对于文件继承,仅对目录有效);至少一个访问权限可以产生!在“;”和“T”之间的输入将被忽略!
/R user 废除指定用户的访问权限。
/P user:perm;spec 还原指定用户的访问权。访问权限请参照/G选项
/D user 拒绝指定用户的访问。
/Y 替换用户访问权限时不需要确认。
在一个命令行中通配符通常被用于指定多于一个文件的情况。你可以在一条命令中指定多个用户。你可以组合访问权限。
下面表格列举和描述了所有的XCACLS 参数。
参数 描述
filename 将要被应用访问控制表(ACL)或访问控制项(ACE)的文件名或目录名。可以使用全部的标准通配符。
/T 替换当前目录和所有的子目录,应用这个选定的访问权限到匹配的文件和(或)目录。
/E 编辑但不替换ACL。假如你使用下面的命令行:
XCACLS test.dat /G Administrator:F
仅“Administrator”可以访问TEST.DAT。将失去所有之前应用的ACE。
/C 出现“拒绝访问”的错误时仍继续执行XCACLS。如果未指定/C,出现错误时XCACLS会停止运行。
/G user:perm;spec 允许用户访问匹配的文件或目录。Perm用于描述选择性文件访问和选择性目录特殊访问权限。spec部分仅仅应用到目录。这个标志与资源管理器或文件管理器显示的不一致。不过,使用这个参数时用XCACLS比旧的CACLS脚本更好。对于各个文件(目录、指定文件访问和指定目录访问)的这个访问选项是完全相同的。关于这个选项更加详细的解释,请查阅Windows NT 操作系统文档。
但是对于目录,这可能设置ACE到目录自身而没有自动的指定ACE到在这个目录中创建的新文件。从命令行完成这个参数,分隔符“T”跟在“;”之后。所有在“;”和“T”之间指定的访问权限将被忽略。至少需要一个访问分隔符跟在“T”之后。这意味着仅目录的ACE被创建。所有其它也可以在资源管理器或文件管理器中设置的选项,是所有可能基本访问权限组合的子集。因此,这儿没有目录列表或读取权限的特殊选项。
/R user 撤销指定用户的所有访问权限。
/P user:perm;spec 替换用户的访问权限。perm和spec参数的用法与/G选项相同。一些示例将在下面的文档中给出。
/D user 指定用户拒绝访问文件或目录。
/Y 替换用户访问权限时不需要确认。默认情况下CACLS会提出确认信息。因为这之前,在批处理程序中使用CACLS时,程序在接受正确的回答之前会暂停。使用/Y选项可以避免这个确认信息,因此XCACLS可以用于批处理命令中。
XCACLS *.* /G administrator:RW /Y
这个命令替换当前目录中所有文件和目录的ACL,不更改任何子目录,并且没有确认信息。
XCACLS *.* /G TestUser:RWED;RW /E
这个命令编辑一个文件或目录的ACL,但对一个目录的影响不同。对于在这个目录中创建的新文件也会从这个添加到目录的ACE继承ACE 。
在这个例子中,命令给TestUser用户在这个目录中创建的文件有读取、写入、执行和删除权限。但仅有读取和写入这个目录的权限。
XCACLS *.* /G TestUser:R;TRW /E
这个命令给一个目录读取和写入权限,但对新文件没有继承这个权限。因此,在这个例子中,在这个目录中创建的新文件没有TestUser用户的ACE。对于已经存在的文件,读取权限的ACE 被创建。
XCACLS仅在Intel x86平台上可用。
从包含Windows NT资源开发工具CD中的SETUP.EXE安装XCACLES.EXE到选定硬盘驱动器的%NTRESKIT%目录。不需要进一步的安装,并且仅需要XCACLS.EXE文件。