The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

Windows 如何設定「特定服務」由「特定使用者」進行管理

我們有個客戶的生產環境的資安要求極其嚴格,我們廠商進去維護都必須申請才能提高權限,否則就要委由系統維護人員進行操作,所以非常不方便。然而他們向我提出了個例外條件,就是他們可以接受特定服務可以由廠商的特定帳號來管理,不過好像 Windows 沒有這種授權方式,請我找看看有沒有這種方法。最後我也研究出設定的方法,還真的 100% 符合客戶的要求,今後我們維護作業就更輕鬆了,以下是設定的方法筆記。

要搜尋這種需問題,最重要的就是下對關鍵字,我也忘了我當時搜尋哪些關鍵字,但有點是肯定的:輸入中文來搜尋肯定找不到。 XD

最後我找到 KB 325349 - How to grant users rights to manage services in Windows Server 2003,這一篇就是專講如何授予特定使用者權限來管理 Windows 服務,裡面提到了三個方法,不過由於我們的環境是 Windows Server 2008,所以並不是所有方法都適用,我一一將實驗與研究的心得說明如下:

 

方法一:使用群組原則 ( Use Group Policy )

這方法請參考另一篇 KB 324802 - HOW TO: Configure Group Policies to Set Security for System Services in Windows Server 2003

若要找適用於 Windows Server 2008 的群組原則設定,請參考以下這篇文章的說明進行操作:Controlling Service Security Using Windows Server 2008

 

方法二:使用安全性範本 ( Use Security Templates )

KB 325349 裡僅適用於 Windows Server 2003,設定時的畫面如下:

我試了幾次似乎無法透過這種方式在 Windows Server 2008 設定,主要是找不到 Security Template 的設定檔,但實在是不甘心,後來又多花了些時間研究 Security Template,直到看完了 Default Security Templates in Windows 2008 這篇文章才確認原來是 Windows Server 2008 的 Security Template 檔案已經移動位置了,新的路徑在 C:\Windows\inf 目錄下 。

所以如果要在 Windows Server 2008 使用安全性範本設定,做到 KB 325349 Method 2 的第 6 步時,要記得選取 C:\Windows\inf\Defltsv.inf 設定檔才可以,以下是設定成功時的畫面:

 

方法三:使用 Subinacl.exe 工具程式

這個方法最容易請人代為操作,只要一行指令就能設定完成,以下是設定步驟:

1. 下載並安裝 SubInACL 工具程式

下載完 subinacl.msi 安裝檔並執行安裝程序後,程式會被安裝在以下目錄:

C:\Program Files\Windows Resource Kits\Tools

此目錄下會有個 subinacl.exe 執行檔與 subinacl.htm 說明文件:

此工具的用法說明如下:( 其中 [DomainName\][=Access] 參數是可以被忽略的 )

SUBINACL /SERVICE \\MachineName\ServiceName /GRANT=[DomainName\]UserName[=Access]

在執行之前,你必須要知道 Windows 服務的名稱為何,所以請注意不要輸入「顯示名稱」喔!

以下是指令執行的範例:

1. 設定本機的 ASP.NET 狀態服務,授予 test01 使用者擁有完整控制權限

subinacl.exe /SERVICE \\.\aspnet_state /GRANT=test01

2. 設定本機的 ASP.NET 狀態服務,撤銷 test01 使用者的所有控制權限

subinacl.exe /SERVICE \\.\aspnet_state /REVOKE=test01

3. 如果你只要授予該使用者「啟動」與「停止」的權限,可以使用以下指令:

subinacl.exe /SERVICE \\.\aspnet_state /GRANT=test01=TO

   上述的 T 代表的是「啟動服務」的權限,O 代表的是「停用服務」的權限,完整存取權限的定義如下:

 

由於一次意外的經驗讓我學會了 Security Templates 的設定,這才發現原來 Windows 可以設定如此仔細的安全性設定,不過話說回來,又有幾個單位會這樣仔細的設定服務權限控管呢? ^_^

 

相關連結