다음을 통해 공유


보안 설명자 문자열 형식

보안 설명자 문자열 형식은 보안 설명자에 정보를 저장하거나 전송하기 위한 텍스트 형식입니다. ConvertSecurityDescriptorToStringSecurityDescriptorConvertStringSecurityDescriptorToSecurityDescriptor 함수는 이 형식을 사용합니다.

형식은 토큰이 있는 null로 끝나는 문자열로, 보안 설명자의 네 가지 기본 구성 요소 각각을 나타냅니다. 소유자(O:), 기본 그룹(G:), DACL(D:) 및 SACL(S:)입니다.

참고

ACE(액세스 제어 항목 ) 및 조건부 AES의 형식은 다릅니다. ACE의 경우 ACE 문자열을 참조하세요. 조건부 ACL의 경우 조건부 ACL에 대한 보안 설명자 정의 언어를 참조하세요.

 

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

개체의 소유자를 식별하는 SID 문자열 입니다.

group_sid

개체의 기본 그룹을 식별하는 SID 문자열입니다.

dacl_flags

DACL에 적용되는 보안 설명자 컨트롤 플래그입니다. 이러한 컨트롤 플래그에 대한 설명은 SetSecurityDescriptorControl 함수를 참조하세요. dacl_flags 문자열은 다음 문자열 중 0개 이상의 연결일 수 있습니다.

제어 Sddl.h의 상수 의미
"P" SDDL_PROTECTED SE_DACL_PROTECTED 플래그가 설정됩니다.
"AR" SDDL_AUTO_INHERIT_REQ SE_DACL_AUTO_INHERIT_REQ 플래그가 설정됩니다.
"AI" SDDL_AUTO_INHERITED SE_DACL_AUTO_INHERITED 플래그가 설정됩니다.
"NO_ACCESS_CONTROL" SDDL_NULL_ACL ACL이 null입니다. Windows Server 2008, Windows Vista 및 Windows Server 2003: 사용할 수 없습니다.

 

sacl_flags

SACL에 적용되는 보안 설명자 컨트롤 플래그입니다. sacl_flags 문자열은 dacl_flags 문자열과 동일한 컨트롤 비트 문자열을 사용합니다.

string_ace

보안 설명자의 DACL 또는 SACL에서 ACE를 설명하는 문자열입니다. ACE 문자열 형식에 대한 설명은 ACE 문자열을 참조하세요. 각 ACE 문자열은 괄호(()로 묶입니다.

불필요한 구성 요소는 보안 설명자 문자열에서 생략할 수 있습니다. 예를 들어 입력 보안 설명자에 SE_DACL_PRESENT 플래그가 설정되지 않은 경우 ConvertSecurityDescriptorToStringSecurityDescriptor 는 출력 문자열에 D: 구성 요소를 포함하지 않습니다. SECURITY_INFORMATION 비트 플래그를 사용하여 보안 설명자 문자열에 포함할 구성 요소를 나타낼 수도 있습니다.

보안 설명자 문자열 형식은 NULL ACL을 지원하지 않습니다.

빈 ACL을 나타내기 위해 보안 설명자 문자열에는 추가 문자열 정보가 없는 D: 또는 S: 토큰이 포함됩니다.

보안 설명자 문자열은 SECURITY DESCRIPTOR CONTROL 비트를 다양한 방식으로 저장합니다. SE_DACL_PRESENT 또는 SE_SACL_PRESENT 비트는 문자열에 D: 또는 S: 토큰이 있는 것으로 표시됩니다. DACL 또는 SACL에 적용되는 다른 비트는 dacl_flags 및 sacl_flags 저장됩니다. SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_DEFAULTED 및 SE_SACL_DEFAULTED 비트는 보안 설명자 문자열에 저장되지 않습니다. SE_SELF_RELATIVE 비트는 문자열에 저장되지 않지만 ConvertStringSecurityDescriptorToSecurityDescriptor 는 항상 출력 보안 설명자에서 이 비트를 설정합니다.

다음 예제에서는 보안 설명자 문자열 및 관련 보안 설명자의 정보를 보여 줍니다.

문자열 1:

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

보안 설명자 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

문자열 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)"

보안 설명자 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)

ACE 문자열

조건부 ACE에 대한 보안 설명자 정의 언어