Dela via


Strängformat för säkerhetsbeskrivning

Security Descriptor String Format är ett textformat för att lagra eller transportera information i en säkerhetsbeskrivning. Funktionerna ConvertSecurityDescriptorToStringSecurityDescriptor och ConvertStringSecurityDescriptorToSecurityDescriptor använder det här formatet.

Formatet är en null-terminerad sträng med token som indikerar var och en av de fyra huvudkomponenterna i en säkerhetsbeskrivare: ägare (O:), primär grupp (G:), DACL (D:) och SACL (S:).

Not

Åtkomstkontrollposter (ACL) och villkorsstyrda ACL:er har olika format. Information om ACE:er finns i ACE-strängar. För villkorsstyrda ACL:er, se Security Descriptor Definition Language for Conditional ACEs.

Komponenter i strängformat för säkerhetsbeskrivning

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

En SID-sträng som identifierar objektets ägare.

grupp_sid

En SID-sträng som identifierar objektets primära grupp.

dacl_flags

Kontrollflaggor för säkerhetsbeskrivare som gäller för DACL. En beskrivning av dessa kontrollflaggor finns i funktionen SetSecurityDescriptorControl. Strängen dacl_flags kan vara en konkatenering av noll eller flera av följande strängar.

Kontroll Konstant i Sddl.h Betydelse
"P" SDDL_PROTECTED Flaggan SE_DACL_PROTECTED har angetts.
"AR" SDDL_AUTO_INHERIT_REQ Flaggan SE_DACL_AUTO_INHERIT_REQ är aktiverad.
"AI" SDDL_AUTO_INHERITED Flaggan SE_DACL_AUTO_INHERITED har angetts.
Ingen åtkomstkontroll SDDL_NULL_ACL ACL:en är null. Windows Server 2008, Windows Vista och Windows Server 2003: Inte tillgänglig.

sacl_flags

Kontrollflaggor för säkerhetsbeskrivning som gäller för SACL. sacl_flags-sträng använder samma kontrollbitsträngar som dacl_flags-sträng.

string_ace

En sträng som beskriver ett ACE i DACL eller SACL i säkerhetsbeskrivaren. En beskrivning av ACE-strängformatet finns i ACE-strängar. Varje ACE-sträng omges av parenteser (()).

Onödiga komponenter kan utelämnas från säkerhetsbeskrivningssträngen. Om flaggan SE_DACL_PRESENT inte är angiven i säkerhetsbeskrivningen för indata, då inkluderar ConvertSecurityDescriptorToStringSecurityDescriptor ingen D:-komponent i utdatasträngen. Du kan också använda SECURITY_INFORMATION bitflaggor för att ange vilka komponenter som ska ingå i en säkerhetsbeskrivningssträng.

Strängformatet för säkerhetsbeskrivning stöder inte NULL- ACL:er.

Om du vill ange en tom ACL innehåller säkerhetsbeskrivningen strängen D: eller S: token utan ytterligare stränginformation.

Säkerhetsbeskrivningssträngen lagrar SECURITY DESCRIPTOR CONTROL bitar på olika sätt. SE_DACL_PRESENT- eller SE_SACL_PRESENT-bitarna indikeras av förekomsten av D: eller S: tecken i strängen. Andra bitar som gäller för DACL eller SACL lagras i dacl_flags och sacl_flags. Bitarna SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED och SE_SACL_DEFAULTED lagras inte i en säkerhetsbeskrivningssträng. Den SE_SELF_RELATIVE biten lagras inte i strängen, men ConvertStringSecurityDescriptorToSecurityDescriptor anger alltid den här biten i utdatasäkerhetsbeskrivningen.

Exempel på säkerhetsbeskrivningssträngar

I följande exempel visas säkerhetsbeskrivningssträngar och informationen i de associerade säkerhetsbeskrivningarna.

Sträng 1:

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

Säkerhetsbeskrivning 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

Sträng 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)"

Säkerhetsbeskrivning 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-strängar

Definitionsspråk för säkerhetsbeskrivning för villkorsstyrda ACL:er