![尽管“IIS APPPOOL\PoolName”设置正确,网站仍无法获取在 Windows 2012R2 中使用 IIS 8.5 写入文件夹的适当权限](https://linux22.com/image/1449220/%E5%B0%BD%E7%AE%A1%E2%80%9CIIS%20APPPOOL%5CPoolName%E2%80%9D%E8%AE%BE%E7%BD%AE%E6%AD%A3%E7%A1%AE%EF%BC%8C%E7%BD%91%E7%AB%99%E4%BB%8D%E6%97%A0%E6%B3%95%E8%8E%B7%E5%8F%96%E5%9C%A8%20Windows%202012R2%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20IIS%208.5%20%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E9%80%82%E5%BD%93%E6%9D%83%E9%99%90.png)
我在 IIS 8.5、权限和审核方面遇到了特定问题。我有一个在 KanboardPool 身份下运行的 PHP 应用程序,并且我已正确将应用程序“数据”文件夹的权限设置为“IIS APPPOOL\KanboardPool”以进行完全控制。
此外,我已将 IIS_IUSRS 设置为读取、执行和列出同一文件夹(包括父文件夹)。无论如何,我仍然会遇到权限被拒绝的失败。
我尝试审计文件访问失败,但没有成功:首先通过 GPO 域策略 -> 计算机配置 -> Windows 设置 -> 安全设置 -> 高级审计 -> 审计文件访问成功和失败。这没有记录任何审计失败。通过域控制器策略执行相同的程序,最后出于某种原因通过本地策略执行相同的程序。审计策略更改被添加,然后陆续被删除。
通过 ACL,我对选定的主体“IIS APPPOOL\KanboardPool”运行了有效访问测试,结果非常顺利。现在我被难住了?
答案1
这个问题特别难以诊断,因为它无法在默认网站。当我在身份C:\inetpub\wwwroot\subfoldeer\phpapplication
下放置相同的应用程序时。DefaultAppPool
我只需添加即可完全控制并且它简单地C:\inetpub\wwwroot\subfolder\phpapplication\data
起作用DefaultAppPool
了。
看完之后http://www.iis.net/learn/get-started/planning-for-security/secure-content-in-iis-through-file-system-acls;fcgi.impersonate
启用php.ini
; 它将自动模拟经过身份验证的用户。Viola,关闭此功能后,PHP 进程将采用 AppPoolIdentity 并按预期工作。
这解释了为什么我没有收到 KanboardPool 的文件访问失败。但是它没有解释为什么fcgi.impersonate
在默认网站最初并没有重现相同的行为。