公认 SID

已知的安全标识符 (SID) 可标识通用组和通用用户。 例如,一些已知的 SID 可用于标识以下组和用户:

  • Everyone 或 World,这是一个包括所有用户的组。
  • CREATOR_OWNER,它在可继承 ACE 中被用作占位符。 当 ACE 被继承时,系统会将 CREATOR_OWNER SID 替换为对象创建者的 SID。
  • 本地计算机上内置域的管理员组。

有一些已知的通用 SID,它们在使用这种安全模式的所有安全系统(包括 Windows 之外的操作系统)上都有意义。 此外,还有一些已知的 SID 仅在 Windows 系统中有意义。

Windows API 为已知的标识符权限和相对标识符 (RID) 值定义了一组常量。 可以使用这些常量来创建已知的 SID。 以下示例结合了 SECURITY_WORLD_SID_AUTHORITY 和 SECURITY_WORLD_RID 常量,以显示代表所有用户的特殊组(Everyone 或 World)的通用已知 SID:

S-1-1-0

本示例使用 SID 的字符串表示法,其中 S 将字符串标识为 SID,第一个 1 个是 SID 的修订级别,其余两位数表示 SECURITY_WORLD_SID_AUTHORITY 和 SECURITY_WORLD_RID 常量。

可以使用 AllocateAndInitializeSid 函数,通过将一个标识符授权值与最多八个子授权值组合起来,从而生成一个 SID。 例如,要确定已登录用户是否是某个特定已知组的成员,可调用 AllocateAndInitializeSid 为该已知组生成一个 SID,并使用 EqualSid 函数将该 SID 与用户的访问令牌中的组 SID 进行比较。 有关示例,请参阅在 C++ 中搜索访问令牌中的 SID。 必须调用 FreeSid 函数来释放由 AllocateAndInitializeSid 分配的 SID。

本节的其余部分包含已知的 SID 表以及标识符颁发机构表和子授权常量表,它们可以用于生成已知的 SID。

以下是一些通用的已知 SID

通用公认 SID 标识
空 SID
字符串值:S-1-0-0
没有成员的组。 在不知道 SID 值时,通常会使用这种方法。
世界
字符串值:S-1-1-0
包括所有用户的组。
本地
字符串值:S-1-2-0
登录到以本地(物理)方式连接到系统的终端的用户。
创建者所有者 ID
字符串值:S-1-3-0
安全标识符,将被替换为创建新对象的用户的安全标识符。 此 SID 用于可继承的 ACE。
创建者组 ID
字符串值:S-1-3-1
安全标识符,将被替换为创建新对象的用户的主要组 SID。 在可继承 ACE 中使用此 Sid.

下表列出了预定义的标识符颁发机构常量。 前四个值用于通用已知的 SID;最后一个值用于 Windows 已知的 SID。

标识符颁发机构 字符串值
SECURITY_NULL_SID_AUTHORITY 0 S-1-0
SECURITY_WORLD_SID_AUTHORITY 1 S-1-1
SECURITY_LOCAL_SID_AUTHORITY 2 S-1-2
SECURITY_CREATOR_SID_AUTHORITY 3 S-1-3
SECURITY_NT_AUTHORITY 5 S-1-5

以下 RID 值与通用公认 SID 一起使用。 “标识符颁发机构”列显示标识符颁发机构的前缀,可以结合 RID 来创建通用的公认 SID。

相对标识符颁发机构 字符串值
SECURITY_NULL_RID 0 S-1-0
SECURITY_WORLD_RID 0 S-1-1
SECURITY_LOCAL_RID 0 S-1-2
SECURITY_LOCAL_LOGON_RID 1 S-1-2
SECURITY_CREATOR_OWNER_RID 0 S-1-3
SECURITY_CREATOR_GROUP_RID 1 S-1-3

SECURITY_NT_AUTHORITY (S-1-5) 预定义标识符办法机构生成的 SID 并非是通用的,而只是对 Windows 安装有意义。 可以将以下 RID 值与 SECURITY_NT_AUTHORITY 一起使用,以便创建已知的 SID。

