首页 文章

IIS8中的IIS_IUSRS和IUSR权限

提问于
浏览
110

我刚刚从Win2003上的IIS6迁移到Win2012上的IIS8,用于托管ASP.NET应用程序 .

在我的应用程序的一个特定文件夹中,我需要创建和删除文件 . 将文件复制到新服务器后,我在尝试删除文件时看到以下错误:

拒绝访问路径'D:\ WebSites \ myapp.co.uk \ companydata \ filename.pdf' .

当我检查IIS时,我看到应用程序在DefaultAppPool帐户下运行,但是,我从未在此文件夹上设置Windows权限以包含 IIS AppPool\DefaultAppPool

相反,为了停止尖叫客户,我在该文件夹上授予了以下权限:

IUSR

  • 阅读并执行

  • 列出文件夹内容

  • 阅读

IIS_IUSRS

  • 修改

  • 阅读并执行

  • 列出文件夹内容

  • 阅读

这似乎有效,但我担心已经设置了太多的权限 . 我在网上读到了有关 IUSR 究竟是否真的需要在线的相互矛盾的信息 . 任何人都可以澄清哪些用户/权限足以创建和删除此文件夹上的文档吗?另外,IUSR是IIS_IUSRS组的一部分吗?

更新和解决方案

请参阅my answer below . 我不得不遗憾地做到这一点,因为最近的一些建议没有经过深思熟虑,甚至是安全的(IMO) .

7 回答

  • 2

    我讨厌发表自己的答案,但最近的一些答案忽略了我在自己的问题中发布的解决方案,提出的方法简直就是蛮干 .

    简而言之 - you do not need to edit any Windows user account privileges at all . 这样做只会带来风险 . 使用继承的权限在IIS中完全管理该过程 .

    将修改/写入权限应用于正确的用户帐户

    • 右键单击“站点”列表下显示的域,然后选择“编辑权限”

    enter image description here

    在“安全”选项卡下,您将看到 MACHINE_NAME\IIS_IUSRS 已列出 . 这意味着IIS自动拥有该目录的只读权限(例如,在站点中运行ASP.Net) . You do not need to edit this entry .

    enter image description here

    • 单击“编辑”按钮,然后单击“添加...”

    • 在文本框中,键入 IIS AppPool\MyApplicationPoolName ,将 MyApplicationPoolName 替换为您的域名,例如 IIS AppPool\mydomain.com

    enter image description here

    • 按检查名称按钮 . 您键入的文本将转换(注意下划线):

    enter image description here

    • 按确定添加用户

    • 选择新用户(您的域)后,您现在可以安全地提供任何修改或写入权限

    enter image description here

  • 0

    IUSR是IIS_IUSER组的一部分 . 所以我猜你可以删除IUSR的权限而不用担心 . Further Reading

    但是,随着越来越多的Windows系统服务开始作为NETWORKSERVICE运行,随着时间的推移出现了一个问题 . 这是因为作为NETWORKSERVICE运行的服务可以篡改以相同标识运行的其他服务 . 由于IIS工作进程默认运行第三方代码(Classic ASP,ASP.NET,PHP代码),因此是时候将IIS工作进程与其他Windows系统服务隔离开来,并在唯一标识下运行IIS工作进程 . Windows操作系统提供了一个名为“虚拟帐户”的功能,允许IIS为每个应用程序池创建唯一标识 . DefaultAppPool是默认池,分配给您创建的所有应用程序池 .

    为了使其更安全,您可以将IIS DefaultAppPool标识更改为ApplicationPoolIdentity .

    关于权限,“创建”和“删除”总结了可以给出的所有权限 . 因此,无论您分配给IIS_USERS组,他们都需要 . 没有更多,没有更少 .

    希望这可以帮助 .

  • 3

    当我向站点文件夹添加IIS_IUSRS权限时 - 资源(如js和css)仍然无法访问(错误401,禁止) . 但是,当我添加IUSR时 - 它变好了 . 所以肯定“你不能在不担心的情况下删除IUSR的权限”,亲爱的@Travis G @

  • 5

    @EvilDr您可以在AD环境中创建IUSR_ [identifier]帐户,并让特定应用程序池在该IUSR_ [identifier]帐户下运行:

    “应用程序池”>“高级设置”>“身份”>“自定义帐户”

    在高级设置中将您的网站设置为“Applicaton user(传递身份验证)”而不是“特定用户” .

    现在为IUSR_ [identifier]赋予文件和文件夹相应的NTFS权限,例如:在companydata上修改 .

  • 45

    只有在使用ApplicationPool Identity时,IIS_IUSRS组才会突出显示 . 即使你有这个组在运行时看起来是空的,IIS根据微软文献添加到这个组来运行一个工作进程 .

  • -3

    我会使用特定用户(和非应用程序用户) . 然后我将在应用程序中启用模拟 . 无论将哪个帐户设置为特定用户,这些凭据都将用于访问该服务器上的 local resources (不适用于外部资源) .

    特定用户设置专门用于访问本地资源 .

  • 101

    IIS_IUser权限足以创建或删除文件 . 无需IUser权限 . 我给了20多个文件夹的这个权限 . 我也在寻找替代方法 . 如果有任何选项,建议我

相关问题