ACL是Access Control Lists 的缩写,可理解为"存取控制表",ACL是windows2000&NT系统中,活动目录对象安全描述符的一部分,每个活动目录对象的安全描述符都由4部分构成:对象的创建者、对象所属的组、自由存取控制和系统存取控制。其中自由存取控制实际是归在ACL中的,ACL主要是决定活动目录对象的许可权限.而系统存取控制则主要是审核活动目录对象的许可权限.通俗说,好比社会上的许可证管理:有负责发放许可证的部门,还有负责审核许可证(权限)的部门.Acldiag就是在些机制出了问题之后,如何进行诊断和维修的工具.
这仍是一个命令行的工具,功能就是诊断活动目录对象的许可权问题.它从"存取控制表"中读取安全属性信息,并以易于理解的格式写入一个文本文件中,这些所谓的安全属性信息有:详细的权限描述、使用者和组等等,这个文本文件也可以作为上传的报告.
使用Acldiag可以完成的任务有:
1.在默认规划中,比较ACL目录服务对象定义的许可权限.
2.进行检查或维护,使用模板,执行标准授权.
3.对某个指定的使用者或组,或是对所有使用者和所有的组,得到它(或它们)有效的许可权限,并在ACL中显示出来.
使用AclDiag工具仅仅能显示出对象的许可权和用户权限.却不能显示其它诸如组策略之类的相应的信息,这主要是因为组策略是虚拟对象,而对虚拟对象的名字,这个工具不能使用它们.
二、AclDiag的语法:
acldiag "ObjectDN" [/chkdeleg] [/fixdeleg] [/geteffective:{User | Group}] [/schema] [/skip] [/tdo]
参数及说明:
ObjectDN
所指定活动目录对象的正确的名字,在命令行中使用这个参数时,活动目录对象名字必须使用引号.
/chkdeleg
检查对象的委托及授权的安全性能.
/fixdeleg
用控制向导的委托,检测或维护所有将要使用对象的授权.
/geteffective:{user | group}
以可读取的格式,打印输出指定用户或指定(工作)组关于许可权限方面的信息.
/schema
检查包括默认规划内的对象是否安全.
/skip
不显示(跳过)安全描述符..
/tdo
当需要将相关的资料进行保存时,以系统规定的表格格式或其它"可读取"的格式将信息资料写进文件中去.在windows2000或windowsNT中,为了统一标准和便于处理,微软公司专门规定有一套各种信息资料的填写样式,即所谓"电子表格"(不是我们通常说的Exce).
像验证其它工具一样,我在命令行窗口中实际执行了一下acldiag/?,得到程序提示的帮助信息,两下对比发现,帮助文档文档中介绍的内容和提示信息内容还是一致的.至于每个项目的结果,限于时间和条件,没有进行更为深入细致的研究.倒是帮助文档中介绍了一个实际诊断的例子:这个例子是诊断microsoft.com 域中,显示所有默认规划内的访问权限,其命令和参数如下:
C:\>acldiag "DC=microsoft,DC=com" /schema
三、诊断输出信息释义
要确定系统的问题,不但要进行诊断,还要能看懂诊断工具所输出的信息含义.对这个工具来说,诊断信息中关键的部分如下:
仍以上面介绍的诊断为范本.先执行:
acldiag "DC=microsoft,DC=com"
执行之后,得到的屏幕输出不仅是英文,而且很长,所以不便附在这里.我仔细阅读后,觉得主要项目有以下几个方面:
1.列出是对哪个系统进行的诊断.相当于医生在病历单上所填写的患者姓名.
2.对象的描述:拥有者: {用户 |组}
3.许可权限:分四种:拒绝、允许、用户、组(团体),只能是其中之一
4.许可权限的继承关系:对象的许可权限允许从其父辈继承过来,或者说当前对象的权限也允许其子对象继承,所继承的权限也在上述四种之内.
5.权限审核:这也就是我们上面提到的部分了.许可权限的审核的结果只有两种:成功和失败.对许可权限的审核也包括所继承部分.
6.默认规划:如果仍以上面的诊断为范本,则默认规划的诊断命令是: acldiag "DC=microsoft,DC=com" /schema
结果分为三种:现有部分、不存在、局部.
7.授权模板:命令形式是:acldiag "DC=microsoft,DC=com" /chkdeleg
其输出如下:
状态: {OK | NOT PRESENT/MISCONFIGURED}
对象是否使用: {YES | NO}
是否继承 : {YES | NO}
竖线两侧的状态只能选其中之一.
8.有效权限:命令行形式是:
acldiag "DC=microsoft,DC=com" /geteffective:{User | Group}
输出结果如下:
{User | Group} 1:
Can Read {All | PropertyList} properties. (via Group membership)
Can Write {All | PropertyList} properties. (via Group membership)
Can Create {All | ObjectList} objects. (via Group membership)
Can Delete {All | ObjectList} objects. (via Group membership)
Can Delete this object. (via Group membership)
Can Delete entire subtree. (via Group membership)
Can List subobjects. (via Group membership)
Can Read permissions. (via Group membership)
Can Modify permissions. (via Group membership)
Can Take/Change ownership. (via Group membership)
这些是有效权限信息,大括号中是可选项,也是竖线两侧的状态只能选其中之一.权限的属性有:可读取、可写、可建立、可删除、可删除某指定对象、可删除整个对象、可删除子对象、、可列出子对象、可读取许可权限、可修改许可权限、可取得/改变所有权.后面括号中的信息是指:通过组成员资格(审核).
文章来源于领测软件测试网 https://www.ltesting.net/