Compartir a través de


Formato de cadena de descriptor de seguridad

El Formato de Cadena de Descriptor de Seguridad es un formato de texto para almacenar o transportar información en un descriptor de seguridad. Las funciones ConvertSecurityDescriptorToStringSecurityDescriptor y ConvertStringSecurityDescriptorToSecurityDescriptor usan este formato.

El formato es una cadena terminada en NULL con tokens para indicar cada uno de los cuatro componentes principales de un descriptor de seguridad: propietario (O:), grupo principal (G:), DACL (D:) y SACL (S:).

Nota:

Las entradas de control de acceso (ACA) y los ACE condicionales tienen formatos diferentes. Para los ACE, consulte Cadenas ACE. Para obtener ACL condicionales, consulte lenguaje de definición de descriptores de seguridad para los ACE condicionales.

Componentes de formato de cadena del descriptor de seguridad

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

Cadena de SID que identifica al propietario del objeto.

group_sid

Cadena de SID que identifica el grupo principal del objeto.

dacl_flags

Marcas de control de descriptor de seguridad que se aplican a la DACL. Para obtener una descripción de estas marcas de control, consulte la función SetSecurityDescriptorControl . La cadena dacl_flags puede ser una concatenación de cero o más de las cadenas siguientes.

Supervisión Constante en Sddl.h Significado
"P" SDDL_PROTECTED Se establece la marca SE_DACL_PROTECTED.
"AR" SDDL_AUTO_INHERIT_REQ Se establece el indicador SE_DACL_AUTO_INHERIT_REQ.
"IA" SDDL_AUTO_INHERITED Se establece la marca SE_DACL_AUTO_INHERITED.
SIN_CONTROL_DE_ACCESO SDDL_NULL_ACL La ACL es nula. Windows Server 2008, Windows Vista y Windows Server 2003: No disponible.

sacl_flags

Banderas de control del descriptor de seguridad que se aplican a la SACL. La cadena sacl_flags usa las mismas cadenas de bits de control que la cadena dacl_flags.

string_ace

Cadena que describe un ACE en el DACL o SACL del descriptor de seguridad. Para obtener una descripción del formato de cadena ACE, consulte Cadenas ACE. Cada cadena ACE se incluye entre paréntesis (()).

Los componentes innecesarios se pueden omitir en la cadena del descriptor de seguridad. Por ejemplo, si la marca SE_DACL_PRESENT no está establecida en el descriptor de seguridad de entrada, ConvertSecurityDescriptorToStringSecurityDescriptor no incluye un componente D: en la cadena de salida. También puede usar las marcas de bits de SECURITY_INFORMATION para indicar los componentes que se van a incluir en una cadena de descriptor de seguridad.

El formato de cadena del descriptor de seguridad no admite ACL NULL .

Para indicar una ACL vacía, la cadena del descriptor de seguridad incluye el token D: o S: sin información de cadena adicional.

La cadena del descriptor de seguridad almacena los bits del descriptor de control de seguridad de diferentes maneras. Los bits SE_DACL_PRESENT o SE_SACL_PRESENT se indican mediante la presencia del token D: o S: en la cadena. Otros bits que se aplican a daCL o SACL se almacenan en dacl_flags y sacl_flags. Los bits SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED y SE_SACL_DEFAULTED no se almacenan en una cadena de descriptor de seguridad. El bit SE_SELF_RELATIVE no se almacena en la cadena, pero ConvertStringSecurityDescriptorToSecurityDescriptor siempre establece este bit en el descriptor de seguridad de salida.

Cadenas de descriptor de seguridad de ejemplo

En los ejemplos siguientes se muestran cadenas de descriptor de seguridad y la información de los descriptores de seguridad asociados.

Cadena 1:

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

Descriptor de seguridad 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

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

Descriptor de seguridad 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)

Cadenas ACE

Lenguaje de definición de descriptores de seguridad para los ACE condicionales