包含和被保护对象相关联的安全
信息的
数据结构。安全描述符包括谁拥有对象,以何种方式访问以及何种审查访问类型等
信息。
安全描述符包含自主决定的
访问控制表(DACL),里面包含有访问控制项(ACE),因此可以允许或拒绝特定用户或用户组的访问。它们还包含一个系统访问控制列表(SACL)以控制对象访问请求的日志(logging)。ACE可以显式应用于对象,或者从父对象继承。ACE的顺序在ACL中很重要,拒绝访问的ACE应该比允许访问的ACE更早出现。安全描述符还包含对象所有者。
安全描述符
字符串是一种用来存储或
传输安全描述符中的
信息的文本格式,应用到SACL的安全描述符控制标记,sacl_flags使用和dacl_flags字符串相同的控制位
字符串。描述安全描述符的DACL或SACL包含的一个ACE项的
字符串。安全描述符
字符串中可以省略不需要的部分,譬如,如果输入安全描述符中未设置SE_DACL_PRESENT标记,ConvertSecurityDescriptorToStringSecurityDescriptor的输出字符串中将不包含D:部分。安全描述符
字符串不支持NULL ACLs。为表示一个空ACL,安全描述符
字符串中包含S:或D:标记而不含其他字符串
信息。
文件和文件夹的权限可以使用各种工具编辑,这包括
Windows Explorer、
WMI,以及命令行工具如
Cacls、XCacls、
ICacls、SubInACL,
免费的Win32控制台FILEACL,自由实用工具SetACL,以及其他实用工具。要编辑一个安全描述符,用户需要有该对象的WRITE_DAC访问权限,该权限通常默认授予
管理员和该对象的所有者。
获取对象上的安全设置,或修改对象上的安全设置的Windows API。如:GetNamedSecurityInfo, SetNamedSecurityInfo,GetSecurityInfo, SetSecurityInfo。