Compreendendo as permissões do IIS6, ACL e identidade-como posso restringir o acesso?
-
03-07-2019 - |
Pergunta
Quando um aplicativo ASP.NET está em execução no IIS6.0 no servidor do Windows 2003 com representação, qual conta de usuário é relevante para decidir os privilégios de leitura/gravação/execução do arquivo? Tenho dois cenários em que estou tentando entender o que o acesso para conceder/revogar. Eu pensei que o usuário mais relevante é provavelmente a identidade especificada no pool de aplicativos, mas isso não parece ser a história toda.
A primeira edição diz respeito à execução de um arquivo em lote local via System.Diagnostics.process.start ()-Não posso fazê-lo quando o AppPool estiver definido como IWAM_WIN2K3WEB Usuário, mas funcionará bem se estiver definido para a identidade do serviço de rede. É claro que me certifiquei de que o usuário do IWAM tenha executado direitos no arquivo.
O segundo envolve escrever em um arquivo no disco rígido local-eu gostaria de poder evitar fazê-lo através da lista de controle de acesso por meio de propriedades da pasta, mas mesmo quando eu configurei tudo Usuários na pasta como "Read" (sem usuários/grupos com "gravação"), nosso ASP.NET ainda escreve o arquivo sem problemas. Como pode se não tiver acesso de gravação?
A pesquisa do Google aparece pedaços, mas nunca a história toda.
Solução
Qual conta de usuário é relevante para [..] acesso de leitura/gravação/execução do arquivo
Como regra: sempre a conta do usuário em que o aplicativo/página é executado.
A conta Iwam é bastante limitada. Não acho que tenha permissões para iniciar um processo externo. Os direitos de acesso a arquivos são irrelevantes neste momento.
Se uma conta de usuário (serviço de rede no seu caso) possui um arquivo (ou seja, criou -o), ele pode fazer qualquer coisa com esse arquivo, mesmo que não seja permitido explicitamente. Verifique quem possui seu arquivo.
Monitor do processo Da Microsoft é uma ótima ferramenta para rastrear sutilezas como esta.
Outras dicas
Um pouco mais de pesquisa revela que o usuário do IWAM não está tão bem documentado e devemos manter o serviço de rede ou uma identidade fornecida manualmente, se quisermos especificar permissões para esse usuário.