64

我有一个新的 Win7 工作站,我正在尝试让 ScrewTurn Wiki 在这台机器上运行。我的 STW 安装使用文件系统选项来存储其数据,因此我需要在安装网站的文件夹中授予 ASP.NET 工作进程写入权限。

但是,我似乎无法在 Win7 中想出工作进程的名称,以便将其添加到文件夹的权限中。如果我没记错的话,在 XP 中它是 ASPNET_WP,但在 Win7 中不是它的名称。

有人可以告诉我吗?

编辑添加:

作为对@Dragan_Radivojevic 的回应,有问题的应用程序池如下所示(名为ScrewTurnWiki):

IIS7 应用程序池

身份是“ApplicationPoolIdentity”

4

4 回答 4

140

从安全的角度来看,向所有 IIS_USRS 组授予写入权限是一个坏主意。您不需要这样做,您可以只向运行应用程序池的系统用户授予权限。

如果您使用的是 II7(我猜您这样做了),请执行以下操作。

  1. 打开 IIS7
  2. 选择需要修改权限的网站
  3. 转到基本设置并查看您正在使用的应用程序池。
  4. 转到应用程序池并从#3 中找到应用程序池
  5. 查找用于运行此应用程序池的系统帐户(身份列)
  6. 导航到 IIS 中的存储文件夹,选择它并单击编辑权限(在右侧的操作子菜单下)
  7. 打开安全选项卡并仅为您在 #3 中标识的用户添加所需的权限

注意 #1:如果您在 #3 中看到 ApplicationPoolIdentity,则需要像 IIS AppPool{application_pool_name} 一样引用此系统用户。例如 IIS AppPool\DefaultAppPool

注意 #2:添加此用户时,请确保在“选择用户或组”对话框中设置正确的位置。这需要设置为本地计算机,因为这是本地帐户。

于 2013-02-01T19:59:47.643 回答
35

我知道这是一个旧线程,但为了进一步扩展这里的答案,默认情况下 IIS 7.5 创建应用程序池身份帐户来运行工作进程。添加文件权限时,您不能像普通用户帐户一样搜索这些帐户。要将它们添加到 NTFS 权限 ACL 中,您可以键入应用程序池标识的完整名称,它将起作用。

处理应用程序池身份帐户的方式略有不同,因为它们被视为虚拟帐户。

此外,应用程序池标识的用户名是“IIS AppPool\应用程序池名称”,因此如果它是应用程序池 DefaultAppPool,则用户帐户将是“IIS AppPool\DefaultAppPool”。

如果你打开计算机管理并查看本地组 IIS_IUSRS 的成员,可以看到这些。将帐户添加到 NTFS 权限 ACL 时不需要附加到它们末尾的 SID。

希望有帮助

于 2013-11-15T17:32:55.453 回答
15

我的直接解决方案(因为我找不到 ASP.NET 工作进程)是向 IIS_IUSRS 授予写入(即修改)权限。这行得通。我似乎记得在 WinXP 中我必须专门授予 ASP.NET 工作进程写入权限才能完成此操作。也许我的记忆有问题,但无论如何......

@DraganRadivojevic 写道,他认为从安全角度来看这是危险的。我不反对,但由于这是我的工作站而不是网络服务器,它看起来相对安全。无论如何,他的答案更好,并且由于没有为 AppPool 用户指定正确的域,我在追查失败路径后最终确定了这一点。

于 2013-02-01T19:46:50.270 回答
4

完整的命令如下所示,注意引号

icacls "c:\inetpub\wwwroot\tmp" /grant "IIS AppPool\DefaultAppPool:F"

于 2019-02-12T23:28:24.197 回答