Condividi tramite


Formato della stringa del descrittore di sicurezza

Il formato stringa del descrittore di sicurezza è un formato di testo per l'archiviazione o il trasporto di informazioni in un descrittore di sicurezza. Le funzioni ConvertSecurityDescriptorToStringSecurityDescriptor e ConvertStringSecurityDescriptorToSecurityDescriptor usano questo formato.

Il formato è un nullstringa con terminazione con token per indicare ognuno dei quattro componenti principali di un descrittore di sicurezza: proprietario (O:), gruppo primario (G:), DACL (D:) e SACL (S:).

Nota

Le voci di controllo di accesso e gli ACE condizionali hanno formati diversi. Per le ACE, vedere stringhe ACE. Per gli ACE condizionali, vedere "Security Descriptor Definition Language for Conditional ACEs".

Componenti del formato stringa del descrittore di sicurezza

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

Stringa SID che identifica il proprietario dell'oggetto.

group_sid

Stringa SID che identifica il gruppo primario dell'oggetto.

dacl_flags

Flag di controllo del descrittore di sicurezza che si applicano al controllo d'accesso discrezionale (DACL). Per una descrizione di questi flag di controllo, vedere la funzione SetSecurityDescriptorControl. La stringa dacl_flags può essere una concatenazione di zero o più delle stringhe seguenti.

Controllo Costante in Sddl.h Significato
"P" SDDL_PROTECTED Il flag SE_DACL_PROTECTED è impostato.
Realtà Aumentata SDDL_AUTO_INHERIT_REQ Il flag SE_DACL_AUTO_INHERIT_REQ è impostato.
"intelligenza artificiale" SDDL_AUTO_INHERITED Il flag SE_DACL_AUTO_INHERITED è impostato.
NESSUN_CONTROLLO_ACCESSO SDDL_NULL_ACL L'ACL è Null. Windows Server 2008, Windows Vista e Windows Server 2003: Non disponibile.

sacl_flags

Flag di controllo del descrittore di sicurezza applicabili alla SACL. La stringa sacl_flags usa le stesse stringhe di bit di controllo della stringa dacl_flags.

string_ace

Stringa che descrive un ACE nel DACL o SACL del descrittore di sicurezza. Per una descrizione del formato di stringa ACE, vedere stringhe ACE. Ogni stringa ACE è racchiusa tra parentesi (()).

I componenti non necessari possono essere omessi dalla stringa del descrittore di sicurezza. Ad esempio, se il flag SE_DACL_PRESENT non è impostato nel descrittore di sicurezza di input, ConvertSecurityDescriptorToStringSecurityDescriptor non include un componente D: nella stringa di output. È anche possibile usare i flag di bit SECURITY_INFORMATION per indicare i componenti da includere in una stringa del descrittore di sicurezza.

Il formato stringa del descrittore di sicurezza non supporta NULL ACL.

Per indicare un ACL vuoto, la stringa del descrittore di sicurezza include il token D: o S: senza informazioni aggiuntive sulla stringa.

La stringa del descrittore di sicurezza archivia i bit di SECURITY DESCRIPTOR CONTROL in modi diversi. I bit SE_DACL_PRESENT o SE_SACL_PRESENT sono indicati dalla presenza del token D: o S: nella stringa. Gli altri bit che si applicano a DACL o SACL vengono archiviati in dacl_flags e sacl_flags. I bit di SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED e SE_SACL_DEFAULTED non vengono archiviati in una stringa del descrittore di sicurezza. Il bit SE_SELF_RELATIVE non viene archiviato nella stringa, ma ConvertStringSecurityDescriptorToSecurityDescriptor imposta sempre questo bit nel descrittore di sicurezza di output.

Esempi di stringhe del descrittore di sicurezza

Negli esempi seguenti vengono mostrate le stringhe del descrittore di sicurezza e le informazioni nei descrittori di sicurezza associati.

Stringa 1:

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

Descrittore di sicurezza 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

Stringa 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)"

Descrittore di sicurezza 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)

stringhe ACE

Linguaggio di Definizione del Descrittore di Sicurezza per le ACE Condizionali