Formato de cadeia de caracteres do descritor de segurança

O Formato de Cadeia de Caracteres do Descritor de Segurança é um formato de texto para armazenar ou transportar informações em um descritor de segurança. As funções ConvertSecurityDescriptorToStringSecurityDescriptor e ConvertStringSecurityDescriptorToSecurityDescriptor usam esse formato.

O formato é uma cadeia de caracteres terminada em nulo com tokens para indicar cada um dos quatro componentes main de um descritor de segurança: proprietário (O:), grupo primário (G:), DACL (D:) e SACL (S:).

Observação

ACEs (entradas de controle de acesso ) e ACEs condicionais têm formatos diferentes. Para ACEs, consulte Cadeias de caracteres ACE. Para ACEs condicionais, consulte Linguagem de definição de descritor de segurança para ACEs condicionais.

 

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

Uma cadeia de caracteres SID que identifica o proprietário do objeto.

group_sid

Uma cadeia de caracteres SID que identifica o grupo primário do objeto.

dacl_flags

Sinalizadores de controle do descritor de segurança que se aplicam à DACL. Para obter uma descrição desses sinalizadores de controle, consulte a função SetSecurityDescriptorControl . A cadeia de caracteres dacl_flags pode ser uma concatenação de zero ou mais das cadeias de caracteres a seguir.

Control Constante em Sddl.h Significado
"P" SDDL_PROTECTED O sinalizador SE_DACL_PROTECTED está definido.
"AR" SDDL_AUTO_INHERIT_REQ O sinalizador SE_DACL_AUTO_INHERIT_REQ está definido.
"IA" SDDL_AUTO_INHERITED O sinalizador SE_DACL_AUTO_INHERITED está definido.
"NO_ACCESS_CONTROL" SDDL_NULL_ACL A ACL é nula. Windows Server 2008, Windows Vista e Windows Server 2003: Não disponível.

 

sacl_flags

Sinalizadores de controle do descritor de segurança que se aplicam à SACL. A cadeia de caracteres sacl_flags usa as mesmas cadeias de caracteres de bit de controle que a cadeia de caracteres dacl_flags.

string_ace

Uma cadeia de caracteres que descreve uma ACE na DACL ou SACL do descritor de segurança. Para obter uma descrição do formato de cadeia de caracteres ACE, consulte Cadeias de caracteres ACE. Cada cadeia de caracteres ACE é colocada entre parênteses (()).

Componentes desnecessários podem ser omitidos da cadeia de caracteres do descritor de segurança. Por exemplo, se o sinalizador SE_DACL_PRESENT não estiver definido no descritor de segurança de entrada, ConvertSecurityDescriptorToStringSecurityDescriptor não incluirá um componente D: na cadeia de caracteres de saída. Você também pode usar os sinalizadores de bit SECURITY_INFORMATION para indicar os componentes a serem incluídos em uma cadeia de caracteres de descritor de segurança.

O formato de cadeia de caracteres do descritor de segurança não dá suporte a ACLs NULL .

Para indicar uma ACL vazia, a cadeia de caracteres do descritor de segurança inclui o token D: ou S: sem informações de cadeia de caracteres adicionais.

A cadeia de caracteres do descritor de segurança armazena os bits SECURITY DESCRIPTOR CONTROL de maneiras diferentes. Os bits SE_DACL_PRESENT ou SE_SACL_PRESENT são indicados pela presença do token D: ou S: na cadeia de caracteres. Outros bits que se aplicam à DACL ou SACL são armazenados em dacl_flags e sacl_flags. Os bits SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED e SE_SACL_DEFAULTED não são armazenados em uma cadeia de caracteres de descritor de segurança. O bit SE_SELF_RELATIVE não é armazenado na cadeia de caracteres, mas ConvertStringSecurityDescriptorToSecurityDescriptor sempre define esse bit no descritor de segurança de saída.

Os exemplos a seguir mostram cadeias de caracteres de descritor de segurança e as informações nos descritores de segurança associados.

Cadeia de caracteres 1:

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

Descritor de segurança 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

Cadeia de caracteres 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)"

Descritor de segurança 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)

Cadeias de Caracteres ACE

Linguagem de definição do descritor de segurança para ACEs condicionais