Isso é porque essas são duas coisas diferentes. IIS_IUSRS é o grupo para Contas de processo de trabalho do IIS . Isso significa a identidade na qual o pool de aplicativos é executado. IUSR é a identidade do usuário anônimo. Isso significa a identidade que o IIS acredita ser o usuário que está acessando o site.
Agora, mesmo que você não tenha dito, deixe-me adivinhar - este aplicativo é clássico asp? (Caso contrário, se for .Net, então você deve estar usando a representação). De qualquer forma, o que acontece é que os recursos são acessados como a identidade representada, ou seja, o usuário anônimo no seu caso, ou seja, IUSR. É por isso que você tem que conceder os direitos. Em .Net, se você desativar a representação, verá que IIS_IUSRS entrará em ação como esperado. No ASP Clássico (e para arquivos estáticos), você não tem escolha, a representação é sempre "ativada"; Portanto, é sempre a identidade do usuário que é usada, não a identidade do pool. Então, como IIS_IUSRS é para identidades de pool, não está em jogo.
Editar após o OP adicionou mais informações:
É fácil confundir IUSR e IIS_IUSRS por causa de seus nomes. Maneira de ver que eles são diferentes é lembrar que o IIS_IUSRS é um substituto para o IIS_WPG no IIS6, que era o Grupo de Processos do Trabalhador. Para esses grupos, você adiciona contas nas quais deseja executar seus pools, não identidades anônimas, e os privilégios anon devem ser mais limitados. por exemplo. às vezes, você pode querer usar uma conta de domínio para executar o pool para a delegação do Kerberos a outros recursos da rede. Em seguida, você adicionaria essa conta de serviço a esse grupo.
Quando a representação é ativada, o pool / processo finge ser o usuário porque foi instruído a. No caso de anon auth (seu caso), esse usuário é IUSR. No caso de janelas auth, seria a identidade do windows \ domain do usuário. É também por isso que você obtém um impacto no desempenho com a representação, porque o processo precisa mudar para uma identidade diferente para o acesso a recursos.
Se você estiver usando a autenticação .NET e anônima, não vejo por que ativar a representação. Caso você não esteja usando ou não precise de representação, você deve estar ciente de mais alguns truques no caso do IIS7: você pode fazer com que sua IUSR desapareça completamente e acabe com toda a confusão. Eu acho que você gostaria disso, e é o meu método preferido também. Tudo o que você precisa fazer é dizer para reutilizar a identidade do pool como a identidade anônima .
Então, depois disso, você só terá que lidar com o grupo IIS_IUSRS. Mas não se confunda, isso ainda não significa que esses dois são os mesmos! Pode ser possível que a identidade do processo substitua a IUSR, mas não o contrário!
Mais alguns truques do IIS7: se você olhar para IIS_IUSRS, pode estar vazio. Isso porque suas identidades de pool virtual são adicionadas automaticamente quando o pool é iniciado, então você não precisa se preocupar com essas coisas.
Esta tabela deve ajudar a esclarecer melhor como a identidade da execução do thread é determinada:
Impersonation Anonymous Access Resources Accessed As Enabled Enabled IUSR_computer in IIS5/6 or, IUSR in IIS7 or, If you changed the anon user account in IIS, whatever you set there Enabled Disabled MYDOM\MyName Disabled Enabled NT Authority\Network Service (pool identity) Disabled Disabled NT Authority\Network Service (pool identity)