為什麼有時需要註銷並重新登錄向使用者添加組
在 Windows 系統中(特別是我使用的 Windows Server 2008R2),有時當我將本地使用者添加到本地組時,使用者需要註銷並再次登錄,然後才能將這個新組註冊到他。
但有時也可以立即完成組註冊.. 使用者無需註銷並重新登錄..
為什麼會這樣?
您提到本地使用者和組,因此將 Active Directory 放在一邊。
您應該始終需要重新進行身份驗證,以便使用者的安全令牌包含新的組成員身份。這通常意味著您需要重新登錄。LSASS 僅在使用者進行身份驗證時發出此令牌,這通常僅在登錄時,但您可以執行類似的操作
C:\> runas /user:Yourself cmd.exe
,這將提示您輸入密碼,您將再次通過身份驗證,並且您的新組成員身份將被提取。(但我不能保證任何其他可能已查詢您的組成員資格的正在執行的應用程序將在不重新啟動這些應用程序的情況下刷新其數據等)(不提
klist.exe
,因為我們只討論本地使用者和組。)當使用者通過身份驗證時,本地安全機構 (LSA) 會為該使用者創建一個訪問令牌(在本例中為主訪問令牌)。訪問令牌包含使用者的安全標識符 (SID)、使用者所屬組的所有 SID 以及使用者的權限。如果您在發布使用者訪問令牌後將使用者添加到組,或修改分配給使用者帳戶的權限,則使用者必須先註銷然後重新登錄,然後訪問令牌才會更新。
每當執行緒或程序與安全對象互動或嘗試執行需要特權的系統任務時,作業系統都會檢查有效的訪問令牌以確定其授權級別。如果一個執行緒正在模擬,則有效令牌通常被視為執行緒上的令牌。如果與安全對象互動的執行緒不是模擬的,則檢查程序上的令牌以獲取訪問決策。
因此,有兩種訪問令牌,主要的和模擬的。每個程序都有一個主令牌,用於描述與該程序關聯的使用者帳戶的安全上下文。主要訪問令牌通常分配給程序以表示該程序的預設安全資訊。另一方面,模擬訪問令牌通常用於客戶端/伺服器場景。模擬令牌使執行緒能夠在與擁有該執行緒的程序的安全上下文不同的安全上下文中執行。