“NT AUTHORITY\SYSTEM”是使用者還是群組?

“NT AUTHORITY\SYSTEM”是使用者還是群組?

在 Windows 中,使用者System顯示為群組符號: 在此輸入影像描述(使用內部 Win32 API尋找AccountSid也透露好像是一個團體Sid類型組.)

另一方面,進程可以像system contextuser context. Microsoft 文件也將其描述為“系統使用者”或“系統帳戶”,而不是“系統群組”。

是否是出於任何遺留目的而顯示為群組的使用者?

(或者是某事維爾納·海森堡會有興趣嗎?


筆記:NT AUTHORITY\SYSTEM 用戶是什麼?類似,但沒有回答為什麼它顯示為群組並表現得像用戶的問題。

答案1

第一的,訪問令牌 包含的內容遠多於安全識別碼(SID)。只需要「以管理員身份運行」一個程序,就可以在任務管理器中看到它的用戶是自己,而不是管理員,而這一奇蹟只是透過修改訪問令牌來實現的,而不是透過替換SID來實現的。

其次,NT-AUTHORITY 和 SYSTEM 既不是帳戶也不是群組,儘管其他各種來源(甚至在 Microsoft 內部)也這麼說。 SID 通常有一個在需要時顯示的名稱。使用者帳戶將其 SID 作為主體 SID 提供給存取令牌,這也將確定各種實用程式顯示的名稱。但存取權杖可能包含其他 SID,例如屬於該使用者帳戶的所有群組的 SID。檢查權限時,Windows 將在存取權杖中尋找具有該權限的任何 SID。

一些眾所周知的 Windows SID 將具有 Windows 報告的名稱,儘管它們實際上並不屬於任何帳戶。

A安全標識符 維基百科將其定義為:

使用者、使用者群組或使用者的唯一的、不可變的標識符 其他安全主體

SID 甚至不需要定義使用者帳戶或群組。它只是定義了一組權限。上述維基百科文章補充:

Windows 根據存取控制清單 (ACL) 授予或拒絕對資源的存取和權限,存取控制清單使用 SID 來唯一識別使用者及其群組成員身分。當使用者登入電腦時,會產生一個存取令牌,其中包含使用者和群組 SID 以及使用者權限等級。當使用者請求存取資源時,將根據 ACL 檢查存取權杖以允許或拒絕對特定物件的特定操作。

的SIDNT-AUTHORITY\SYSTEM可以加入到其他帳號。例如,這是關於 本機系統帳戶:

LocalSystem 帳戶是服務控制管理員使用的預先定義本機帳戶。 [...]其令牌包括 NT AUTHORITY\SYSTEM 和 BUILTIN\Administrators SID;這些帳戶可以存取大多數系統物件。

人們已經可以從上面的文字中看到,即使在 Microsoft 文件中,有關係統 SID 的混亂也很普遍,這些系統 SID 並不完全是帳戶,也不是群組,而只是一組權限。這種混亂進一步擴展到其他實用程式和文章,因此應仔細檢查任何返回的資訊。

微軟的文章 Windows 作業系統中眾所周知的安全標識符 詳細介紹了所有系統 SID,其中一些如下:

影像

結論:NT-AUTHORITY\SYSTEM 是安全ID 的名稱,它既不是群組也不是帳戶。當它是程式的主體 SID 時,它在任務管理器中顯示為 SYSTEM。我最多稱之為「偽帳戶」。

答案2

恕我直言,你的觀察是正確的。NT-AUTHORITY\SYSTEM是一個群組,所以你可以稱之為系統團體。本組自 Windows NT 4 起就存在至少並且已經是一個團體了:

特殊群體

[...]

系統——作業系統。

還有一個帳號叫本地系統哪個

[...] 包括 NT AUTHORITY\SYSTEM [...]

所以你可以稱之為系統使用者誰是 SYSTEM 群組的成員。

系統內部取得Sid支持 SYSTEM 的群論:

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

關於進程作為一個群組的啟動:

為了管理安全性,進程需要訪問令牌。訪問令牌僅包含 SID。我不確定是否會檢查使用者的 SID 是否確實是使用者還是群組。原則上這並不重要:SID 定義了可以存取的內容。也許是程式碼專案文章可以幫助實施

相關內容