IIS8中的IIS_IUSRS和IUSR权限
我刚刚从Win2003上的IIS6移到Win2012上的IIS8来托pipeASP.NET应用程序。
在我的应用程序的一个特定的文件夹中,我需要创build和删除文件。 将文件复制到新服务器后,当我试图删除文件时,我一直看到以下错误:
访问path“D:\ WebSites \ myapp.co.uk \ companydata \ filename.pdf”被拒绝。
当我检查IIS时,我发现应用程序正在DefaultAppPool帐户下运行,但是,我从来没有在此文件夹上设置Windows权限以包含IIS AppPool \ DefaultAppPool
相反,为了阻止尖叫客户,我授予了文件夹的以下权限:
IUSR
- 阅读并执行
- 列出文件夹内容
- 读
- 写
IIS_IUSRS
- 修改
- 阅读并执行
- 列出文件夹内容
- 读
- 写
这似乎奏效了,但是我担心已经设置了太多的权限。 我在网上阅读了冲突的信息,关于IUSR是否真的需要在这里。 任何人都可以澄清哪些用户/权限就足够创build和删除该文件夹上的文件吗? 另外,IUSR是IIS_IUSRS组的一部分吗?
更新和解决scheme
请参阅下面的答案 。 我不得不这样做,因为最近的一些build议没有经过深思熟虑,甚至是安全的(IMO)。
我讨厌张贴我自己的答案,但最近有些答案忽视了我在自己的问题上发表的解决scheme,暗示了这种方法毫无道理。
简而言之, 您不需要编辑任何Windows用户帐户权限 。 这样做只会带来风险。 该过程完全在IIS中使用inheritance权限进行pipe理。
将修改/写入权限应用于正确的用户帐户
-
在出现在“站点”列表下方的域中右键单击该域,然后select“ 编辑权限”
在安全选项卡下,您将看到
MACHINE_NAME\IIS_IUSRS
列出。 这意味着IIS自动具有对目录的只读权限(例如,在站点中运行ASP.Net)。 您不需要编辑此条目 。 -
点击编辑button,然后添加…
-
在文本框中键入
IIS AppPool\MyApplicationPoolName
,用您的域名replaceMyApplicationPoolName
,例如IIS AppPool\mydomain.com
-
按检查姓名button。 您input的文字将会变形(注意下划线):
-
按OK添加用户
-
select新用户(您的域)后,现在可以安全地提供任何修改或写入权限
IUSR是IIS_IUSER组的一部分,所以我想你可以删除IUSR的权限而不用担心。 进一步阅读
但是,随着越来越多的Windows系统服务开始作为NETWORKSERVICE运行,随着时间的推移,出现了一个问题。 这是因为作为NETWORKSERVICE运行的服务可以篡改以相同身份运行的其他服务。 由于IIS工作进程默认运行第三方代码(传统ASP,ASP.NET,PHP代码),因此是时候将IIS工作进程与其他Windows系统服务隔离开来,并以唯一身份运行IIS工作进程。 Windows操作系统提供了一个名为“虚拟帐户”的function,允许IIS为其每个应用程序池创build唯一标识。 DefaultAppPool是分配给您创build的所有应用程序池的默认池。
为了使它更安全,您可以将IIS DefaultAppPool标识更改为ApplicationPoolIdentity。
关于权限,“创build”和“删除”汇总了可以给出的所有权限。 所以无论你分配给IIS_USERS组是什么,他们将需要。 没有什么比这更less的了。
希望这可以帮助。
@EvilDr您可以在您的AD环境中创build一个IUSR_ [标识符]帐户,并让该特定应用程序池在该IUSR_ [标识符]帐户下运行:
“应用程序池”>“高级设置”>“身份”>“自定义帐户”
将您的网站设置为“应用程序用户(传递身份validation)”,而不是“高级设置”中的“特定用户”。
现在给IUSR_ [标识符]文件和文件夹上适当的NTFS权限,例如:修改companydata。
当我添加IIS_IUSRS权限到站点文件夹 – 资源,如js和css,仍然无法访问(错误401,禁止)。 但是,当我添加IUSR时,它就成了好的。 所以肯定“你不能无视移除IUSR的权限”,亲爱的@Travis G @
我会使用特定的用户(而不是应用程序用户)。 然后我将在应用程序中启用模拟。 一旦你这样做了,无论哪个帐户被设置为特定的用户,这些凭据将用于访问该服务器上的本地资源 (不适用于外部资源)。
特定用户设置专门用于访问本地资源。
IIS_IUser权限足以创build或删除文件。 不需要IUser许可。 我给这个权限超过20个文件夹。 我正在寻找替代方法来做到这一点。 如果有任何选项可用,build议我
只有在使用ApplicationPool Identity时,IIS_IUSRS组才具有突出性。 即使您在运行时将这个组看起来是空的,IIS也会根据微软文献向这个组添加一个工作进程。