Permissões IIS_IUSRS e IUSR no IIS8

Acabei de me afastar do IIS6 no Win2003 para o IIS8 no Win2012 para hospedar aplicativos ASP.NET.

Dentro de uma pasta específica no meu aplicativo eu preciso criar e excluir arquivos. Depois de copiar os arquivos para o novo servidor, continuei vendo os seguintes erros quando tentei excluir arquivos:

O access ao caminho ‘D: \ WebSites \ myapp.co.uk \ companydata \ filename.pdf’ é negado.

Quando verifico o IIS, vejo que o aplicativo está sendo executado na conta DefaultAppPool, no entanto, nunca configurei permissions do Windows nessa pasta para include o IIS AppPool \ DefaultAppPool

Em vez disso, para parar de gritar os clientes, concedi as seguintes permissions na pasta:

IUSR

  • Ler e executar
  • Listar conteúdo da pasta
  • Ler
  • Escreva

IIS_IUSRS

  • Modificar
  • Ler e executar
  • Listar conteúdo da pasta
  • Ler
  • Escreva

Isso parece ter funcionado, mas estou preocupado que muitos privilégios tenham sido definidos. Eu li informações conflitantes on-line sobre se IUSR é realmente necessário em tudo aqui. Alguém pode esclarecer quais usuários / permissions seriam suficientes para criar e excluir documentos nesta pasta, por favor? Além disso, é parte IUSR do grupo IIS_IUSRS?

Atualização e Solução

Por favor, veja minha resposta abaixo . Eu tive que fazer isso, infelizmente, como algumas sugestões recentes não foram bem pensadas, ou mesmo seguras (OMI).

Eu odeio postar minha própria resposta, mas algumas respostas recentemente ignoraram a solução que eu postei em minha própria pergunta, sugerindo abordagens que são nada menos do que imprudentes.

Resumindo – você não precisa editar nenhum privilégio de conta de usuário do Windows . Fazer isso apenas introduz risco. O processo é inteiramente gerenciado no IIS usando privilégios herdados.

Aplicando Modificar / Gravar Permissões na Conta de Usuário Correta

  1. Clique com o botão direito do mouse no domínio quando ele aparecer na lista Sites e escolha Editar permissions

    insira a descrição da imagem aqui

    Na guia Segurança , você verá que MACHINE_NAME\IIS_IUSRS está listado. Isso significa que o IIS automaticamente tem permissão somente leitura no diretório (por exemplo, para executar ASP.Net no site). Você não precisa editar esta input .

    insira a descrição da imagem aqui

  2. Clique no botão Editar e, em seguida, clique em Adicionar …

  3. Na checkbox de texto, digite IIS AppPool\MyApplicationPoolName , substituindo MyApplicationPoolName pelo seu nome de domínio, por exemplo, IIS AppPool\mydomain.com

    insira a descrição da imagem aqui

  4. Pressione o botão Verificar nomes . O texto que você digitou será transformado (observe o sublinhado):

    insira a descrição da imagem aqui

  5. Pressione OK para adicionar o usuário

  6. Com o novo usuário (seu domínio) selecionado, agora você pode fornecer com segurança todas as permissions Modificar ou Gravar

    insira a descrição da imagem aqui

IUSR faz parte do grupo IIS_IUSER.so acho que você pode remover as permissions para IUSR sem se preocupar. Leitura Adicional

No entanto, um problema surgiu com o tempo, à medida que mais e mais serviços de sistema do Windows começaram a ser executados como NETWORKSERVICE. Isso ocorre porque os serviços em execução como NETWORKSERVICE podem adulterar outros serviços executados sob a mesma identidade. Como os processos de trabalho do IIS executam código de terceiros por padrão (ASP clássico, ASP.NET, código PHP), era hora de isolar os processos de trabalho do IIS de outros serviços do sistema Windows e executar processos de trabalho do IIS sob identidades exclusivas. O sistema operacional Windows fornece um recurso chamado “Contas Virtuais”, que permite que o IIS crie identidades exclusivas para cada um dos seus Pools de Aplicativos. DefaultAppPool é o pool padrão atribuído a todos os pools de aplicativos que você cria.

Para torná-lo mais seguro, você pode alterar a Identidade do DefaultAppPool do IIS para ApplicationPoolIdentity.

Em relação à permissão, Criar e Excluir resume todos os direitos que podem ser concedidos. Então, o que quer que você tenha designado para o grupo IIS_USERS é que eles irão requerer. Nada mais nada menos.

espero que isto ajude.

Quando adicionei a permissão IIS_IUSRS à pasta do site – os resources, como js e css, ainda estavam inacessíveis (erro 401, proibido). No entanto, quando eu adicionei IUSR – ficou tudo bem. Então, com certeza “você não pode remover as permissions para IUSR sem se preocupar”, querido @Travis G @

@EvilDr Você pode criar uma conta IUSR_ [identificador] em seu ambiente do AD e permitir que o pool de aplicativos específico seja executado sob essa conta IUSR_ [identificador]:

“Pool de aplicativos”> “Configurações avançadas”> “Identidade”> “Conta personalizada”

Defina seu site como “Usuário do Applicaton (autenticação de passagem)” e não como “Usuário específico” nas Configurações avançadas.

Agora dê a IUSR_ [identifier] as permissions NTFS apropriadas em arquivos e pastas, por exemplo: modify on companydata.

Eu usaria usuário específico (e NÃO usuário do aplicativo). Em seguida, ativarei a representação no aplicativo. Depois de fazer isso, seja qual for a conta definida como usuário específico, essas credenciais seriam usadas para acessar os resources locais nesse servidor (não para resources externos).

A configuração específica do usuário é especificamente destinada ao access a resources locais.

O grupo IIS_IUSRS tem destaque apenas se você estiver usando o ApplicationPool Identity. Mesmo que você tenha esse grupo parece vazio em tempo de execução o IIS adiciona a este grupo para executar um processo de trabalho de acordo com a literatura da Microsoft.

A permissão IIS_IUser é mais que suficiente para criar ou excluir arquivos. Não há necessidade de permissão do usuário. Eu estou dando essa permissão para mais de 20 pastas. Estou procurando uma maneira alternativa de fazer isso também. Sugira-me se alguma opção estiver disponível