Skip to content

Latest commit

 

History

History
185 lines (137 loc) · 8.07 KB

File metadata and controls

185 lines (137 loc) · 8.07 KB

(二)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_guidInherited_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