犯罪的地方是与IIS7的WinSrv2008。
我的IIS apppool用户试图创build一个文件夹,但失败。 我如何知道哪个用户是?
假设我对IIS7和Aspnet不太了解,但需要通过工具来追踪所发生的事情。
所以我启动了Sysinternals / ProcessMonitor来了解正在发生的事情。
我发现Access文件夹被拒绝,就像我怀疑的那样。 但是,哪个用户? 我将用户列添加到输出或ProcessMonitor它说大写IIS Apppool \ Defaultapppool 。 那…那不是用户吗? 如果我去IIS和它的应用程序和高级设置和过程模型和身份我可以看到有关哪个用户的线索,但那只是因为我知道IIS 。 如果是Apache或者LightHttpd或者什么的话呢? 我如何看到用户给予适当的权利?
实际上,IIS AppPool \ DefaultAppPool是一个用户,你可以添加“修改”权限到父文件夹,以允许它创build子文件夹等 – 阅读http://www.iis.net/learn/manage/configuring-安全/应用程序池身份了解更多信息。
默认情况下IIS 7+使用IUSR用户帐户和IIS_IUSRS组帐户的权限。 您需要A)使用指定帐户或B)授予IUSR用户或IIS_IUSRS组的权限。 微软的IIS网站有一个很好的介绍内置帐户。
选项A可能是最好的方法。 您可以进入IISpipe理器,select应用程序池,然后右键单击要修改的应用程序池,然后select“高级设置”
进入高级设置后,在“过程模型”区域下有一个名为“身份”的选项。 然后点击该条目旁边的框,然后单击显示的省略号。 出现的菜单将允许您为应用程序池设置自定义帐户
我build议打开“对象访问”审核,并检查审核日志。
可以通过组策略启用
http://www.techotopia.com/index.php/Auditing_Windows_Server_2008_File_and_Folder_Access
或手动
您已经在使用正确的工具(ProcessMonitor),只是它的名字看起来有点有趣。
'IIS Apppool \ DefaultAppPool'确实是一个有效的Windows用户帐户,即使它是特殊的。 它没有密码,您不能使用它login。 它甚至没有列在任何列出用户帐户的内置工具中。
但是,您可以为其分配权限,只需在GUI或“icacls.exe”中input完整名称即可。 由于您没有在任何地方看到它,我通常会将这些用户types添加到组中,然后将权限分配给该组。
net localgroup groupName "IIS AppPool\Defaultapppool" /ADD
每个具有标识属性设置为“ApplicationPoolIdentity”(IIS8中的默认值)的IIS应用程序池都有这个特殊帐户之一。
拥有这些帐户的主要原因是能够在AppPool基础上设置权限,而不必pipe理许多用户帐户,而不是对所有appPool使用相同的用户帐户。
与“IIS AppPool *”类似,是“NT SERVICE *”,它们是运行Windows服务而无需pipe理它们的用户帐户,但是您仍然可以为这些用户分配权限。