【转】理解IIS7的用户和组
生活随笔
收集整理的這篇文章主要介紹了
【转】理解IIS7的用户和组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文地址:http://www.iis.net/1026/SinglePageArticle.ashx
介紹
在以前的IIS版本中有一個本地帳號,是在安裝時創建的,叫做IUSR_MachineName。一旦啟用匿名身份認證,這個IUSR_MachineName帳號就是IIS默認使用的身份(identity),它同時在FTP和HTTP服務中使用。另外還有一個叫做IIS_WPG的組,它是所有應用程序池帳號的容器。在IIS安裝期間,必須保證所有的系統可用資源已經為IIS_WPG設置了適當的權限,當管理員創建一個新的應用程序池帳號時,只需要把新帳號(身份)加入這個組即可。
這個模型運轉得很好,但是和其他任何設計一樣,它們有他們的缺點,主要的缺點是IUSR_MachineName帳號和IIS_WPG組對于創建它們的系統來說都是本地的。?Windows中的每個帳號或組都有一個唯一的號碼叫做SID(安全識別號),這樣就可以區別于其它的帳號或組。我們僅使用SID來創建創建ACL。作為以前版本的IIS設計的組成部分,我們將IUSR_MachineName包含在了metabase.xml文件中,如果你嘗試從一臺機器拷貝metabase.xml到另一臺機器上,它并不會馬上運轉起來,因為另一臺機器上的帳號使用的名字是不同的。另外,你不能僅用xcopy?/o來拷貝ACL,因為不同機器上的SID也是不同的。一個解決方法是使用域帳號,但是你需要在你的架構中添加一個活動目錄。IIS_WPG組也有同樣的權限問題,如果你在一個機器的文件系統上為IIS_WPG組設置ACL,使用xcopy?/o來拷貝ACL到另一臺機器上是無法成功的。IIS了解了這一問題,并通過在IIS7.0中使用內建的帳號和組對其作了改進。
內建的帳號和組是由操作系統保證的,這樣就可以保證有一個唯一的SID,IIS甚至做得更好,它保證了新的帳號名稱和組名稱永遠不會被本地化。例如,無論你安裝的是那種語言版本的Windows,IIS帳號名稱將永遠是IUSR,而組名稱將永遠是IIS_IUSRS。
總的來說,在IIS?7.0中:
IUSR內建帳號替代了IUSR_MachineName帳號
IIS_IUSRS內建組替代了IIS_WPG組
因為IUSR是一個內建帳號,它不再需要密碼。邏輯上你可以認為它就是NETWORKSERVICE或LOCALSERVICE帳號。IUSR帳號和IIS_IUSRS組將在下面的章節中做進一步介紹。
理解新的IUSR帳號
正如上面所說的,在IIS?7.0中IUSR帳號將替代IUSR_MachineName?帳號。僅在安裝FTP服務器時,IUSR_MachineName?帳號才會被創建和使用。如果不安裝FTP,那么這個帳號將永遠不會被創建。
這個內建帳號并不需要密碼,當啟用匿名身份認證時,該帳號并將被作為默認的用戶身份使用。如果你看一看applicationHost.config文件,你會發現下面的定義:
<anonymousAuthentication?enabled="true"?userName="IUSR"?defaultLogonDomain=""?/>
這就告訴了IIS對所有的匿名身份認證請求使用新的內建帳號。這樣做的最大優點在于,我們現在可以:
*?使用Windows?Explorer或許多其他命令行工具為IUSR設置文件系統權限
*?不用再擔心這個帳號的密碼會過期
*?使用xcopy?/o無縫拷貝文件以及它們的所有權和ACL信息到不同的機器上
有一點要重點提一下:IUSR帳號和LOCALSERVICE帳號在方式上很相似,它是在網絡上匿名工作。NETWORKSERVICE和LOCALSYSTEM?可以以機器身份工作,但IUSR則不是,因為它是一種特權的升遷。如果你希望有一個擁有網絡訪問權限的匿名帳號,你就需要創建一個新的用戶帳號,并手工設置用戶名和密碼,就像你以前設置匿名身份驗證一樣。要在IIS?Manager中實現這一點,你可以:
*?點擊Start按鈕,鍵入"INetMgr.exe"并按回車(如果彈出提示框,請按Continue來提升權限)
*?點擊Connection中機器名稱旁邊的"+"按鈕
*?在IIS?Manager中雙擊你要管理的站點
*?雙擊Feature?Name標題下面的Authentication項
*?選擇Anonymous?Authentication,點擊右側Task標題下面的Edit,彈出Specify?Credentials?dialog(指定認證對話框)
*?點擊Specific?User選項,然后按下"Set"按鈕
*?輸入想設的用戶名和密碼,按OK
理解新的IIS_IUSRS組
正如前面所提到的,IIS_IUSRS組是用來替代IIS_WPG組的,它已經擁有了所有的文件和系統資源的訪問權限,因此如果一個帳號被添加到該組中,它將以應用程序池身份無縫工作。
由于與內建帳號配合工作,該內建組可以解決幾個xcopy的部署問題。如果你在文件上為IIS_WPG設置權限(在IIS6中這是可以的),并嘗試把這些文件拷貝另外一個Windows系統中,由于組SID在不同機器上是不同的,站點設置可能被破壞。
在IIS7中,由于組SID在所有Longhorn系統中是相同的。當你從一臺機器向令一臺機器移動文件時,使用'xcopy?/o'可以保留ACL和擁有權信息,這使得xcopy部署變得簡單的多!
客戶們的第二個請求是“一旦我們配置了應用程序池身份,我們需要IIS來幫我們做所有必要的修改”。我們接受了這個意見,并使這一過程在IIS7.0中變得更加簡單。當IIS啟動一個工作者進程(worker?process)時,需要創建一個供該進程使用的令牌(token)。現在,當我們創建這個令牌時,IIS將自動在運行時添加IIS_IUSRS?membership到工作者進程令牌中,這么做能夠讓賬號以應用程序池身份運行,而不需要顯示地作為IIS_IUSRS組的一部分。我們相信這一修改將幫助你更輕易地設置系統,并讓您的整體體驗更好。
如果你想禁用這個特性并手工添加賬號到IIS_IUSRS組,你可以通過設置manualGroupMembership值為true來僅用這一特性。下面是關于如何設置defaultAppPool來禁用這一特性的例子:
<applicationPools>
????<add?name="DefaultAppPool">
????????<processModel?manualGroupMembership="true"?/>
????</add>
</applicationPools>
介紹
在以前的IIS版本中有一個本地帳號,是在安裝時創建的,叫做IUSR_MachineName。一旦啟用匿名身份認證,這個IUSR_MachineName帳號就是IIS默認使用的身份(identity),它同時在FTP和HTTP服務中使用。另外還有一個叫做IIS_WPG的組,它是所有應用程序池帳號的容器。在IIS安裝期間,必須保證所有的系統可用資源已經為IIS_WPG設置了適當的權限,當管理員創建一個新的應用程序池帳號時,只需要把新帳號(身份)加入這個組即可。
這個模型運轉得很好,但是和其他任何設計一樣,它們有他們的缺點,主要的缺點是IUSR_MachineName帳號和IIS_WPG組對于創建它們的系統來說都是本地的。?Windows中的每個帳號或組都有一個唯一的號碼叫做SID(安全識別號),這樣就可以區別于其它的帳號或組。我們僅使用SID來創建創建ACL。作為以前版本的IIS設計的組成部分,我們將IUSR_MachineName包含在了metabase.xml文件中,如果你嘗試從一臺機器拷貝metabase.xml到另一臺機器上,它并不會馬上運轉起來,因為另一臺機器上的帳號使用的名字是不同的。另外,你不能僅用xcopy?/o來拷貝ACL,因為不同機器上的SID也是不同的。一個解決方法是使用域帳號,但是你需要在你的架構中添加一個活動目錄。IIS_WPG組也有同樣的權限問題,如果你在一個機器的文件系統上為IIS_WPG組設置ACL,使用xcopy?/o來拷貝ACL到另一臺機器上是無法成功的。IIS了解了這一問題,并通過在IIS7.0中使用內建的帳號和組對其作了改進。
內建的帳號和組是由操作系統保證的,這樣就可以保證有一個唯一的SID,IIS甚至做得更好,它保證了新的帳號名稱和組名稱永遠不會被本地化。例如,無論你安裝的是那種語言版本的Windows,IIS帳號名稱將永遠是IUSR,而組名稱將永遠是IIS_IUSRS。
總的來說,在IIS?7.0中:
IUSR內建帳號替代了IUSR_MachineName帳號
IIS_IUSRS內建組替代了IIS_WPG組
因為IUSR是一個內建帳號,它不再需要密碼。邏輯上你可以認為它就是NETWORKSERVICE或LOCALSERVICE帳號。IUSR帳號和IIS_IUSRS組將在下面的章節中做進一步介紹。
理解新的IUSR帳號
正如上面所說的,在IIS?7.0中IUSR帳號將替代IUSR_MachineName?帳號。僅在安裝FTP服務器時,IUSR_MachineName?帳號才會被創建和使用。如果不安裝FTP,那么這個帳號將永遠不會被創建。
這個內建帳號并不需要密碼,當啟用匿名身份認證時,該帳號并將被作為默認的用戶身份使用。如果你看一看applicationHost.config文件,你會發現下面的定義:
<anonymousAuthentication?enabled="true"?userName="IUSR"?defaultLogonDomain=""?/>
這就告訴了IIS對所有的匿名身份認證請求使用新的內建帳號。這樣做的最大優點在于,我們現在可以:
*?使用Windows?Explorer或許多其他命令行工具為IUSR設置文件系統權限
*?不用再擔心這個帳號的密碼會過期
*?使用xcopy?/o無縫拷貝文件以及它們的所有權和ACL信息到不同的機器上
有一點要重點提一下:IUSR帳號和LOCALSERVICE帳號在方式上很相似,它是在網絡上匿名工作。NETWORKSERVICE和LOCALSYSTEM?可以以機器身份工作,但IUSR則不是,因為它是一種特權的升遷。如果你希望有一個擁有網絡訪問權限的匿名帳號,你就需要創建一個新的用戶帳號,并手工設置用戶名和密碼,就像你以前設置匿名身份驗證一樣。要在IIS?Manager中實現這一點,你可以:
*?點擊Start按鈕,鍵入"INetMgr.exe"并按回車(如果彈出提示框,請按Continue來提升權限)
*?點擊Connection中機器名稱旁邊的"+"按鈕
*?在IIS?Manager中雙擊你要管理的站點
*?雙擊Feature?Name標題下面的Authentication項
*?選擇Anonymous?Authentication,點擊右側Task標題下面的Edit,彈出Specify?Credentials?dialog(指定認證對話框)
*?點擊Specific?User選項,然后按下"Set"按鈕
*?輸入想設的用戶名和密碼,按OK
理解新的IIS_IUSRS組
正如前面所提到的,IIS_IUSRS組是用來替代IIS_WPG組的,它已經擁有了所有的文件和系統資源的訪問權限,因此如果一個帳號被添加到該組中,它將以應用程序池身份無縫工作。
由于與內建帳號配合工作,該內建組可以解決幾個xcopy的部署問題。如果你在文件上為IIS_WPG設置權限(在IIS6中這是可以的),并嘗試把這些文件拷貝另外一個Windows系統中,由于組SID在不同機器上是不同的,站點設置可能被破壞。
在IIS7中,由于組SID在所有Longhorn系統中是相同的。當你從一臺機器向令一臺機器移動文件時,使用'xcopy?/o'可以保留ACL和擁有權信息,這使得xcopy部署變得簡單的多!
客戶們的第二個請求是“一旦我們配置了應用程序池身份,我們需要IIS來幫我們做所有必要的修改”。我們接受了這個意見,并使這一過程在IIS7.0中變得更加簡單。當IIS啟動一個工作者進程(worker?process)時,需要創建一個供該進程使用的令牌(token)。現在,當我們創建這個令牌時,IIS將自動在運行時添加IIS_IUSRS?membership到工作者進程令牌中,這么做能夠讓賬號以應用程序池身份運行,而不需要顯示地作為IIS_IUSRS組的一部分。我們相信這一修改將幫助你更輕易地設置系統,并讓您的整體體驗更好。
如果你想禁用這個特性并手工添加賬號到IIS_IUSRS組,你可以通過設置manualGroupMembership值為true來僅用這一特性。下面是關于如何設置defaultAppPool來禁用這一特性的例子:
<applicationPools>
????<add?name="DefaultAppPool">
????????<processModel?manualGroupMembership="true"?/>
????</add>
</applicationPools>
轉載于:https://www.cnblogs.com/djbone/archive/2008/08/21/1272849.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【转】理解IIS7的用户和组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FLEX实例:GOOGLE地图.
- 下一篇: arp攻击源代码(收集)