Win2000中安全模版中ACL的格式浅析

Win2000中安全模版中ACL的格式浅析
Batman
本文主要介绍NT系统中ACL(访问控制列表)的用法和变量的说明,在NTFS的分区上,
ACL是用来控制对象的访问权限或对象的审核机制的一个控制列表,由于NT一般的图形
模式,导致了许多人对其具体格式的不了解,以下的内容和语法说明大部分来自SDK中
的头文件说明,只不过我是把他们整理后归纳在一起,这样方便对ACL的具体意义进行
理解。
安全模版中文件系统ACL的格式(注:以下为Windows 2000新版本的安全模版格式)
语法格式:

"<文件名>",<对象定义>,"<拥有者><应用范围>(ACL设置;;;组/用户名)"

<对象定义> 取值范围 = 0,1 或 2:
0 = 配置这个文件夹,向所有的子文件夹或文件传播继承权限
1 = 忽略 - 不允许替换这个文件或文件夹上的权限
2 = 替换 - 替换所有带继承权限的子文件夹和文件上的先存权限

<拥有者> 取值为O:组名
表示是系统中哪个账号为该资源的所有者,所有者代码见下面的组名
<应用范围> :
D: = 表示权限不仅用于该实体,来自父系的可继承权限传播给该对象
D:P = 表示权限仅仅用于该实体,来自父系的可继承权限将不传播给该对象
S: = 表示对对象进行审核,来自父系的可继承权限传播给该对象
S:P = 表示对对象进行审核,来自父系的可继承权限将不传播给该对象

(ACL设置;;;组/用户名):
ACL设置 = 说明将要执行的是什么样的权限设置,或者是对哪些类型的事件进行审核,
其中权限设置或审核是由上面的<应用范围>来决定的。
OI = object inherit 表示由对象而非容器来继承的ace,例如NT系统中的文件对象(注:目录本身为一对象)
CI = container inherit 表示由容器来继承的ace,例如NT系统中的目录
NPI = no propagate inherit 表示不传播继承的ace
IO = inherit only 表示只继承,表示ace,例如一个目录不包括本身的其它对象
ID = inherited 表示被继承的ace
SA = successful access 表示成功的ace标志
FA = failed acess 表示失败的ace标志

acl mask为访问掩码控制,这是一个32 bit的变量,它用来定义acl中的
读、写、修改、删除等特殊权限的,它每一位(按顺序)的意义如下:

FILE_READ_DATA 文件或管道读数据
FILE_WRITE_DATA 文件或管道写数据
FILE_APPEND 文件可追加
FILE_READ_EA 文件或目录的读扩展属性
FILE_WRITE_EA 文件或目录的写扩展属性
FILE_EXECUTE 文件的可执行
FILE_DELETE_CHILD 目录的可删除子目录或文件
FILE_READ_ATTRIBUTES 文件、管道、目录的读属性
FILE_WRITE_ATTRIBUTES 文件、管道、目录的写属性
DELETE_ACCESS 删除对象的权限
READ_CONTROL_ACCESS 读取对象安全描述,但不包括SACL中的信息
WRITE_DAC_ACCESS 写DACL中的信息权限
WRITE_OWNER_ACCESS 获取对象安全描述所属身份的权限
SYNCHRONIZE_ACCESS 同步对象的权限,设置该权限后,线程会锁定该对象

组名 = 表示是对什么组进行权限设置,一下是常见的一些组:

DA = Domain Admins
LA = 本地Administrators组
WD = Everyone组
AU = Authenticated Users
SY = System
CO = Creator/Owner
PU = Power Users
BO = Backup Operators
IU = Interactive User
RP = Replicator
AG = Guests
LG = Guests

用户名 = 其实是用户的SID号或组账号
根据上面的例子,来分析下面一个ACL设置:

"%SystemRoot%",2,"D:P(A;CIOI;0x001f01ff;;;WD)"
"%SystemRoot%/explorer.exe",2,"D:(A;CIOI;0x001f01ff;;;WD)S:(SA;CIOIFA;0x001f01ff;;;WD)"
首先是对资源 %systemroot%这个目录进行acl设置,这个目录一般是c:/winnt
然后可以看到2,表示新的规则将替换老的规则,再其后是D,表示是进行权限设置
再其后是P,表示来自父系的可继承权限将不传播给该对象。
然后紧随其后的是ACL设置,我按照上面的说明解释如下:
(A;CIOI;0x001f01ff;;;WD)其中的每个字段之间用;号隔开
其中CIOI是表示该文件夹、子文件夹以及文件
然后0x001f01ff为acl掩码,它的意义为
0x001f01ff 0000 0000 0001 1111 0000 0001 1111 1111
FILE_READ_DATA 0000 0000 0000 0000 0000 0000 0000 0001
FILE_WRITE_DATA 0000 0000 0000 0000 0000 0000 0000 0010
FILE_APPEND 0000 0000 0000 0000 0000 0000 0000 0100
FILE_READ_EA 0000 0000 0000 0000 0000 0000 0000 1000
FILE_WRITE_EA 0000 0000 0000 0000 0000 0000 0001 0000
FILE_EXECUTE 0000 0000 0000 0000 0000 0000 0010 0000
FILE_DELETE_CHILD 0000 0000 0000 0000 0000 0000 0100 0000
FILE_READ_ATTRIBUTES 0000 0000 0000 0000 0000 0000 1000 0000
FILE_WRITE_ATTRIBUTES 0000 0000 0000 0000 0000 0001 0000 0000
DELETE_ACCESS 0000 0000 0000 0001 0000 0000 0000 0000
READ_CONTROL_ACCESS 0000 0000 0000 0010 0000 0000 0000 0000
WRITE_DAC_ACCESS 0000 0000 0000 0100 0000 0000 0000 0000
WRITE_OWNER_ACCESS 0000 0000 0000 1000 0000 0000 0000 0000
SYNCHRONIZE_ACCESS 0000 0000 0001 0000 0000 0000 0000 0000

以上所有位向或运算
0x001f01ff表示所有特权
然后的WD表示是Everyone组成员
大家可以自己根据以上的规则对第二个ACL进行分析。
Batman
草于2001年2月27号

以上转自http://www.20cn.net/ns/wz/sys/data/20010316011418.htm

我在2003下测试,格式基本相同,只是似乎又增加了一些变量值,比如组名,我这里出现了BU,不知什么意思。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值