Esta não é uma questão sobre meu problema específico, pois tenho mais ou menos solução, mas sobre IIS / Python e contas de usuário em geral.
Eu tenho scripts python que estou executando com o IIS 7.5 (Mercurial usando o script hgweb.wsgi). Um dos plugins (largefiles) está recebendo problemas de permissão para ler e gravar arquivos.
O script estava tentando gravar arquivos em um diretório temporário, verificando as variáveis de ambiente APPDATA
e LOCALAPPDATA
, que estavam retornando C:\Windows\System32\config\systemprofile\AppData\Local
, e falhando devido a permissões.
Eu tentei imprimir a variável de ambiente USERNAME
, mas independentemente do usuário definido na Identidade do pool de aplicativos do IIS, ela sempre retornou MACHINENAME$
Então, como posso executar scripts python no IIS para que as variáveis de ambiente apontem para o local de origem do usuário correto? Ou isso é apenas um erro do desenvolvedor (Hg não tinha o problema de permissões, apenas a extensão largefiles)?
Além disso, quando eu originalmente tinha os repositórios em C:/Data
, os arquivos gravados por largefiles nesse diretório tinham um ícone de cadeado e as permissões eram SYSTEM
: controle total e Administrators
: controle total, com o proprietário definido como Administrators
(o grupo, não o usuário administrador). Depois de escrever o arquivo, ele não podia mais ser lido. Mesmo se eu desse Everyone
controle total do diretório C:/Data
, novos arquivos ainda seriam bloqueados, a menos que eu editasse manualmente as permissões. Novamente, Hg não teve esse problema, apenas os arquivos escritos por arquivos grandes.