返回的常量 标识
SECURITY_DIALUP_RID
字符串值:S-1-5-1
使用拨号调制解调器登录终端的用户。 这是一个组标识符。
SECURITY_NETWORK_RID
字符串值:S-1-5-2
跨网络登录的用户。 这是在跨网络登录时添加到进程的令牌中的组标识符。 相应的登录类型是 LOGON32_LOGON_NETWORK。
SECURITY_BATCH_RID
字符串值:S-1-5-3
使用批处理队列设施登录的用户。 这是一个组标识符,在进程被记录为批处理作业时被添加到进程的标记中。 相应的登录类型为 LOGON32_LOGON_BATCH。
SECURITY_INTERACTIVE_RID
字符串值:S-1-5-4
登录进行交互式操作的用户。 这是在以交互方式登录时添加到进程的令牌中的组标识符。 相应的登录类型是 LOGON32_LOGON_INTERACTIVE。
SECURITY_LOGON_IDS_RID
字符串值:S-1-5-5-*X*-*Y*
一个登录会话。 这用于确保只有特定登录会话中的进程才能访问该会话的窗口工作站对象。 这些 SID 的 XY 值在每个登录会话中都各不相同。 SECURITY_LOGON_IDS_RID_COUNT 的值是该标识符中的 RID 个数 (5-X-Y)。
SECURITY_SERVICE_RID
字符串值:S-1-5-6
被授权作为服务登录的帐户。 这是在以服务形式登录时添加到进程的令牌中的组标识符。 相应的登录类型是 LOGON32_LOGON_SERVICE。
SECURITY_ANONYMOUS_LOGON_RID
字符串值:S-1-5-7
匿名登录或 null 会话登录。
SECURITY_PROXY_RID
字符串值:S-1-5-8
代理。
SECURITY_ENTERPRISE_CONTROLLERS_RID
字符串值:S-1-5-9
企业控制器。
SECURITY_PRINCIPAL_SELF_RID
字符串值:S-1-5-10
PRINCIPAL_SELF 安全标识符可在用户或组对象的 ACL 中使用。 在访问检查过程中,系统会将 SID 替换为对象的 SID。 PRINCIPAL_SELF SID 用于指定适用于继承 ACE 的用户或组对象的可继承 ACE。 这是在架构的默认安全描述符中表示已创建对象 SID 的唯一方法。
SECURITY_AUTHENTICATED_USER_RID
字符串值:S-1-5-11
通过身份验证的用户。
SECURITY_RESTRICTED_CODE_RID
字符串值:S-1-5-12
受限代码。
SECURITY_TERMINAL_SERVER_RID
字符串值:S-1-5-13
终端服务。 自动添加到登录到终端服务器的用户的安全令牌中。
SECURITY_LOCAL_SYSTEM_RID
字符串值:S-1-5-18
操作系统使用的特殊帐户。
SECURITY_NT_NON_UNIQUE
字符串值:S-1-5-21
SIDS 并非唯一的。
SECURITY_BUILTIN_DOMAIN_RID
字符串值:S-1-5-32
内置系统域。
SECURITY_WRITE_RESTRICTED_CODE_RID
字符串值:S-1-5-33
编写受限制的代码。
SECURITY_RESTRICTED_SERVICES_BASE_RID
字符串值:S-1-5-99
受限服务。

以下 RID 与每个域相关。

