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 las ACE condicionales tienen formatos diferentes. Para los ASE, consulte Cadenas ACE. Para ver los ACA condicionales, consulte Security Descriptor Definition Language for Conditional ACEs (Lenguaje de definición de descriptor de seguridad para ACA condicionales).

 

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 SID que identifica el grupo principal del objeto.

dacl_flags

Marcas de control de descriptores 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.

Control Constante en Sddl.h Significado
"P" SDDL_PROTECTED Se establece la marca SE_DACL_PROTECTED.
"AR" SDDL_AUTO_INHERIT_REQ Se establece la marca SE_DACL_AUTO_INHERIT_REQ.
"IA" SDDL_AUTO_INHERITED Se establece la marca SE_DACL_AUTO_INHERITED.
"NO_ACCESS_CONTROL" SDDL_NULL_ACL La ACL es null. Windows Server 2008, Windows Vista y Windows Server 2003: No disponible.

 

sacl_flags

Marcas de control de descriptores de seguridad que se aplican a SACL. La cadena sacl_flags usa las mismas cadenas de bits de control que la cadena de dacl_flags.

string_ace

Cadena que describe una ACE en la 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 de descriptor de seguridad almacena los bits SECURITY DESCRIPTOR CONTROL 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 de 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 de SE_SELF_RELATIVE no se almacena en la cadena, pero ConvertStringSecurityDescriptorToSecurityDescriptor siempre establece este bit en el descriptor de seguridad de salida.

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

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 descriptor de seguridad para ASE condicionales