Format de chaîne de descripteur de sécurité
Le format de chaîne de descripteur de sécurité est un format texte permettant de stocker ou de transporter des informations dans un descripteur de sécurité. Les fonctions ConvertSecurityDescriptorToStringSecurityDescriptor et ConvertStringSecurityDescriptorToSecurityDescriptor utilisent ce format.
Le format est une chaîne terminée par un caractère Null avec des jetons pour indiquer chacun des quatre composants main d’un descripteur de sécurité : owner (O:), primary group (G:), DACL (D:) et SACL (S:).
Notes
Les entrées de contrôle d’accès (ACL) et les acees conditionnelles ont des formats différents. Pour les ACÉ, consultez Chaînes ACE. Pour les AE conditionnels, consultez Langage de définition de descripteur de sécurité pour les AIC conditionnels.
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
-
Chaîne SID qui identifie le propriétaire de l’objet.
-
group_sid
-
Chaîne SID qui identifie le groupe principal de l’objet.
-
dacl_flags
-
Indicateurs de contrôle de descripteur de sécurité qui s’appliquent à la liste DACL. Pour obtenir une description de ces indicateurs de contrôle, consultez la fonction SetSecurityDescriptorControl . La chaîne dacl_flags peut être une concaténation de zéro ou plusieurs des chaînes suivantes.
Control Constante dans Sddl.h Signification « P » SDDL_PROTECTED L’indicateur SE_DACL_PROTECTED est défini. « AR » SDDL_AUTO_INHERIT_REQ L’indicateur SE_DACL_AUTO_INHERIT_REQ est défini. « IA » SDDL_AUTO_INHERITED L’indicateur SE_DACL_AUTO_INHERITED est défini. « NO_ACCESS_CONTROL » SDDL_NULL_ACL La liste de contrôle d’accès est null. Windows Server 2008, Windows Vista et Windows Server 2003 : Non disponible. -
sacl_flags
-
Indicateurs de contrôle de descripteur de sécurité qui s’appliquent à la liste SACL. La chaîne sacl_flags utilise les mêmes chaînes de bits de contrôle que la chaîne dacl_flags.
-
string_ace
-
Chaîne qui décrit un ACE dans le DACL ou SACL du descripteur de sécurité. Pour obtenir une description du format de chaîne ACE, consultez Chaînes ACE. Chaque chaîne ACE est placée entre parenthèses (()).
Les composants inutiles peuvent être omis de la chaîne de descripteur de sécurité. Par exemple, si l’indicateur SE_DACL_PRESENT n’est pas défini dans le descripteur de sécurité d’entrée, ConvertSecurityDescriptorToStringSecurityDescriptor n’inclut pas de composant D: dans la chaîne de sortie. Vous pouvez également utiliser les indicateurs de bits SECURITY_INFORMATION pour indiquer les composants à inclure dans une chaîne de descripteur de sécurité.
Le format de chaîne de descripteur de sécurité ne prend pas en charge les ACL NULL .
Pour indiquer une liste de contrôle d’accès vide, la chaîne de descripteur de sécurité inclut le jeton D: ou S: sans informations de chaîne supplémentaires.
La chaîne de descripteur de sécurité stocke les bits SECURITY DESCRIPTOR CONTROL de différentes manières. Les bits SE_DACL_PRESENT ou SE_SACL_PRESENT sont indiqués par la présence du jeton D: ou S: dans la chaîne. Les autres bits qui s’appliquent à la liste DACL ou SACL sont stockés dans dacl_flags et sacl_flags. Les bits SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED et SE_SACL_DEFAULTED ne sont pas stockés dans une chaîne de descripteur de sécurité. Le bit SE_SELF_RELATIVE n’est pas stocké dans la chaîne, mais ConvertStringSecurityDescriptorToSecurityDescriptor définit toujours ce bit dans le descripteur de sécurité de sortie.
Les exemples suivants montrent des chaînes de descripteur de sécurité et les informations contenues dans les descripteurs de sécurité associés.
Chaîne 1 :
"O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
Descripteur de sécurité 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
Chaîne 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)"
Descripteur de sécurité 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)
Rubriques connexes