
我希望能夠允許開發團隊在Win2003伺服器上安裝服務。他們已經可以透過 RDP/FTP 使用有限的帳戶進行連接,但我希望能夠授予安裝權限。
在不授予管理員權限的情況下如何做到這一點?
(這些服務是使用 .NET 框架建立的,因此我們使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe 進行安裝)
答案1
授權安裝服務會有點困難。可以向全域物件管理器中的服務控制管理器 (SCM) 物件的使用者授予「SC_MANAGER_CREATE_SERVICE」權限。
在 Windows Server 2003 之前的 Windows 版本中,無法在 SCM 上變更權限。從 W2K3 SP1 開始,您可以變更 SCM 上的權限。
更改安全性的 API 是設定服務對象安全,更多資訊請參閱此處:http://msdn.microsoft.com/en-us/library/aa379589(VS.85).aspx
更多關於可授予 SCM 的權限以及 SCM 上設定的預設 DACL 的更多參考資訊可在此處找到:http://msdn.microsoft.com/en-us/library/ms685981(VS.85).aspx
簡而言之,不編寫程式碼就無法做到這一點。沒有神奇的註冊表設定等。
答案2
我認為更大的問題是讓開發團隊存取他們不管理的伺服器。與其嘗試向用戶授予權限(SC_MANAGER_CREATE_SERVICE),不如認真考慮為他們提供自己的盒子 - 即使只是一個用於測試的虛擬機,一旦他們說準備就緒,實際管理員就應該將服務安裝到生產系統中。
答案3
http://support.microsoft.com/?kbid=288129有一些有關管理服務的信息,但我認為這不能擴展到包括創建任意服務,而無需對伺服器進行一些重大的安全更改。
如果您建立一個或多個服務,然後按照知識庫中的描述授予存取權限,您的開發人員可以停止該服務並複製新的二進位文件,這樣即使您必須先建立服務,他們也可以開發/偵錯服務。
就我個人而言,我將我們的開發人員限制在測試伺服器上,並授予他們管理員存取權限。如果沒有先讓我相信他們的東西正在工作,這些小寶貝就無法訪問我的實時伺服器!
JR