Format ciągu deskryptora zabezpieczeń
Format ciągu deskryptora zabezpieczeń jest formatem tekstowym do przechowywania lub transportu informacji w deskryptorze zabezpieczeń. Funkcje ConvertSecurityDescriptorToStringSecurityDescriptor i ConvertStringSecurityDescriptorToSecurityDescriptor używają tego formatu.
Format jest ciągiem o wartości null-terminated z tokenami wskazującymi każdy z czterech głównych składników deskryptora zabezpieczeń: owner (O:), podstawowej grupy (G:), DACL (D:) i SACL (S:).
Notatka
elementy kontroli dostępu (ACE) i warunkowe ACE mają różne formaty. Aby uzyskać informacje na temat ACE, zobacz ciągi ACE. Aby uzyskać informacje na temat warunkowych kontroli dostępu, zobacz Security Descriptor Definition Language for Conditional ACEs.
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
-
group_sid
-
Ciąg SID identyfikujący grupę podstawową obiektu.
-
dacl_flags
-
Flagi kontrolne deskryptora zabezpieczeń, które mają zastosowanie do DACL. Aby uzyskać opis tych flag kontrolek, zobacz funkcję SetSecurityDescriptorControl. Ciąg dacl_flags może być łączeniem zera lub więcej z następujących ciągów.
Kontrola Stała w pliku Sddl.h Znaczenie "P" SDDL_PROTECTED Ustawiono flagę SE_DACL_PROTECTED. Rzeczywistość rozszerzona SDDL_AUTO_INHERIT_REQ Ustawiono flagę SE_DACL_AUTO_INHERIT_REQ. "Sztuczna inteligencja" SDDL_AUTO_INHERITED Ustawiono flagę SE_DACL_AUTO_INHERITED. BRAK_KONTROLI_DOSTĘPU SDDL_NULL_ACL ACL jest nullem. Windows Server 2008, Windows Vista i Windows Server 2003: niedostępne. -
sacl_flags
-
Flagi kontrolne deskryptora zabezpieczeń, które mają zastosowanie do SACL. Ciąg sacl_flags używa tych samych ciągów bitów sterujących co ciąg dacl_flags.
-
string_ace
-
Ciąg opisujący ACE w DACL lub SACL deskryptora zabezpieczeń. Aby uzyskać opis formatu ciągu ACE, zobacz ciągi ACE. Każdy ciąg ACE jest ujęty w nawiasy (()).
Niepotrzebne składniki można pominąć z ciągu deskryptora zabezpieczeń. Na przykład, jeśli flaga SE_DACL_PRESENT nie jest ustawiona w deskryptorze zabezpieczeń wejściowych, ConvertSecurityDescriptorToStringSecurityDescriptor nie zawiera w ciągu wyjściowym składnika D:. Możesz również użyć flag bitowych SECURITY_INFORMATION, aby wskazać składniki do uwzględnienia w ciągu deskryptora zabezpieczeń.
Format ciągu deskryptora zabezpieczeń nie obsługuje listy ACL typu NULL .
Aby oznaczyć pusty ACL, ciąg znaków deskryptora zabezpieczeń zawiera token D: lub S: bez dodatkowych informacji tekstowych.
Ciąg deskryptora zabezpieczeń przechowuje bity KONTROLI DESKRYPTORA ZABEZPIECZEŃ na różne sposoby. Bity SE_DACL_PRESENT lub SE_SACL_PRESENT są wskazywane przez obecność tokenu D: lub S: w ciągu. Inne bity, które mają zastosowanie do listy kontroli dostępu DACL lub SACL, są przechowywane w dacl_flags i sacl_flags. Bity SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED i SE_SACL_DEFAULTED nie są przechowywane w tekście deskryptora zabezpieczeń. Bit SE_SELF_RELATIVE nie jest przechowywany w ciągu, ale funkcja ConvertStringSecurityDescriptorToSecurityDescriptor zawsze ustawia ten bit w wynikowym deskryptorze zabezpieczeń.
W poniższych przykładach przedstawiono ciągi deskryptora zabezpieczeń i informacje w skojarzonych deskryptorach zabezpieczeń.
Ciąg 1:
"O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
Deskryptor zabezpieczeń 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
Ciąg 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)"
Deskryptor zabezpieczeń 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)
Tematy pokrewne
-
język definicji deskryptora zabezpieczeń dla warunkowych ACEs