(二)ACE 字符串
ACE字符串
安全描述符定义语言(SDDL)在安全描述符字符串的DACL和SACL组件中使用ACE字符串。 如“安全描述符字符串格式”示例所示,安全描述符字符串中的每个ACE都用括号括起来。 ACE的字段按以下顺序排列,并用分号(;)分隔
语法:ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid;(resource_attribute)
范围:
ace_type:ACE的类型
一个字符串,指示ACE_HEADER结构的AceType成员的值。 ACE类型字符串可以是Sddl.h中定义的以下字符串之一。
ACE 类型字符串 | Sddl.h中的常量 | Ace类型的值 |
"A" | SDDL_ACCESS_ALLOWED | ACCESS_ALLOWED_ACE_TYPE |
"D" | SDDL_ACCESS_DENIED | ACCESS_DENIED_ACE_TYPE |
"OA" | SDDL_OBJECT_ACCESS_ALLOWED | ACCESS_ALLOWED_OBJECT_ACE_TYPE |
"OD" | SDDL_OBJECT_ACCESS_DENIED | ACCESS_DENIED_OBJECT_ACE_TYPE |
"AU" | SDDL_AUDIT | SYSTEM_AUDIT_ACE_TYPE |
"AL" | SDDL_ALARM | SYSTEM_ALARM_ACE_TYPE |
"OU" | SDDL_OBJECT_AUDIT | SYSTEM_AUDIT_OBJECT_ACE_TYPE |
"OL" | SDDL_OBJECT_ALARM | SYSTEM_ALARM_OBJECT_ACE_TYPE |
"ML" | SDDL_MANDATORY_LABEL | SYSTEM_MANDATORY_LABEL_ACE_TYPE |
"XA" | SDDL_CALLBACK_ACCESS_ALLOWED | ACCESS_ALLOWED_CALLBACK_ACE_TYPEWindows Vista and Windows Server 2003: Not available. |
"XD" | SDDL_CALLBACK_ACCESS_DENIED | ACCESS_DENIED_CALLBACK_ACE_TYPEWindows Vista and Windows Server 2003: Not available. |
"RA" | SDDL_RESOURCE_ATTRIBUTE | SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPEWindows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista and Windows Server 2003: Not available. |
"SP" | SDDL_SCOPED_POLICY_ID | SYSTEM_SCOPED_POLICY_ID_ACE_TYPEWindows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista and Windows Server 2003: Not available. |
"XU" | SDDL_CALLBACK_AUDIT | SYSTEM_AUDIT_CALLBACK_ACE_TYPEWindows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista and Windows Server 2003: Not available. |
"ZA" | SDDL_CALLBACK_OBJECT_ACCESS_ALLOWED | ACCESS_ALLOWED_CALLBACK_ACE_TYPEWindows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista and Windows Server 2003: Not available. |
ace_flags标志位
一个字符串,指示ACE_HEADER
结构的AceFlags
成员的值。 ACE标志字符串可以是Sddl.h中定义的以下字符串的串联。
ACE 标志字符串 | Sddl.h中的常量 | Ace标志值 |
"CI" | SDDL_CONTAINER_INHERIT | CONTAINER_INHERIT_ACE |
"OI" | SDDL_OBJECT_INHERIT | OBJECT_INHERIT_ACE |
"NP" | SDDL_NO_PROPAGATE | NO_PROPAGATE_INHERIT_ACE |
"IO" | SDDL_INHERIT_ONLY | INHERIT_ONLY_ACE |
"ID" | SDDL_INHERITED | INHERITED_ACE |
"SA" | SDDL_AUDIT_SUCCESS | SUCCESSFUL_ACCESS_ACE_FLAG |
"FA" | SDDL_AUDIT_FAILURE | FAILED_ACCESS_ACE_FLAG |
一个字符串,指示ACE_HEADER
结构的AceFlags
成员的值。 ACE标志字符串可以是Sddl.h
中定义的以下字符串的串联。
rights:权限
一个字符串,指示由ACE控制的访问权限。该字符串可以是访问权限的十六进制字符串表示形式,例如“ 0x7800003F”,也可以是以下字符串的串联形式。
通用访问权限
访问权限字符串 | Sddl.h中的常量 | 访问权限值 |
"GA" | SDDL_GENERIC_ALL | GENERIC_ALL |
"GR" | SDDL_GENERIC_READ | GENERIC_READ |
"GW" | SDDL_GENERIC_WRITE | GENERIC_WRITE |
"GX" | SDDL_GENERIC_EXECUTE | GENERIC_EXECUTE |
标准访问权限
访问权限字符串 | Sddl.h中的常量 | 访问权限值 |
"RC" | SDDL_READ_CONTROL | READ_CONTROL |
"SD" | SDDL_STANDARD_DELETE | DELETE |
"WD" | SDDL_WRITE_DAC | WRITE_DAC |
"WO" | SDDL_WRITE_OWNER | WRITE_OWNER |
目录服务对象访问权限
访问权限字符串 | Sddl.h中的常量 | 访问权限值 |
"RP" | SDDL_READ_PROPERTY | ADS_RIGHT_DS_READ_PROP |
"WP" | SDDL_WRITE_PROPERTY | ADS_RIGHT_DS_WRITE_PROP |
"CC" | SDDL_CREATE_CHILD | ADS_RIGHT_DS_CREATE_CHILD |
"DC" | SDDL_DELETE_CHILD | ADS_RIGHT_DS_DELETE_CHILD |
"LC" | SDDL_LIST_CHILDREN | ADS_RIGHT_ACTRL_DS_LIST |
"SW" | SDDL_SELF_WRITE | ADS_RIGHT_DS_SELF |
"LO" | SDDL_LIST_OBJECT | ADS_RIGHT_DS_LIST_OBJECT |
"DT" | SDDL_DELETE_TREE | ADS_RIGHT_DS_DELETE_TREE |
"CR" | SDDL_CONTROL_ACCESS | ADS_RIGHT_DS_CONTROL_ACCESS |
档案存取权
访问权限字符串 | Sddl.h中的值 | 访问权限值 |
"FA" | SDDL_FILE_ALL | FILE_ALL_ACCESS |
"FR" | SDDL_FILE_READ | FILE_GENERIC_READ |
"FW" | SDDL_FILE_WRITE | FILE_GENERIC_WRITE |
"FX" | SDDL_FILE_EXECUTE | FILE_GENERIC_EXECUTE |
注册表项访问权限
访问权限字符串 | Sddl.h中的常量 | 访问权限值 |
"KA" | SDDL_KEY_ALL | KEY_ALL_ACCESS |
"KR" | SDDL_KEY_READ | KEY_READ |
"KW" | SDDL_KEY_WRITE | KEY_WRITE |
"KX" | SDDL_KEY_EXECUTE | KEY_EXECUTE |
强制性标签权利
访问权限字符串 | Sddl.h中的值 | 访问权限值 |
"NR" | SDDL_NO_READ_UP | SYSTEM_MANDATORY_LABEL_NO_READ_UP |
"NW" | SDDL_NO_WRITE_UP | SYSTEM_MANDATORY_LABEL_NO_WRITE_UP |
"NX" | SDDL_NO_EXECUTE_UP | SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP |
object_guid
GUID的字符串表示形式,它表示特定于对象的ACE结构(例如ACCESS_ALLOWED_OBJECT_ACE
)的ObjectType
成员的值。 GUID字符串使用UuidToString
函数返回的格式。
下表列出了一些常用的对象GUID。
Rights and GUID | Permission |
CR;ab721a53-1e2f-11d0-9819-00aa0040529b | Change password |
CR;00299570-246d-11d0-a768-00aa006e0529 | Reset password |
inherit_object_guid
GUID的字符串表示形式,它指示特定于对象的ACE结构的InheritedObjectType
成员的值。 GUID字符串使用UuidToString
格式。
account_sid
标识ACE受托者的SID字符串。
resource_attribute
可选: resource_attribute仅用于资源ACE,并且是可选的。指示数据类型的字符串。资源属性ace数据类型可以是Sddl.h中定义的以下数据类型之一。
资源属性中的“#”符号与“ 0”同义。例如,D:AI(XA;OICI;FA;;;WD;(OctetStringType==#1#2#3##))
等同于D:AI(XA;OICI;FA;;;WD;(OctetStringType==#01020300))
.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista and Windows Server 2003: 资源属性不可用
ace类型字符串资源属性 | Sddl.h中的常量 | 数据类型 |
"TI" | SDDL_INT | Signed integer |
"TU" | SDDL_UINT | Unsigned integer |
"TS" | SDDL_WSTRING | Wide string |
"TD" | SDDL_SID | SID |
"TX" | SDDL_BLOB | Octet string |
"TB" | SDDL_BOOLEAN | Boolean |
以下示例显示了允许访问的ACE的ACE字符串。它不是特定于对象的ACE,因此在object_guid
和Inherited_object_guid
字段中没有任何信息。 ace_flags
字段也为空,表示未设置任何ACE标志。
(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-1-0)
上面显示的ACE字符串描述了以下ACE信息。
AceType: 0x00 (ACCESS_ALLOWED_ACE_TYPE)
AceFlags: 0x00
Access Mask: 0x100e003f
READ_CONTROL
WRITE_DAC
WRITE_OWNER
GENERIC_ALL
Other access rights(0x0000003f)
Ace Sid : (S-1-1-0)
下面的示例显示了一个文件,该文件使用Windows的资源声明和“结构化查询语言(SQL)”将“保密性”设置为“高业务影响”。
(RA;CI;;;;S-1-1-0; ("Project",TS,0,"Windows","SQL"))
(RA;CI;;;;S-1-1-0; ("Secrecy",TU,0,3))
上面显示的ACE字符串描述了以下ACE信息。
AceType: 0x12 (SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE)
AceFlags: 0x1 (SDDL_CONTAINER_INHERIT)
Access Mask: 0x0
Ace Sid : (S-1-1-0)
Resource Attributes: Project has the strings Windows and SQL, Secrecy has the unsigned int value of 3
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
{{ commentTitle }}