IIS 7.5中神秘的應(yīng)用程序池標(biāo)識(shí)解析(程序池賬戶)
IIS7.5中(僅win7,win2008 SP2,win2008 R2支持),應(yīng)用程序池的運(yùn)行帳號(hào),除了指定為L(zhǎng)ocalService,LocalSystem,NetWorkService這三種基本類型外,還新增了一種ApplicationPoolIdentify
win7的官方幫助上是這么說的:ApplicationPoolIdentity – 默認(rèn)情況下,選擇“應(yīng)用程序池標(biāo)識(shí)”帳戶。啟動(dòng)應(yīng)用程序池時(shí)動(dòng)態(tài)創(chuàng)建“應(yīng)用程序池標(biāo)識(shí)”帳戶,因此,此帳戶對(duì)于您的應(yīng)用程序來說是最安全的。
也就是說"ApplicationPoolIdentity"帳號(hào)是系統(tǒng)動(dòng)態(tài)創(chuàng)建的“虛擬”帳號(hào)(說它是虛擬的,是因?yàn)樵谟脩艄芾砝锟床坏皆撚脩艋蛴脩艚M,在命令行下輸入net user也無法顯示,但該帳號(hào)又是確實(shí)存在的)
如何驗(yàn)證該帳號(hào)確實(shí)是存在的的?打開任務(wù)管理器,觀察一下:
w3wp.exe即iis進(jìn)程,上圖中高亮部分表明該iis進(jìn)程正在以帳號(hào)luckty運(yùn)行(注意這里的luckty即為上圖中的應(yīng)用程序池名稱)
好了,搞清楚這個(gè)有什么用?
先來做一個(gè)測(cè)試,比如我們?cè)趇is里新建一個(gè)站點(diǎn),主目錄設(shè)置為c:\2\,應(yīng)用程序池就指定剛才圖中的luckty
假如我們?cè)谠撜军c(diǎn)的default.aspx.cs里寫入這樣一行代碼 :
File.AppendAllText("C:\\TestDir\\1.txt",DateTime.Now.ToString());
前提是c盤必須先建一個(gè)目錄TestDir,同時(shí)除Administrator,System保留完全控制權(quán)外,其它帳號(hào)的權(quán)限都刪除掉
運(yùn)行后,會(huì)提示異常: 對(duì)路徑“C:\TestDir\1.txt”的訪問被拒絕。
原因很明顯:該站點(diǎn)運(yùn)行時(shí)是以應(yīng)用程序池(luckty)對(duì)應(yīng)的虛擬帳號(hào)運(yùn)行的,而這個(gè)虛擬帳號(hào)不具備c:\TestDir的訪問權(quán)限
這種情況在web服務(wù)器(iis6)安全配置中很常見,比如我們把圖片上傳目錄,常常放在主目錄之外,同時(shí)以虛擬目錄形式掛于站點(diǎn)之下,另外在IIS6中不指定該目錄任何執(zhí)行權(quán)限 ,這樣即使有人非法上傳了asp/aspx木馬上去,也無法運(yùn)行搞不成破壞!言歸正傳,要想讓那一行測(cè)試代碼正常運(yùn)行,解決辦法很簡(jiǎn)單,把虛擬帳號(hào)的權(quán)限加入文件夾安全權(quán)限中即可,但是問題來了:這個(gè)虛擬帳號(hào)我們是不可見的,如果你直接添加名為luckty的用戶到文件夾安全帳號(hào)里,根本通不過(提示找不到luckty用戶),說明這個(gè)虛擬帳號(hào)名稱并不是"luckty"
關(guān)鍵:手動(dòng)輸入 IIS AppPool\luckty (即IIS AppPool\應(yīng)用程序池名),再確定,這回ok了.
當(dāng)然除了用"IIS AppPool\應(yīng)用程序池名"外,windows內(nèi)部還有一個(gè)特殊的用戶組Authenticated Users,把這個(gè)組加入TestDir的安全權(quán)限帳號(hào)里也可以,不過個(gè)人覺得沒有"IIS AppPool\應(yīng)用程序池名"來得精確.
結(jié)束語:IIS7.5的虛擬帳號(hào)設(shè)計(jì)確實(shí)很棒,想想傳統(tǒng)IIS6的時(shí)候,為了把同一服務(wù)器上的各站點(diǎn)權(quán)限分開(以防止木馬搗亂),不得不創(chuàng)建一堆iuser_XXX,iwam_XXX帳號(hào)并指定密碼,再一個(gè)個(gè)站點(diǎn)分配過去,累死人!而虛擬帳號(hào)設(shè)計(jì)則讓這類管理輕松多了,也不用擔(dān)心密碼過于簡(jiǎn)單或過期問題。So,還在等什么,趕緊升級(jí)到win7/win2008 R2吧!
- 在IIS7、IIS7.5中應(yīng)用程序池最優(yōu)配置方案
- 優(yōu)化IIS7.5支持10萬個(gè)同時(shí)請(qǐng)求的配置方法
- IIS7 應(yīng)用程序池自動(dòng)回收關(guān)閉的解決方案
- 應(yīng)用程序池*將被自動(dòng)禁用,原因是為此應(yīng)用程序池提供服務(wù)的進(jìn)程中出現(xiàn)一系列錯(cuò)誤
- 解決IIS中應(yīng)用程序池提供服務(wù)的進(jìn)程無法響應(yīng)Ping或進(jìn)程關(guān)閉時(shí)間超過了限制
- 解決IIS7、IIS7.5 應(yīng)用程序池回收假死的方法
- iis應(yīng)用程序池監(jiān)控方法實(shí)例
- IIS應(yīng)用程序池自動(dòng)停止 關(guān)閉 假死 處理集錦
- IIS7.5應(yīng)用程序池集成模式和經(jīng)典模式的區(qū)別介紹
- IIS7.0/IIS7.5/IIS8.0中應(yīng)用程序池最優(yōu)配置方案
相關(guān)文章
IIS FTP部分文件上傳報(bào)錯(cuò)451的原因及解決方法
最近部署一個(gè)基于IIS7的ftp服務(wù)器,測(cè)試傳幾個(gè)文件遇到問題了,部分文件可以正常上傳,但部分報(bào)錯(cuò)。下面與大家分享下造成的原因及解決方法2014-06-06Windows下搭建svn服務(wù)器簡(jiǎn)明教程
這篇文章主要介紹了Windows下搭建svn服務(wù)器簡(jiǎn)明教程,svn(subversion)是一款的版本管理工具,目前,大多數(shù)開源軟件都使用svn作為代碼版本管理軟件,需要的朋友可以參考下2015-01-01IIS7 網(wǎng)站發(fā)布常見報(bào)錯(cuò)問題解決方案匯總
這篇文章主要為大家詳細(xì)介紹了IIS7網(wǎng)站發(fā)布常見問題及解決方案,感興趣的小伙伴們可以參考一下2016-08-08windows服務(wù)器中.shtml頁面訪問無法顯示解決方法
這篇文章主要介紹了windows服務(wù)器中.shtml頁面訪問無法顯示解決方法,需要的朋友可以參考下2014-11-11win2003 服務(wù)器超出最大連接+強(qiáng)制重啟服務(wù)器(方法)
有時(shí)候我們?cè)谶h(yuǎn)處連接服務(wù)器的時(shí)候,提示服務(wù)器超出最大連接,那么可以參考下面的方法解決。2011-08-08解決IIS中應(yīng)用程序池提供服務(wù)的進(jìn)程無法響應(yīng)Ping或進(jìn)程關(guān)閉時(shí)間超過了限制
這篇文章主要介紹了解決IIS中應(yīng)用程序池提供服務(wù)的進(jìn)程無法響應(yīng)Ping或進(jìn)程關(guān)閉時(shí)間超過了限制,需要的朋友可以參考下2016-06-06win2008 r2 安裝sqlserver 2000問題的解決方法
最近服務(wù)器升級(jí)了win2008 r2系統(tǒng),考慮到用戶額需要,sqlserver使用了2000,其實(shí)個(gè)人建議安裝sql2005或sql2008,但也不能考慮一些朋友額需求2013-08-08win2003 64位系統(tǒng)下ODBC連接使用方法
一般系統(tǒng)部署的服務(wù)器若是windows系統(tǒng),就會(huì)采用64位win2003的結(jié)構(gòu)。可是我們編寫的程序絕大多數(shù)都是在x86下32位cpu架構(gòu)中編譯的,要正常移植到64位機(jī)器還真的是很麻煩,不僅要求應(yīng)用程序是64位模式編譯,還需要數(shù)據(jù)庫(kù)也得是64位,iis64位2017-03-03