セキュリティ記述子の文字列形式
セキュリティ記述子の文字列形式は、セキュリティ記述子に情報を格納または転送するためのテキスト形式です。 ConvertSecurityDescriptorToStringSecurityDescriptor 関数と ConvertStringSecurityDescriptorToSecurityDescriptor 関数は、この形式を使用します。
形式は、セキュリティ記述子の 4 つのメイン コンポーネント (所有者 (O:)、プライマリ グループ (G:)、DACL (D:)、SACL (S:) を示すトークンを含む null で終わる文字列です。
Note
アクセス制御エントリ (ACE) と条件付き ACE の形式は異なります。 ACE については、「 ACE 文字列」を参照してください。 条件付き ACE については、「 条件付き ACE のセキュリティ記述子定義言語」を参照してください。
O:owner_sid
G:group_sid
D:dacl_flags(string_ace1)(string_ace2)... (string_acen)
S:sacl_flags(string_ace1)(string_ace2)... (string_acen)
-
owner_sid
-
オブジェクトの所有者を識別する SID 文字列 。
-
group_sid
-
オブジェクトのプライマリ グループを識別する SID 文字列。
-
dacl_flags
-
DACL に適用されるセキュリティ記述子制御フラグ。 これらのコントロール フラグの詳細については、「 SetSecurityDescriptorControl 関数」を参照してください。 dacl_flags文字列には、0 個以上の次の文字列を連結できます。
コントロール Sddl.h の定数 説明 "P" SDDL_PROTECTED SE_DACL_PROTECTED フラグが設定されています。 "AR" SDDL_AUTO_INHERIT_REQ SE_DACL_AUTO_INHERIT_REQ フラグが設定されています。 "AI" SDDL_AUTO_INHERITED SE_DACL_AUTO_INHERITED フラグが設定されています。 "NO_ACCESS_CONTROL" SDDL_NULL_ACL ACL が null です。 Windows Server 2008、Windows Vista、Windows Server 2003: 使用できません。 -
sacl_flags
-
SACL に適用されるセキュリティ記述子制御フラグ。 sacl_flags文字列は、dacl_flags文字列と同じ制御ビット文字列を使用します。
-
string_ace
-
セキュリティ記述子の DACL または SACL の ACE を表す文字列。 ACE 文字列形式の説明については、「 ACE 文字列」を参照してください。 各 ACE 文字列はかっこ (()) で囲まれます。
不要なコンポーネントは、セキュリティ記述子文字列から省略できます。 たとえば、入力セキュリティ記述子で SE_DACL_PRESENT フラグが設定されていない場合、 ConvertSecurityDescriptorToStringSecurityDescriptor は出力文字列に D: コンポーネントを含めません。 SECURITY_INFORMATION ビット フラグを使用して、セキュリティ記述子文字列に含めるコンポーネントを示すこともできます。
セキュリティ記述子の文字列形式では 、NULL ACL はサポートされていません。
空の ACL を示すために、セキュリティ記述子文字列には、追加の文字列情報を含まない D: または S: トークンが含まれます。
セキュリティ記述子文字列には、さまざまな方法で SECURITY DESCRIPTOR CONTROL ビットが格納されます。 SE_DACL_PRESENTビットまたはSE_SACL_PRESENTビットは、文字列内に D: または S: トークンが存在することによって示されます。 DACL または SACL に適用されるその他のビットは、dacl_flagsおよびsacl_flagsに格納されます。 SE_OWNER_DEFAULTED、SE_GROUP_DEFAULTED、SE_DACL_DEFAULTED、およびSE_SACL_DEFAULTEDビットは、セキュリティ記述子文字列に格納されません。 SE_SELF_RELATIVE ビットは文字列に格納されませんが、 ConvertStringSecurityDescriptorToSecurityDescriptor は常にこのビットを出力セキュリティ記述子に設定します。
次の例では、セキュリティ記述子の文字列と、関連するセキュリティ記述子の情報を示します。
文字列 1:
"O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
セキュリティ記述子 1:
Revision: 0x00000001
Control: 0x0004
SE_DACL_PRESENT
Owner: (S-1-5-32-548)
PrimaryGroup: (S-1-5-21-397955417-626881126-188441444-512)
DACL
Revision: 0x02
Size: 0x001c
AceCount: 0x0001
Ace[00]
AceType: 0x00 (ACCESS_ALLOWED_ACE_TYPE)
AceSize: 0x0014
InheritFlags: 0x00
Access Mask: 0x100e003f
READ_CONTROL
WRITE_DAC
WRITE_OWNER
GENERIC_ALL
Others(0x0000003f)
Ace Sid : (S-1-0-0)
SACL
Not present
文字列 2:
"O:DAG:DAD:(A;;RPWPCCDCLCRCWOWDSDSW;;;SY)
(A;;RPWPCCDCLCRCWOWDSDSW;;;DA)
(OA;;CCDC;bf967aba-0de6-11d0-a285-00aa003049e2;;AO)
(OA;;CCDC;bf967a9c-0de6-11d0-a285-00aa003049e2;;AO)
(OA;;CCDC;6da8a4ff-0e52-11d0-a286-00aa003049e2;;AO)
(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)
(A;;RPLCRC;;;AU)S:(AU;SAFA;WDWOSDWPCCDCSW;;;WD)"
セキュリティ記述子 2:
Revision: 0x00000001
Control: 0x0014
SE_DACL_PRESENT
SE_SACL_PRESENT
Owner: (S-1-5-21-397955417-626881126-188441444-512)
PrimaryGroup: (S-1-5-21-397955417-626881126-188441444-512)
DACL
Revision: 0x04
Size: 0x0104
AceCount: 0x0007
Ace[00]
AceType: 0x00 (ACCESS_ALLOWED_ACE_TYPE)
AceSize: 0x0014
InheritFlags: 0x00
Access Mask: 0x000f003f
DELETE
READ_CONTROL
WRITE_DAC
WRITE_OWNER
Others(0x0000003f)
Ace Sid: (S-1-5-18)
Ace[01]
AceType: 0x00 (ACCESS_ALLOWED_ACE_TYPE)
AceSize: 0x0024
InheritFlags: 0x00
Access Mask: 0x000f003f
DELETE
READ_CONTROL
WRITE_DAC
WRITE_OWNER
Others(0x0000003f)
Ace Sid: (S-1-5-21-397955417-626881126-188441444-512)
Ace[02]
AceType: 0x05 (ACCESS_ALLOWED_OBJECT_ACE_TYPE)
AceSize: 0x002c
InheritFlags: 0x00
Access Mask: 0x00000003
Others(0x00000003)
Flags: 0x00000001, ACE_OBJECT_TYPE_PRESENT
ObjectType: GUID_C_USER
InhObjectType: GUID ptr is NULL
Ace Sid: (S-1-5-32-548)
Ace[03]
AceType: 0x05 (ACCESS_ALLOWED_OBJECT_ACE_TYPE)
AceSize: 0x002c
InheritFlags: 0x00
Access Mask: 0x00000003
Others(0x00000003)
Flags: 0x00000001, ACE_OBJECT_TYPE_PRESENT
ObjectType: GUID_C_GROUP
InhObjectType: GUID ptr is NULL
Ace Sid: (S-1-5-32-548)
Ace[04]
AceType: 0x05 (ACCESS_ALLOWED_OBJECT_ACE_TYPE)
AceSize: 0x002c
InheritFlags: 0x00
Access Mask: 0x00000003
Others(0x00000003)
Flags: 0x00000001, ACE_OBJECT_TYPE_PRESENT
ObjectType: GUID_C_LOCALGROUP
InhObjectType: GUID ptr is NULL
Ace Sid: (S-1-5-32-548)
Ace[05]
AceType: 0x05 (ACCESS_ALLOWED_OBJECT_ACE_TYPE)
AceSize: 0x002c
InheritFlags: 0x00
Access Mask: 0x00000003
Others(0x00000003)
Flags: 0x00000001, ACE_OBJECT_TYPE_PRESENT
ObjectType: GUID_C_PRINT_QUEUE
InhObjectType: GUID ptr is NULL
Ace Sid: (S-1-5-32-550)
Ace[06]
AceType: 0x00 (ACCESS_ALLOWED_ACE_TYPE)
AceSize: 0x0014
InheritFlags: 0x00
Access Mask: 0x00020014
READ_CONTROL
Others(0x00000014)
Ace Sid: (S-1-5-11)
SACL
Revision: 0x02
Size: 0x001c
AceCount: 0x0001
Ace[00]
AceType: 0x02 (SYSTEM_AUDIT_ACE_TYPE)
AceSize: 0x0014
InheritFlags: 0xc0
SUCCESSFUL_ACCESS_ACE_FLAG
FAILED_ACCESS_ACE_FLAG
Access Mask: 0x000d002b
DELETE
WRITE_DAC
WRITE_OWNER
Others(0x0000002b)
Ace Sid: (S-1-1-0)
関連トピック