聲明:本人以學習目的翻譯此文,翻譯所用原始資料出自Windows 2003 Server R2 SDK之Authorization相關章節,一切版權歸Microsoft所有。
本人水平有限,故仍附原文于后,謬誤之処,還望大家不吝賜教。
安全描述符字符串是一種用來存儲或傳輸安全描述符中的信息的文本格式,
ConvertSecurityDescriptorToStringSecurityDescriptor和ConvertStringSecurityDescriptorToSecurityDescriptor函數要用到這種格式。
格式字符串以空字符結束,以記號(Token)表示安全描述符相應的四個主要部分:
所有者(O:), 主組(G:), DACL (D:), 和SACL (S:)。
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可以由下列的多個(含零個)字符串拼接而成。
Control |
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標記 |
sacl_flags
應用到SACL的安全描述符控制標記,sacl_flags使用和dacl_flags字符串相同的控制位字符串。
string_ace
描述安全描述符的DACL或SACL包含的一個ACE項的字符串。要獲得對ACE字符串格式的詳盡描述,請參考ACE Strings,每個ACE字符串包含在圓括號中(())。
安全描述符字符串中可以省略不需要的部分,譬如,如果輸入安全描述符中未設置SE_DACL_PRESENT標記,ConvertSecurityDescriptorToStringSecurityDescriptor的輸出字符串中將不包含D:部分。你也可以用SECURITY_INFORMATION的位標記來指明安全描述符字符串中包含哪些部分。
安全描述符字符串不支持NULL ACLs。
為表示一個空ACL,安全描述符字符串中包含S:或D:標記而不含其他字符串信息。
-----------------
時間關係,今天先到這裡,有時閒再繼續。