Como faço para alterar o nome de usuário nginx / PHP cria arquivos como

1

Existe uma maneira em que nginx / php pode ser configurado para criar arquivos com um usuário específico.

Por exemplo, quando um site drupal / wordpress carrega um arquivo, o usuário é atribuído como: john: www-data

O nginx.conf tem um usuário, mas pelo que entendi isso só muda o usuário que o nginx usa no sistema.

    
por fyberoptik 23.06.2015 / 18:10

2 respostas

1

Como Tero sugeriu, você precisaria mudar o usuário do seu processo php-fpm responsável por hospedar o site que você gostaria de afetar.

O PHP-FPM tem "pools" e acho que a maioria dos administradores normalmente terá um pool por site hospedado. Então, se você estiver hospedando example.com e another-example.com, você pode ter dois pools php-fpm que executam seus respectivos sites. O benefício de diferentes pools é que você pode definir a configuração para cada um separadamente (e, portanto, executar os processos como diferentes usuários / grupos).

Você não especificou sua distribuição / configuração, então só posso dizer a você que os arquivos de configuração do seu pool estão provavelmente localizados em /etc/php-fpm.d/*.conf . Então, você poderia ter /etc/php-fpm.d/example.com.conf com:

[example.com]
user = john
group = www-data
...

E depois outro pool /etc/php-fpm.d/another-example.com.conf com:

[another-example.com]
user = sally
group = www-data
...

As configurações do php-fpm estão no formato INI, e o que eu postei é apenas as diretivas relevantes de usuário / grupo. Existem mais opções de configuração necessárias para uma definição de pool adequada. Consulte a seção "Lista de diretivas de pool" em esta página para obter mais informações sobre isso.

Você precisará reiniciar o serviço php-fpm para tornar as alterações do pool efetivas. Você pode testar sua configuração antes de reiniciar (e assim evitar possíveis períodos de inatividade) com php-fpm -t na maioria dos sistemas. Eu acho que algumas distribuições usam php5-fpm -t .

Por último, sim, como você disse, as diretivas de usuário / grupo nginx.conf afetam apenas o Nginx. O PHP-FPM é executado como um processo separado, mais ou menos independente do Nginx.

    
por 23.06.2015 / 22:48
1

Não há como fazer isso. O PHP é executado pelo processo PHP-FPM, que é executado como um usuário específico. Os arquivos criados são de propriedade desse usuário.

Somente o superusuário pode alterar o proprietário do arquivo, e não é seguro executar o processo do PHP-FPM com privilégios de superusuário.

Sua única opção de alterar o status de propriedade dos arquivos enviados pelo processo é alterar o usuário no qual você executa o PHP-FPM.

    
por 23.06.2015 / 19:04