RID 标识
DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP
值:
可以使用分布式组件对象模型 (DCOM) 连接到证书颁发机构的用户组。
DOMAIN_USER_RID_ADMIN
值:
域中的管理用户帐户。
DOMAIN_USER_RID_GUEST
值:
域中的来宾用户帐户。 没有帐户的用户可以自动登录该帐户。
DOMAIN_GROUP_RID_ADMINS
值:
域管理员的组。 此帐户仅存在于运行服务器操作系统的系统中。
DOMAIN_GROUP_RID_USERS
值:
包含域中所有用户帐户的组。 所有用户都会自动添加到此组中。
DOMAIN_GROUP_RID_GUESTS
值:
域中的来宾组帐户。
DOMAIN_GROUP_RID_COMPUTERS
值:
域计算机的组。 域中的所有计算机都是此组的成员。
DOMAIN_GROUP_RID_CONTROLLERS
值:
域控制器的组。 域中的所有 DC 都是此组的成员。
DOMAIN_GROUP_RID_CERT_ADMINS
值:
证书发布服务器的组。 运行证书服务的计算机是此组的成员。
DOMAIN_GROUP_RID_ENTERPRISE_READONLY_DOMAIN_CONTROLLERS
值:
企业只读域控制器组。
DOMAIN_GROUP_RID_SCHEMA_ADMINS
值:
架构管理员的组。 此组的成员可以修改 Active Directory 架构。
DOMAIN_GROUP_RID_ENTERPRISE_ADMINS
值:
企业管理员的组。 此组的成员对 Active Directory 林中的所有域具有完全访问权限。 企业管理员负责林级操作,例如添加或删除新域。
DOMAIN_GROUP_RID_POLICY_ADMINS
值:
策略管理员的组。
DOMAIN_GROUP_RID_READONLY_CONTROLLERS
值:
只读域控制器组。
DOMAIN_GROUP_RID_CLONEABLE_CONTROLLERS
值:
可克隆域控制器组。
DOMAIN_GROUP_RID_CDC_RESERVED
值:
保留的 CDC 组。
DOMAIN_GROUP_RID_PROTECTED_USERS
值:
受保护的用户组。
DOMAIN_GROUP_RID_KEY_ADMINS
值:
密钥管理员组。
DOMAIN_GROUP_RID_ENTERPRISE_KEY_ADMINS
值:
企业密钥管理员组。

以下 RID 用于指定强制性完整性级别。

RID 标识
SECURITY_MANDATORY_UNTRUSTED_RID 0x00000000 不受信任。
SECURITY_MANDATORY_LOW_RID 0x00001000 低完整性。
SECURITY_MANDATORY_MEDIUM_RID 0x00002000 中完整性。
SECURITY_MANDATORY_MEDIUM_PLUS_RID SECURITY_MANDATORY_MEDIUM_RID + 0x100 中高完整性。
SECURITY_MANDATORY_HIGH_RID 0X00003000 高完整性。
SECURITY_MANDATORY_SYSTEM_RID 0x00004000 系统完整性。
SECURITY_MANDATORY_PROTECTED_PROCESS_RID 0x00005000 受保护的进程。

下表列出了与域相关的 RID 的示例,可以使用这些示例来为本地组(别名)创建已知的 SID。 有关本地组和全局组的详细信息,请参阅本地组函数组函数

