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)
Tópicos relacionados