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

最后更新于

这有帮助吗?