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)
Temas relacionados