Format de chaîne de descripteur de sécurité

Le format de chaîne de descripteur de sécurité est un format texte permettant de stocker ou de transporter des informations dans un descripteur de sécurité. Les fonctions ConvertSecurityDescriptorToStringSecurityDescriptor et ConvertStringSecurityDescriptorToSecurityDescriptor utilisent ce format.

Le format est une chaîne terminée par un caractère Null avec des jetons pour indiquer chacun des quatre composants main d’un descripteur de sécurité : owner (O:), primary group (G:), DACL (D:) et SACL (S:).

Notes

Les entrées de contrôle d’accès (ACL) et les acees conditionnelles ont des formats différents. Pour les ACÉ, consultez Chaînes ACE. Pour les AE conditionnels, consultez Langage de définition de descripteur de sécurité pour les AIC conditionnels.

 

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

Chaîne SID qui identifie le propriétaire de l’objet.

group_sid

Chaîne SID qui identifie le groupe principal de l’objet.

dacl_flags

Indicateurs de contrôle de descripteur de sécurité qui s’appliquent à la liste DACL. Pour obtenir une description de ces indicateurs de contrôle, consultez la fonction SetSecurityDescriptorControl . La chaîne dacl_flags peut être une concaténation de zéro ou plusieurs des chaînes suivantes.

Control Constante dans Sddl.h Signification
« P » SDDL_PROTECTED L’indicateur SE_DACL_PROTECTED est défini.
« AR » SDDL_AUTO_INHERIT_REQ L’indicateur SE_DACL_AUTO_INHERIT_REQ est défini.
« IA » SDDL_AUTO_INHERITED L’indicateur SE_DACL_AUTO_INHERITED est défini.
« NO_ACCESS_CONTROL » SDDL_NULL_ACL La liste de contrôle d’accès est null. Windows Server 2008, Windows Vista et Windows Server 2003 : Non disponible.

 

sacl_flags

Indicateurs de contrôle de descripteur de sécurité qui s’appliquent à la liste SACL. La chaîne sacl_flags utilise les mêmes chaînes de bits de contrôle que la chaîne dacl_flags.

string_ace

Chaîne qui décrit un ACE dans le DACL ou SACL du descripteur de sécurité. Pour obtenir une description du format de chaîne ACE, consultez Chaînes ACE. Chaque chaîne ACE est placée entre parenthèses (()).

Les composants inutiles peuvent être omis de la chaîne de descripteur de sécurité. Par exemple, si l’indicateur SE_DACL_PRESENT n’est pas défini dans le descripteur de sécurité d’entrée, ConvertSecurityDescriptorToStringSecurityDescriptor n’inclut pas de composant D: dans la chaîne de sortie. Vous pouvez également utiliser les indicateurs de bits SECURITY_INFORMATION pour indiquer les composants à inclure dans une chaîne de descripteur de sécurité.

Le format de chaîne de descripteur de sécurité ne prend pas en charge les ACL NULL .

Pour indiquer une liste de contrôle d’accès vide, la chaîne de descripteur de sécurité inclut le jeton D: ou S: sans informations de chaîne supplémentaires.

La chaîne de descripteur de sécurité stocke les bits SECURITY DESCRIPTOR CONTROL de différentes manières. Les bits SE_DACL_PRESENT ou SE_SACL_PRESENT sont indiqués par la présence du jeton D: ou S: dans la chaîne. Les autres bits qui s’appliquent à la liste DACL ou SACL sont stockés dans dacl_flags et sacl_flags. Les bits SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED et SE_SACL_DEFAULTED ne sont pas stockés dans une chaîne de descripteur de sécurité. Le bit SE_SELF_RELATIVE n’est pas stocké dans la chaîne, mais ConvertStringSecurityDescriptorToSecurityDescriptor définit toujours ce bit dans le descripteur de sécurité de sortie.

Les exemples suivants montrent des chaînes de descripteur de sécurité et les informations contenues dans les descripteurs de sécurité associés.

Chaîne 1 :

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

Descripteur de sécurité 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

Chaîne 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)"

Descripteur de sécurité 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)

Chaînes ACE

Langage de définition de descripteur de sécurité pour les AIC conditionnels