次の方法で共有


セキュリティ記述子の文字列形式

セキュリティ記述子の文字列形式は、セキュリティ記述子に情報を格納または転送するためのテキスト形式です。 ConvertSecurityDescriptorToStringSecurityDescriptor 関数と ConvertStringSecurityDescriptorToSecurityDescriptor 関数では、この形式が使用されます。

形式は、セキュリティ記述子の 4 つの主要コンポーネント (所有者 (O:)、プライマリ グループ (G:)、DACL (D:)、SACL (S:) のそれぞれを示すトークンを含む null で終わる文字列です。

アクセス制御エントリ (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 フラグが設定されています。
"アクセス制御なし" 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;aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb;;AO)
(OA;;CCDC;bbbbbbbb-1111-2222-3333-cccccccccccc;;AO)
(OA;;CCDC;cccccccc-2222-3333-4444-dddddddddddd;;AO)
(OA;;CCDC;dddddddd-3333-4444-5555-eeeeeeeeeeee;;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)

ACE 文字列

条件付き ACE のセキュリティ記述子定義言語