encontrar o usuário - sem conhecer as entranhas do IIS

2

O local do crime é o WinSrv2008 com o IIS7.
Meu usuário do IIS pool está tentando criar uma pasta, mas falha. Como faço para descobrir qual usuário é?

Digamos que eu não saiba muito sobre o IIS7 e o Aspnet, mas preciso rastrear o que está acontecendo por meio de ferramentas.

Então eu atiro Sysinternals / ProcessMonitor para descobrir o que está acontecendo.
Eu acho que o Access foi negado em uma pasta exatamente como eu suspeitava. Mas qual usuário? Eu adiciono a coluna User à saída ou ProcessMonitor e ele diz IIS Apppool \ Defaultapppool em maiúsculas. Bem ... isso não é um usuário é? Se eu for para o IIS e suas configurações de Apppools e Avançadas e Modelo de Processo e Identidade, posso ver pistas sobre qual usuário é, mas isso é apenas porque eu sei IIS . E se fosse o Apache ou o LightHttpd ou o que fosse? Como vejo o usuário para dar os direitos apropriados?

    
por LosManos 11.12.2012 / 23:10

4 respostas

5

Na verdade, o IIS AppPool \ DefaultAppPool é um usuário e você pode adicionar permissões de 'Modificar' à pasta pai para permitir que ele crie subpastas etc - tenha uma leitura de link para mais informações.

    
por 17.12.2012 / 11:04
4

Por padrão, o IIS 7+ usa a conta de usuário IUSR e a conta IIS_IUSRS do grupo para permissões. Você precisa A) Usar uma conta nomeada ou B) dar permissão ao grupo IUSR ou IIS_IUSRS . O site IIS da Microsoft tem uma ótima introdução para contas internas.

A opção A é provavelmente a melhor abordagem. Você faria isso indo para o Gerenciador do IIS, Selecionando pools de aplicativos e clicando com o botão direito do mouse no pool de aplicativos que deseja modificar e selecionando "Configurações avançadas"

Uma vez nas configurações avançadas, há uma opção na área "Modelo de processo" chamada "Identidade". Você então clica na caixa ao lado desta entrada e clica nas elipses que aparecem. O menu que aparece permite que você defina uma conta personalizada para o pool de aplicativos

    
por 11.12.2012 / 23:29
0

Sugiro ativar a auditoria de "acesso a objetos" e verificar o registro de auditoria.

Pode ser ativado por meio da política de grupo

link

ou manualmente

link

    
por 20.12.2012 / 12:29
0

Você já está usando a ferramenta certa (ProcessMonitor), é só que o nome da conta parece um pouco engraçado.

'IIS Apppool \ DefaultAppPool' é de fato uma conta de usuário válida do Windows, mesmo sendo especial. Ele não tem uma senha e você não pode usá-lo para fazer logon. Ele nem é listado em nenhuma das ferramentas internas para listar contas de usuário.

No entanto, você pode atribuir permissões a ele, basta digitar o nome completo na GUI ou em 'icacls.exe'. Como você não o vê listado em nenhum lugar, geralmente adiciono esses tipos de usuários a um grupo e, em seguida, atribuo permissões ao grupo.

net localgroup groupName "IIS AppPool\Defaultapppool" /ADD

Cada pool de aplicativos do IIS que tem sua propriedade de identidade definida como 'ApplicationPoolIdentity' (o padrão no IIS8) tem uma dessas contas especiais.

O principal motivo para ter essas contas é ter a capacidade de definir permissões em uma base AppPool sem ter que gerenciar muitas contas de usuário e em vez de usar a mesma conta de usuário para todas as appPools.

Semelhante a "IIS AppPool *" são o "NT SERVICE *", que são contas de usuário para executar serviços do Windows sem gerenciá-los, mas você ainda pode atribuir permissões para esses usuários.

    
por 21.12.2012 / 20:51