Format String Deskriptor Keamanan

Format String Deskriptor Keamanan adalah format teks untuk menyimpan atau mengangkut informasi dalam pendeskripsi keamanan. Fungsi ConvertSecurityDescriptorToStringSecurityDescriptor dan ConvertStringSecurityDescriptorToSecurityDescriptor menggunakan format ini.

Formatnya adalah string yang dihentikan null dengan token untuk menunjukkan masing-masing dari empat komponen utama deskriptor keamanan: pemilik (O:), grup utama (G:), DACL (D:), dan SACL (S:).

Catatan

Entri kontrol akses (ACE) dan ACE bersyarkat memiliki format yang berbeda. Untuk ACE, lihat String ACE. Untuk ACE bersyarah, lihat Bahasa Definisi Deskriptor Keamanan untuk ACE Bersyarah.

 

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

String SID yang mengidentifikasi pemilik objek.

group_sid

String SID yang mengidentifikasi grup utama objek.

dacl_flags

Bendera kontrol deskriptor keamanan yang berlaku untuk DACL. Untuk deskripsi bendera kontrol ini, lihat fungsi SetSecurityDescriptorControl . String dacl_flags dapat berupa perangkaian nol atau lebih dari string berikut.

Kontrol Konstanta dalam Sddl.h Makna
"P" SDDL_PROTECTED Bendera SE_DACL_PROTECTED diatur.
"AR" SDDL_AUTO_INHERIT_REQ Bendera SE_DACL_AUTO_INHERIT_REQ diatur.
"AI" SDDL_AUTO_INHERITED Bendera SE_DACL_AUTO_INHERITED diatur.
"NO_ACCESS_CONTROL" SDDL_NULL_ACL ACL null. Windows Server 2008, Windows Vista, dan Windows Server 2003: Tidak tersedia.

 

sacl_flags

Bendera kontrol deskriptor keamanan yang berlaku untuk SACL. String sacl_flags menggunakan string bit kontrol yang sama dengan string dacl_flags.

string_ace

String yang menjelaskan ACE dalam DACL atau SACL deskriptor keamanan. Untuk deskripsi format string ACE, lihat String ACE. Setiap string ACE diapit dalam tanda kurung (()).

Komponen yang tidak diperlukan dapat dihilangkan dari string deskriptor keamanan. Misalnya, jika bendera SE_DACL_PRESENT tidak diatur dalam deskriptor keamanan input, ConvertSecurityDescriptorToStringSecurityDescriptor tidak menyertakan komponen D: dalam string output. Anda juga dapat menggunakan bendera bit SECURITY_INFORMATION untuk menunjukkan komponen yang akan disertakan dalam string deskriptor keamanan.

Format string deskriptor keamanan tidak mendukung ACL NULL .

Untuk menunjukkan ACL kosong, string deskriptor keamanan menyertakan token D: atau S: tanpa informasi string tambahan.

String deskriptor keamanan menyimpan bit KONTROL DESKRIPTOR KEAMANAN dengan cara yang berbeda. Bit SE_DACL_PRESENT atau SE_SACL_PRESENT ditunjukkan dengan adanya token D: atau S: dalam string. Bit lain yang berlaku untuk DACL atau SACL disimpan dalam dacl_flags dan sacl_flags. Bit SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED, dan SE_SACL_DEFAULTED tidak disimpan dalam string deskriptor keamanan. Bit SE_SELF_RELATIVE tidak disimpan dalam string, tetapi ConvertStringSecurityDescriptorToSecurityDescriptor selalu mengatur bit ini dalam deskriptor keamanan output.

Contoh berikut menunjukkan string deskriptor keamanan dan informasi dalam deskriptor keamanan terkait.

String 1:

"O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"

Deskriptor Keamanan 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

String 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)"

Deskriptor Keamanan 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)

String ACE

Bahasa Definisi Deskriptor Keamanan untuk ACE Bersyarah