Isso ocorre 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 próprio 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, você deverá usar a representação). De qualquer maneira, 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ê precisa conceder os direitos. No .Net, se você desativar a representação, verá que o IIS_IUSRS entrará em ação conforme o 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 usada, não a identidade do pool. Portanto, como IIS_IUSRS é para identidades de pool, ele não está em jogo.
Editar depois que o OP adicionou mais informações:
É fácil confundir IUSR e IIS_IUSRS por causa de seus nomes. A maneira de ver que elas são diferentes é lembrar que o IIS_IUSRS substitui o IIS_WPG no IIS6, que era o Grupo de Processo do Trabalhador. A esses grupos, você adiciona contas nas quais deseja executar seus pools, e não em identidades e privilégios, devem ser mais limitados. por exemplo. às vezes, convém usar uma conta de domínio para executar o pool para delegação do kerberos em outros recursos de rede. Em seguida, você adicionaria essa conta de serviço a esse grupo.
Quando a representação está ativada, o pool / processo finge ser o usuário porque foi solicitado. No caso de anon auth (seu caso), esse usuário é IUSR. No caso de autenticação do Windows, seria a identidade 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 aos recursos.
Se você estiver usando autenticação .NET e anônima, não vejo por que você ativaria a representação. Caso você não esteja usando ou não precise de representação, saiba mais alguns truques no caso do IIS7: você pode fazer com que o seu 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 identidade anônima .
Então, depois disso, você precisará lidar apenas com o grupo IIS_IUSRS. Mas não se confunda, isso ainda não significa que esses dois sejam iguais! Pode ser possível que a identidade do processo substitua o IUSR, mas não o contrário!
Mais alguns truques do IIS7: se você olhar para IIS_IUSRS, ele pode estar vazio. Isso ocorre porque as identidades de seu pool virtual são automaticamente adicionadas a ele quando o pool é iniciado, para que você não precise se preocupar com essas coisas.
Esta tabela deve ajudar a esclarecer melhor como a identidade de execução do encadeamento é determinada:
Recursos de acesso anônimo de representação acessados como
Habilitado IUSR_computer no IIS5 / 6 ou,
IUSR no IIS7 ou,
Se você alterou a conta de usuário anon
no IIS, o que você definir lá
Habilitado Desabilitado MYDOM \ MyName
Desabilitado Habilitado NT Authority \ Network Service (identidade do pool)
Desabilitado Desabilitado NT Authority \ Network Service (identidade do pool)