什么是“NT AUTHORITY”和“NT SERVICE”

Zyg*_*ygD 21 windows sql-server windows-server

我可以找到很多关于什么是“NT AUTHORITY”斜线“东西”的信息。与“NT 服务”相同。但不适用于斜线之前的部分。我在工作中不时遇到他们。我可能会收到一些文档,例如域管理员,其中有时包括来自这两个“位置”(NT AUTHORITY\SYSTEM 或 NT SERVICE\MSSQLSERVER)的用户。所以我知道他们是某种标准用户。

所以我实际上想了解斜线之前的核心内容是什么。它是否以某种方式连接到 Windows NT,因为它似乎并非如此?那些“NT”字母到底是怎么回事?权限和服务是同一级别的东西吗?

Lan*_*ard 18

如果您愿意对这些定义稍加放松,那么 NT_AUTHORITY 本质上是指 Windows 操作系统本身。或者也许作为“操作系统代表您授权的事情”。

(起初,NT 意味着新技术,一个通常用于企业的操作系统版本。它与 Windows 98、98 和更早版本中使用的不太严格、不太安全的 Windows 9.x 内核形成对比。从 Windows 2000 开始,各种版本组合在一个基于 Windows NT 4 的版本上。这些最终成长为 Windows Vista、7、8.x,以及即将发布的 10。

“NT”代币基本上是早期遗留下来的代币。您可以将其视为 Windows 本身的替代品。更正式地说,它是一组处理后台任务和维护操作的服务用户的父级。

斜线右边的token指的是OS的各个内部服务“用户”。 比如NT AUTHORITY\SYSTEM处理系统服务,NT AUTHORITY\LOCAL SERVICE做本地服务,NT AUTHORITY\NETWORK SERVICE是网络服务,等等。更多背景信息可以在此线程MSDN 的各个位置找到。创造性地使用您喜欢的搜索引擎可以帮助您找到更多。

基本上相同的东西代表服务运行,服务(本质上)是一个在后台运行的实用程序。(例如,BITS 服务在后台下载更新。)有大量的服务在运行,并且使用令牌 NT_SERVICE 将它们与其他事物区分开来。这是一篇涉及更多技术细节的文章。(不过,除非您确切地知道它的用途,否则我不会关闭任何服务。这是解决问题的好方法。)


Nic*_*lay 9

更技术性的解释:

在 Windows ACL(访问控制列表)中,权限应用于受托人- 用户、组或其他安全主体。

受托人由SID唯一标识,SID是以开头S-1-字符串,可以格式化为人类可读的字符串,例如NT AUTHORITY\SYSTEMfor S-1-5-18

为 Windows NT 提出这种设计的人旨在使其具有通用性

有通用的众所周知的 SID,它们对使用此安全模型的所有安全系统都有意义包括 Windows 以外的操作系统。此外,还有一些众所周知的 SID 仅在 Windows 系统上才有意义。

他们想出了一些通用的权限,比如SECURITY_WORLD_SID_AUTHORITY( S-1-1) 只产生一个 SID,S-1-1-0意思是“每个人”;但大多数使用的 SID 以S-1-5- “NT 权限”的前缀开头,用于在基于 NT 的操作系统(即所有现代 Windows 版本)中生成 SID

此时您可能会假设以 开头的 SIDS-1-5-...显示为NT AUTHORITY\,但事实并非如此 - 许多子分支都有自己可读形式的前缀,例如:

  • S-1-5-21-domainID-用于自定义 Active Directory 域 ( MYDOMAIN\...)
  • S-1-5-32BUILTIN\(例如BUILTIN\Administrators-544)
  • S-1-5-80-serviceHash 是为了 NT SERVICE\(service name)

未以其他名称组合在一起的知名 SID 有时会显示NT AUTHORITY\前缀,例如:

因此,“NT AUTHORITY”名称是 Windows 中使用的安全子系统的极端通用性的产物,除了“我们没有提出更具体的组”之外,没有其他有用的含义。

NT SERVICE\( S-1-5-80-...)是用于“虚拟帐户”的前缀。在指定运行名为 MyService 的服务的帐户时,您可以输入“NT SERVICE\MyService”而无需密码,它将在单独的安全上下文中运行,您可以在其他地方为其设置权限。