Partilhar via


Formato de cadeia de caracteres do descritor de segurança

O Security Descriptor String Format é 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 nulocom tokens para indicar cada um dos quatro componentes principais de um descritor de segurança: proprietário (O:), grupo primário (G:), DACL (D:) e SACL (S:).

Observação

As entradas de controle de acesso (ACEs) e as ACEs condicionais têm formatos diferentes. Para os ACEs, consulte ACE Strings. Para ACEs condicionais, consulte Linguagem de Definição do Descritor de Segurança para ACEs Condicionais.

Componentes do formato de cadeia de caracteres do descritor de segurança

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 dacl_flags pode resultar de uma concatenação de zero ou mais das seguintes cadeias.

Controlo Constante em Sddl.h Significado
"P" SDDL_PROTEGIDO O indicador SE_DACL_PROTECTED está definido.
"RA" 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.
SEM_CONTROLO_DE_ACESSO SDDL_NULL_ACL O LCA é nulo. 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 controlo de bits 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 string ACE, consulte strings ACE. Cada cadeia de caracteres ACE é colocada entre parênteses (()).

Os 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 bits SECURITY_INFORMATION para indicar os componentes a serem incluídos em uma string de descritor de segurança.

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

Para indicar uma ACL vazia, a string do descritor de segurança inclui o token D: ou S: sem informações 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 do descritor de segurança. O bit de SE_SELF_RELATIVE não é armazenado na cadeia de caracteres, mas ConvertStringSecurityDescriptorToSecurityDescriptor sempre define esse bit no descritor de segurança de saída.

Exemplo de cadeias de caracteres do descritor de segurança

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

String 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

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

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)

Cordas ACE

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