RID 标识
DOMAIN_ALIAS_RID_ADMINS
值:
字符串值:S-1-5-32-544
用于管理域的本地组。
DOMAIN_ALIAS_RID_USERS
值:
字符串值:S-1-5-32-545
表示域中所有用户的本地组。
DOMAIN_ALIAS_RID_GUESTS
值:
字符串值:S-1-5-32-546
一个表示域的来宾的本地组。
DOMAIN_ALIAS_RID_POWER_USERS
值:
字符串值:S-1-5-32-547
一个用于表示一个或一组用户的本地组,这些用户希望将系统视作自己的个人计算机,而不是多个用户的工作站。
DOMAIN_ALIAS_RID_ACCOUNT_OPS
值:
字符串值:S-1-5-32-548
一个仅存在于运行服务器操作系统的系统中的本地组。 此本地组允许控制非管理员帐户。
DOMAIN_ALIAS_RID_SYSTEM_OPS
值:
字符串值:S-1-5-32-549
一个仅存在于运行服务器操作系统的系统中的本地组。 此本地组执行系统管理功能,不包括安全功能。 它可以建立网络共享、控制打印机、解锁工作站并执行其他操作。
DOMAIN_ALIAS_RID_PRINT_OPS
值:
字符串值:S-1-5-32-550
一个仅存在于运行服务器操作系统的系统中的本地组。 此本地组控制打印机和打印队列。
DOMAIN_ALIAS_RID_BACKUP_OPS
值:
字符串值:S-1-5-32-551
一个用于控制文件备份和还原权限分配的本地组。
DOMAIN_ALIAS_RID_REPLICATOR
值:
字符串值:S-1-5-32-552
一个负责将安全数据库从主域控制器复制到备份域控制器的本地组。 这些帐户仅由系统使用。
DOMAIN_ALIAS_RID_RAS_SERVERS
值:
字符串值:S-1-5-32-553
一个表示 RAS 和 IAS 服务器的本地组。 此组允许访问用户对象的各种属性。
DOMAIN_ALIAS_RID_PREW2KCOMPACCESS
值:
字符串值:S-1-5-32-554
仅存在于运行 Windows 2000 Server 的系统中的本地组。 有关详细信息,请参阅允许匿名访问
DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS
值:
字符串值:S-1-5-32-555
一个表示所有远程桌面用户的本地组。
DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS
值:
字符串值:S-1-5-32-556
一个表示网络配置的本地组。
DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS
值:
字符串值:S-1-5-32-557
一个表示任何林信任用户的本地组。
DOMAIN_ALIAS_RID_MONITORING_USERS
值:
字符串值:S-1-5-32-558
一个表示正在监控的所有用户的本地组。
DOMAIN_ALIAS_RID_LOGGING_USERS
值:
字符串值:S-1-5-32-559
一个负责记录用户的本地组。
DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS
值:
字符串值:S-1-5-32-560
一个表示所有授权访问的本地组。
DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS
值:
字符串值:S-1-5-32-561
一个仅存在于运行允许终端服务和远程访问的服务器操作系统的系统上的本地组。
DOMAIN_ALIAS_RID_DCOM_USERS
值:
字符串值:S-1-5-32-562
一个表示可使用分布式组件对象模型(DCOM)的用户的本地组。
DOMAIN_ALIAS_RID_IUSERS
值:
字符串值:S-1-5-32-568
一个表示 Internet 用户的本地组。
DOMAIN_ALIAS_RID_CRYPTO_OPERATORS
值:
字符串值:S-1-5-32-569
一个表示对加密运算符的访问权限的本地组。
DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP
值:
字符串值:S-1-5-32-571
一个表示可缓存的主体的本地组。
DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP
值:
字符串值:S-1-5-32-572
一个表示无法缓存的主体的本地组。
DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP
值:
字符串值:S-1-5-32-573
一个表示事件日志读取器的本地组。
DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP
值:
字符串值:S-1-5-32-574
可以使用分布式组件对象模型 (DCOM) 连接到证书颁发机构的逻辑用户组。
DOMAIN_ALIAS_RID_RDS_REMOTE_ACCESS_SERVERS
值:
字符串值:S-1-5-32-575
一个表示 RDS 远程访问服务器的本地组。
DOMAIN_ALIAS_RID_RDS_ENDPOINT_SERVERS
值:
字符串值:S-1-5-32-576
一个表示终结点服务器的本地组。
DOMAIN_ALIAS_RID_RDS_MANAGEMENT_SERVERS
值:
字符串值:S-1-5-32-577
一个表示管理服务器的本地组。
DOMAIN_ALIAS_RID_HYPER_V_ADMINS
值:
字符串值:S-1-5-32-578
一个表示 hyper-v 管理员的本地组。
DOMAIN_ALIAS_RID_ACCESS_CONTROL_ASSISTANCE_OPS
值:
字符串值:S-1-5-32-579
一个表示访问控制协助 OPS 的本地组。
DOMAIN_ALIAS_RID_REMOTE_MANAGEMENT_USERS
值:
字符串值:S-1-5-32-580
一个表示远程管理用户的本地组。
DOMAIN_ALIAS_RID_DEFAULT_ACCOUNT
值:
字符串值:S-1-5-32-581
一个表示默认帐户的本地组。
DOMAIN_ALIAS_RID_STORAGE_REPLICA_ADMINS
值:
字符串值:S-1-5-32-582
一个表示存储副本管理员的本地组。
DOMAIN_ALIAS_RID_DEVICE_OWNERS
值:
字符串值:S-1-5-32-583
一个表示可以为设备所有者进行预期设置的本地组。
DOMAIN_ALIAS_RID_USER_MODE_HARDWARE_OPERATORS
值:
字符串值:S-1-5-32-584
此组的成员可以访问用户模式映射程序驱动程序。

WELL_KNOWN_SID_TYPE 枚举定义了常用 SID 列表。 此外,安全描述符定义语言 (SDDL) 使用 SID 字符串以字符串格式引用已知的 SID。