Windows帐户何时应位于“用户”组中?

当您通过GUI在Windows中创build帐户时,它会自动添加到本地Users组。 可以从该组中删除帐户。 例如,将帐户用于IIS应用程序池时,可以将其从Users删除并将其添加到IIS_IUSRS 。 或者您可以在这种情况下离开Users 。 我见过系统pipe理员这样做。 每种方式的含义是什么? 你怎么决定的?

当我从Users组中删除一个用户时,我仍然可以执行以下命令:

 runas /user:name cmd.exe whoami /groups 

尽pipe如此, BUILTIN\Users看起来还是出乎意料地仍然显示给这个用户。 这在哪里解释?

如果从“用户”组中删除“经过身份validation的用户”的安全主体,则可能需要将帐户或组添加到“用户”组中。 用户中的“经过身份validation的用户”成员身份还可以解释在运行whoami /groups时,导致用户成员出现的原因。

应用程序池帐户通常不需要用户的成员资格。 如果您发现这样做,更好的方法可能是使用IIS_Users安全主体ACL所需的资源。

内置安全主体IIS_Users(以前称为Windows 2008之前的IIS_WPG)只是为IIS应用程序池帐户授予资源权限的一种方法。 这些资源可能不一定具有授予内置用户组的访问权限,属于IIS_Users成员的帐户可能不一定是内置用户组的成员。

有关IIS_Users的用途和背景的更多信息:

了解IIS 7中的内置用户和组帐户
http://www.iis.net/learn/get-started/planning-for-security/understanding-built-in-user-and-group-accounts-in-iis


介绍

在早期版本的IIS中,在安装过程中会创build一个名为IUSR_MachineName的本地帐户。 默认情况下,IIS在使用IUSR_MachineName帐户时启用匿名身份validation。 这被FTP和HTTP服务使用。

还有一个名为IIS_WPG的组,它被用作所有应用程序池标识的容器。 在IIS安装期间,系统上的所有适当资源都被授予了IIS_WPG组的正确用户权限,因此pipe理员只需在创build新的应用程序池帐户时将其身份添加到该组。

这种模式运行良好,但有其缺点:IUSR_MachineName帐户和IIS_WPG组都是创build它们的系统的本地。 Windows中的每个帐户和组都有一个唯一的号码,称为安全标识符(SID),以区别于其他帐户。 在创buildACL时,只使用SID。 作为早期版本的IIS中的devise的一部分,IUSR_MachineName包含在metabase.xml文件中,以便如果试图将metabase.xml从一台计算机复制到另一台计算机,它将无法工作。 另一台计算机上的帐户将具有不同的名称。

另外,由于每台计算机的SID不同,因此不能从一台计算机到另一台计算机的xcopy / o ACL。 一种解决方法是使用域帐户,但需要将活动目录添加到基础结构。 IIS_WPG组与用户权限有类似的问题。 如果您在一台计算机的文件系统上为IIS_WPG设置ACL,并试图将这些ACL拷贝到另一台计算机上,则会失败。 通过使用内置的帐户和组,IIS 7及以上版本的这种体验得到了改进。

操作系统保证内置的帐户和组始终拥有唯一的SID。 IIS 7及以上版本进一步采取了这一措施,确保新帐户和组使用的实际名称永远不会被本地化。 例如,无论您安装的Windows的语言如何,IIS帐户名称将始终为IUSR,组名称将为IIS_IUSRS。

总之,IIS 7及以上版本提供以下function:

  • IUSR内置帐户replaceIUSR_MachineName帐户。
  • IIS_IUSRS内置组取代了IIS_WPG组。

IUSR账户不再需要密码,因为它是一个内置账户。 从逻辑上讲,您可以将其视为与NETWORKSERVICE或LOCALSERVICE帐户相同。 新的IUSR帐户和IIS_IUSRS组将在下面的部分进行更深入的讨论。

了解新的IUSR帐户

IUSR帐户将取代IIS 7及更高版本中的IUSR_MachineName帐户。 如果您安装Windows Server 2008中包含的FTP 6兼容服务器,则IUSR_MachineName帐户仍将被创build和使用。如果您未安装Windows Server 2008附带的FTP服务器,则不会创build此帐户。

此内置帐户不需要密码,并且将是启用匿名身份validation时使用的默认身份。 如果您查看applicationHost.config文件,您将看到以下定义:

 <anonymousAuthentication enabled="true" userName="IUSR" defaultLogonDomain="" /> 

这告诉IIS为所有匿名身份validation请求使用新的内置帐户。 最大的好处是你可以:

  • 通过使用Windows资源pipe理器或许多命令行工具中的任何一个设置IUSR帐户的文件系统权限。
  • 不再需要担心此帐户的密码过期。
  • 使用xcopy / o将文件及其所有权和ACL信息无缝地复制到不同的计算机上。

注意:IUSR帐户与在networking上匿名行事的方式类似于LOCALSERVICE。 NETWORKSERVICE和LOCALSYSTEM帐户可以充当机器身份,但IUSR帐户不能,因为这需要提升用户权限。 如果您需要匿名帐户拥有networking权限,则必须手动创build一个新的用户帐户并设置用户名和密码,就像过去进行匿名validation一样。

通过使用IISpipe理器在networking上授予匿名帐户权限:

  1. 单击开始,键入INetMgr.exe,然后单击input。 如果出现提示,请单击“继续”以提升您的权限。
  2. 在连接部分中,单击计算机名称旁边的+button。
  3. 在IISpipe理器中,双击要pipe理的站点。
  4. 在function视图中,双击authentication。
  5. select匿名身份validation,然后单击操作窗格中的编辑。
  6. 在编辑匿名身份validation凭据对话框中,单击特定用户选项,然后单击设置。
  7. 在“设置凭证”对话框中,input所需的用户名和密码,然后单击“确定”。

了解新的IIS_IUSRS组

IIS_IUSRS组replaceIIS_WPG组。 此内置组可以访问所有必需的文件和系统资源,以便在添加到该组时可以无缝充当应用程序池标识。

与内置帐户一样,此内置组解决了多个xcopy部署障碍。 如果您为IIS_WPG组(在IIS 6.0系统上可用)设置了文件的权限,并尝试将这些文件复制到另一台Windows计算机,那么该组的SID将在计算机之间有所不同,并且您的站点的configuration将被打破。

由于IIS 7及更高版本中的组SID在所有运行Windows Server 2008的系统上都是相同的,因此在将文件从计算机移动到计算机时,可以使用“xcopy / o”来保留ACL和所有权信息。 这使xcopy部署变得简单。

IIS 7及以上版本也使configuration应用程序池标识的过程变得容易,并使所有必要的更改变得更容易。 当IIS启动一个辅助进程时,它需要创build一个进程将使用的令牌。 当创build此标记时,IIS会在运行时自动将IIS_IUSRS成员资格添加到工作进程标记。 以“应用程序池标识”运行的帐户不再需要成为IIS_IUSRS组的明确部分。 这种改变可以帮助您设置更less的障碍,让您的整体体验更有利。

如果要禁用此function并手动将帐户添加到IIS_IUSRS组,请通过将manualGroupMembership值设置为“true”来禁用此新function。 以下示例显示了如何对defaultAppPool执行此操作:

 <applicationPools> <add name="DefaultAppPool"> <processModel manualGroupMembership="true" /> </add> </applicationPools> 

除了其他用户的主目录和大部分registry之外,用户还可以读取机器上几乎所有文件的读取权限。 显然,将用户从Users将阻止他们从具有Users ACE的任何地方读取。