注册
 找回密码
 注册
江西广告网
查看: 283|回复: 0
打印 上一主题 下一主题

2000命令行下权限的设置

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2008-12-14 11:27:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
<br>  在2000下用图形方式设置权限简单、易用,查看也很直观,但是针对大批量文件和目录的设置或者是需要一些特殊的设置的时候命令行下的工具的优势就体现出来了。 <br>  2000下面自带了Cacls工具,在Resource Kit里面又增加了Xcacls,Xcacls是针对Cacls的一个增强工具,用来对文件和目录的NTFS权限进行设置。对比和Cacls的功能来说,显著的有增加了/Y的参数,这个用来设置对提问的开关,也就是说如果加上/Y的话遇到问题按照肯定的去做,这个在Cacls里面实现还是比较麻烦的,echo y| cacls filename /g username : permission ,注意:不要在"y"和(|)之间有空格。还有就是权限的参数更多,还有一些特殊的权限设置。特别是针对无人值守的安装,可以设置初始的操作系统文件夹的访问权限,当你发布软件的时候,可以对用户的文件夹和文件进行保护,防止用户删除。 <br>  <br>  Cacls的用法参见Windows下面的帮助。下面介绍一下在Xcacls里面添加的新功能。 <br>  基本语法是:xcacls file name [/T] [/E] [/C] [/G user:perm;spec ] [/R user] [/P user:perm;spec ][...] [/D user ][...] [/Y] <br>  <br>  /G user:perm;spec 指定用户对文件和文件夹的访问权限,这个比起Cacls来说增加和对目录的操作并增加了参数的种类。 <br>  Perm (permission):对指定的文件设定权限。包含以下参数: <br>  R Read <br>  C Change (write) <br>  F Full Control <br>  P Change Permissions (special access) <br>  O Take Ownership (special access) <br>  X EXecute (special access) <br>  E REad (Special access) <br>  W Write (Special access) <br>  D Delete (Special access) <br>  <br>  Spec(special access):可以使用上面带有(Special access)的参数,只针对目录,还有一个附加参数 T,目的是对在创建的目录下面的新建立的文件不起作用。 <br>  <br>  /R user 废除指定用户的所有访问权限。 <br>  <br>  /Y 对提示的问题采取肯定的答复 <br>  <br>  <br>  现在马上实践一下,使用Xcacls.exe查看一下2000安装目录的权限,输入xcacls d:\winnt显示结果如下: <br>  <br>  d:\WINNT BUILTIN\AdministratorsOI)(CI)F <br>   CREATOR OWNEROI)(CI)(IO)F <br>  NT AUTHORITY\SYSTEMOI)(CI)F <br>    BUILTIN\Users:(OI)(CI)R     <br>          BUILTIN\Users:(CI)(special access <br>                            SYNCHRONIZE <br>                            FILE_WRITE_DATA <br>                            FILE_APPEND_DATA <br>  <br>          BUILTIN\Administrators:F <br>          BUILTIN\Administrators:(OI)(CI)(IO)F <br>          NT AUTHORITY\SYSTEM:F <br>          NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F <br>          CREATOR OWNER:(OI)(CI)(IO)F <br>          BUILTIN\Users:R <br>          BUILTIN\Users:(OI)(CI)(IO)(special access <br>                                    GENERIC_READ <br>                                    GENERIC_EXECUTE <br>  <br>          BUILTIN\Users:(CI)(special access <br>                            FILE_APPEND_DATA <br>  <br>          BUILTIN\Users:(CI)(special access:) <br>                            FILE_WRITE_DATA <br>  <br>  大部分权限大家都可以看明白,但是有一些括号内的标记的意思不是很清楚,这些其实是ACL 标记,主要分为两类,首先显示的文件的继承权限,接下来显示的是目录的继承权限: <br>  <br>  一、文件权限: <br>   OI = MSG_CACLS_OBJECT_INHERIT <br>   目前不存在的,也就是说新建立的对象继承权限。 <br>   IO = MSG_CACLS_INHERIT_ONLY <br>     包括的对象容器的文件不接受,但是目前存在的对象继承权限。通常OI和IO都显示,也就是说不论是目前已经存在的还是今后创建的包括目录下面的文件等都使用该权限。 <br>  <br>  二、目录权限: <br>   CI = MSG_CACLS_CONTAINER_INHERIT <br>   包含的对象继承ACE,比如目录。 <br>   NP = MSG_CACLS_NO_PROPAGATE_INHERIT <br>   下一级将不再向下传播 <br>  <br>    现在上面的语句代表的意思就看明白了。 <br>  比如第二行CREATOR OWNER:(OI)(CI)(IO)F <br>  说明CREATOR OWNER对此目录的存在以及新建的文件和下面的目录有完全控制的权限。 <br>  <br>     下面举几个典型的例子。 <br>  <br>  1、cacls %systemroot%\system32\cmd.exe /e /d guests <br>     编辑系统目录下的CMD的权限为Guests不能访问。 <br>  <br>  2、XCACLS *.* /G test:RW /Y <br>  替换当前目录下所有的文件和文件夹为test用户可读、可写,并且对提问的问题表示肯定的答复。 <br>  <br>  3、XCACLS *.* /G everyone:F /t /y <br>   更改所有的目录及其包含文件的权限为Everyone完全控制,/t的意思为更改当前目录和所有子目录中指定文件的 ACL,注意他的意思是替换为,而不是在原有的基础上进行编辑,如果想保留原有的则选择参数/e。 <br>  <br>  4、 XCACLS *.* /G Test:RWED;RW /E <br>  给予Test用户对此目录的新创建的文件以读取、写入、运行和删除的权限,但是针对目录本身只有读取和写入的权限。 <br>  当你在一个目录下面执行该命令的时候,发现该目录下面已经存在的文件的权限会被替换为读取、写入、运行和删除的权限,但是新建的文件则没有这些权限,但是对这个在该目录下面的子目录及其里面的文件则正好相反,原来已经存在的文件的权限不会被更改,而新创建文件则会为读取、写入、运行和删除的权限,目录也是如此。所以说这个命令其实确切的说是针对执行命令所在目录下面的目录及其包含文件起到作用。 <br>  另外该命令会替换执行命令本身目录为读取、写入、运行和删除的权限。 <br>  <br>  5、 XCACLS *.* /G Test:RWED;TRW /E <br>  这个和上面的例子里面的类似,但是有些小的差别,就是在“;”后面加了一个“T”参数,执行后基本和上面的功能类似,但是当在下面的目录里面创建文件的时候,对新创建的文件的权限将不会生效,也就是说仍旧会保存原有的权限。 <br>  这个“T”参数必须放在语法的“spec”处,只能针对目录起到作用,后面至少要跟一个参数。 <br>  怎么样,用cacls和Xcacls还是很方便的吧,在针对大量的目录和文件进行操作的时候也以大大的节约时间,实在江西广告网芾碓钡母R舭
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表