mar*_*gle 23 windows user-accounts local-groups
在 Windows 中,用户System显示为组符号:
.
(使用内部 Win32 API LookupAccountSid也显示它似乎是一个组SidTypeGroup。)
另一方面,进程可以system context在user context. Microsoft 文档也将其描述为“系统用户”或“系统帐户”,而不是“系统组”。
它是出于任何遗留目的而显示为组的用户吗?
(或者它是不是Werner Heisenberg会感兴趣的东西?)
注意:NT AUTHORITY\SYSTEM 用户是什么?是相似的,但没有回答为什么它显示为组并且行为像用户的问题。
har*_*ymc 21
首先,访问令牌 包含的不仅仅是安全标识符 (SID)。只需要“以管理员身份运行”一个程序就可以在任务管理器中看到它的用户是自己而不是管理员,而这个奇迹只是通过修改访问令牌而不是通过替换SID来实现的。
其次,NT-AUTHORITY 和 SYSTEM 既不是帐户也不是组,尽管有各种其他来源(甚至在 Microsoft 内部)。SID 通常具有在需要时显示的名称。用户帐户将其 SID 作为主体 SID 提供给访问令牌,这还将确定各种实用程序显示的名称。但是访问令牌可能包含其他 SID,例如属于该用户帐户的所有组。检查权限时,Windows 将在具有该权限的访问令牌中查找任何 SID。
一些著名的 Windows SID 将具有 Windows 报告的名称,尽管它们实际上并不属于任何帐户。
维基百科将安全标识符定义为:
用户、用户组或其他安全主体的唯一的、不可变的标识符 。
SID 甚至不需要定义用户帐户或组。它只是定义了一组权限。上面的维基百科文章补充说:
Windows 根据访问控制列表 (ACL) 授予或拒绝对资源的访问和特权,ACL 使用 SID 来唯一标识用户及其组成员身份。当用户登录计算机时,会生成一个访问令牌,其中包含用户和组 SID 以及用户权限级别。当用户请求访问资源时,会根据 ACL 检查访问令牌以允许或拒绝对特定对象的特定操作。
的 SIDNT-AUTHORITY\SYSTEM可以添加到其他帐户。例如,这是关于LocalSystem 帐户的说法
:
LocalSystem 帐户是服务控制管理器使用的预定义本地帐户。[...]它的令牌包括 NT AUTHORITY\SYSTEM 和 BUILTIN\Administrators SID;这些帐户可以访问大多数系统对象。
已经可以在上面的文本中看到即使在 Microsoft 文档中也存在关于系统 SID 的混淆,它们不完全是帐户或组 - 这只是一组权限。这种混淆进一步扩展到其他实用程序和文章,因此应仔细检查任何返回的信息。
Microsoft 文章 Windows 操作系统中的众所周知的安全标识符 详细介绍了所有系统 SID,其中一些我包括在下面:
结论:NT-AUTHORITY\SYSTEM 是安全 ID 的名称,它既不是组也不是帐户。当它是程序的主体 SID 时,它在任务管理器中显示为 SYSTEM。我最多称之为“伪帐户”。
恕我直言,您的观察是正确的。NT-AUTHORITY\SYSTEM是一个组,因此您可以将其称为系统组。这个组至少从 Windows NT 4开始就存在,并且已经是一个组:
特殊团体
[...]
系统 - 操作系统。
还有一个名为帐户本地系统,其
[...] 包括 NT AUTHORITY\SYSTEM [...]
因此您可以将其称为属于 SYSTEM 组成员的系统用户。
Sysinternals的PsGetSid支持系统中的群论:
C:\>PsGetsid.exe S-1-5-18
PsGetSid v1.44 - Translates SIDs to names and vice versa
Copyright (C) 1999-2008 Mark Russinovich
Sysinternals - www.sysinternals.com
Account for YOURPCNAMEHERE\S-1-5-18:
Well Known Group: NT-AUTHORITY\SYSTEM
Run Code Online (Sandbox Code Playgroud)
关于一个进程作为一个组的开始:
为了管理安全性,进程获取访问令牌。访问令牌仅包含 SID。我不确定是否有检查用户的 SID 是否真的是用户或组。原则上这无关紧要:SID 定义了可以访问的内容。也许CodeProject 文章可以帮助实现
| 归档时间: |
|
| 查看次数: |
54796 次 |
| 最近记录: |