Udostępnij za pośrednictwem


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

Ciąg SID , który identyfikuje właściciela obiektu.

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)

ciągi ACE

język definicji deskryptora zabezpieczeń dla warunkowych ACEs