Sdílet prostřednictvím


Formát řetězce popisovače zabezpečení

Formát řetězce popisovače zabezpečení je textový formát pro ukládání nebo přenos informací v popisovači zabezpečení. Funkce ConvertSecurityDescriptorToStringSecurityDescriptor a ConvertStringSecurityDescriptorToSecurityDescriptor používají tento formát.

Formát je řetězec ukončený hodnotou null s tokeny, které označují každou ze čtyř hlavních komponent popisovače zabezpečení: owner (O:), primární skupinu (G:), DACL (D:) a SACL (S:).

Poznámka:

Položky řízení přístupu (ACE) a podmíněné položky řízení přístupu mají různé formáty. Informace o ACL najdete v tématu řetězce ACE. Informace o podmíněných ACL naleznete v tématu Jazyk definice popisovače zabezpečení pro podmíněné aces.

Komponenty formátu řetězce popisovače zabezpečení

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

Řetězec IDENTIFIKÁTORU SID, který identifikuje vlastníka objektu.

group_sid

Řetězec identifikátoru SID, který identifikuje primární skupinu objektu.

dacl_flags

Příznaky ovládacích prvků popisovače zabezpečení, které se vztahují na seznam DACL. Popis těchto příznaků ovládacího prvku naleznete v SetSecurityDescriptorControl funkce. Řetězec dacl_flags může být zřetězením nuly nebo více z následujících řetězců.

Řízení Konstanta v Sddl.h Význam
"P" SDDL_PROTECTED Příznak SE_DACL_PROTECTED je nastavený.
"AR" SDDL_AUTO_INHERIT_REQ Příznak SE_DACL_AUTO_INHERIT_REQ je nastavený.
"AI" SDDL_AUTO_INHERITED Příznak SE_DACL_AUTO_INHERITED je nastavený.
ŽÁDNÁ_KONTROLA_PŘÍSTUPU SDDL_NULL_ACL ACL je null. Windows Server 2008, Windows Vista a Windows Server 2003: Není k dispozici.

sacl_flags

Příznaky ovládacích prvků popisovače zabezpečení, které platí pro SACL. Řetězec sacl_flags používá stejné řídicí bitové řetězce jako řetězec dacl_flags.

string_ace

Řetězec, který popisuje ACE v jazyce DACL nebo SACL popisovače zabezpečení. Popis formátu řetězce ACE najdete v tématu Řetězce ACE. Každý řetězec ACE je uzavřený v závorkách (()).

Nepotřebné komponenty lze vynechat z řetězce popisovače zabezpečení. Pokud například příznak SE_DACL_PRESENT není nastaven v popisovači vstupního zabezpečení, ConvertSecurityDescriptorToStringSecurityDescriptor neobsahuje komponentu D: ve výstupním řetězci. Pomocí SECURITY_INFORMATION bitových příznaků můžete také označit komponenty, které se mají zahrnout do řetězce popisovače zabezpečení.

Formát řetězce popisovače zabezpečení nepodporuje seznamy ACL s hodnotou NULL .

Pokud chcete označit prázdný seznam ACL, řetězec popisovače zabezpečení obsahuje token D: nebo S: bez dalších informací o řetězci.

Řetězec popisovače zabezpečení ukládá bity SECURITY DESCRIPTOR CONTROL různými způsoby. Přítomnost bitů SE_DACL_PRESENT nebo SE_SACL_PRESENT je v řetězci indikována tokenem D: nebo S:. Další bity, které platí pro daCL nebo SACL, jsou uloženy v dacl_flags a sacl_flags. SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED a SE_SACL_DEFAULTED bity nejsou uloženy v řetězci popisovače zabezpečení. Bit SE_SELF_RELATIVE není uložen v řetězci, ale ConvertStringSecurityDescriptorToSecurityDescriptor vždy nastaví tento bit ve výstupním popisovači zabezpečení.

Příklady řetězců popisovače zabezpečení

Následující příklady ukazují řetězce popisovače zabezpečení a informace v přidružených popisovačích zabezpečení.

Řetězec 1:

"O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"

Popisovač zabezpečení 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

Řetězec 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)"

Popisovač zabezpečení 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)

řetězce ACE

Jazyk definice popisovače zabezpečení pro podmíněné ACE