在早期的IIS版本中,随着IIS的安裝,系統會建立一個IUSR_MachineName使用者。IIS啟用匿名通路,就是通過此使用者進行身份認證的,包括FTP匿名通路,HTTP匿名通路。
在建立IUSR_MachineName使用者的同時,IIS_WPG使用者組也會被建立出來。此使用者組是一個包含所有預定義應用程式池辨別使用者的容器。在安裝IIS的時候,系統裡所有IIS需要用到的資源都被授予IIS_WPG使用者組适當的權限。是以,當管理者為應用程式池辨別為一個新建立的使用者時,隻需将該使用者加入IIS_WPG使用者組,即可保證應用程式池正常工作。
在這樣的架構下,IIS可以很好地工作,但也有其不足之處:IUSR_MachineName使用者和IIS_WPG使用者組都是本地系統裡的使用者(組),同系統中的其他使用者(組)一樣,都有各自的唯一安全辨別符SID。IIS的配置檔案metabase.xml有調用IUSR_MachineName使用者。由于此使用者在其他計算機上有着不同的SID及名稱,是以當我們把metabase.xml複制到其他計算機上時,IIS将無法正常工作。
另外,也正是由于SID的緣故,我們無法将IUSR_MachineName使用者相關的ACL成功複制到其他計算機上。IIS_WPG使用者組也一樣。
IIS 7成功解決了這兩個問題。
IIS 7的内置使用者(組)突破了SID的限制,因為IIS7在調用這些内置使用者(組)時,使用的是使用者名而非SID。而且在不同語言版本的系統中,IIS 7的内置使用者(組)都是IUSR(IIS_IUSRS)。其中,IUSR用于取代IUSR_MachineName,IIS_IUSRS用于取代IIS_WPG。
由于IUSR屬于内置使用者,是以使用時,不需要輸入密碼。你可以把它了解為NETWORK SERVICE或LOCAL SERVICE一類的使用者。下面具體講一下IUSR和IIS_IUSRS。
IUSR
在IIS 7中,IUSR使用者取代了IUSR_MachineName使用者。IUSR在認證時不需要密碼。IIS 7的匿名身份認證,就是通過此使用者進行的。打開IIS 7配置檔案applicationHost.config ,可以看到這樣一段設定:
<anonymousAuthentication enabled="true" userName="IUSR" defaultLogonDomain="" />
這表明IIS 7是通過IUSR來實作所有的匿名通路。這樣一來,你就可以:
通過Explorer或cmd來設定IUSR的權限;
不用擔心IUSR密碼過期的問題;
将IUSR相關的ACL無縫遷移至其他計算機上。
當然,我們也可以将IIS 7的匿名身份辨別為成其他使用者:
1、打開IIS Manager,輕按兩下你想要設定的站點。
2、在功能視圖中,輕按兩下身份驗證。
3、選擇匿名身份驗證,點選編輯。
4、點選特定使用者,設定。
5、輸入該使用者的使用者名密碼,确定。
IIS_IUSRS
IIS_IUSRS使用者組取代了IIS_WPG使用者組。此内置使用者組擁有應用程式池通路系統資源所需的足夠權限。是以,任何加入此使用者組的使用者,都可以成為一個合格的應用程式池辨別使用者。
和IUSR使用者一樣,IIS_IUSRS使用者組也可以實作不同計算機之間的ACL複制。
當IIS啟動工作程序時,需要使用者來辨別程序,而IIS_IUSRS使用者組成員ApplicationPoolIdentity就是預設的辨別。
ApplicationPoolIdentity并不是指一個使用者,而是所有程式池預設辨別使用者的統稱。這些使用者與程式池是一一對應的。例如,程式池DefaultAppPool的ApplicationPoolIdentity是用IISAPPPOOL\DefaultAppPool。
是以,有了IIS_IUSRS使用者組,管理應用程式池辨別就變得簡單多了,至少你不需要再為不同程式池下的站點設定不同的程式池辨別使用者權限。
原文位址:
<a href="http://learn.iis.net/page.aspx/140/understanding-built-in-user-and-group-accounts-in-iis/" target="_blank">http://learn.iis.net/page.aspx/140/understanding-built-in-user-and-group-accounts-in-iis/</a>
本文轉自Tenderrain 51CTO部落格,原文連結:http://blog.51cto.com/tenderrain/1969186,如需轉載請自行聯系原作者