Trabalhadores nginx são gerados com o valor da diretiva user
. O valor padrão é nobody
, mas os pacotes oficiais do nginx incluem uma configuração padrão contendo user nginx;
em nginx.conf
, no contexto main
.
Quando apenas um usuário é especificado, o grupo com o mesmo nome é aplicado aos trabalhadores do nginx.
Usuário padrão: o grupo para PHP-FPM é www-data: www-data.
O que você pode fazer é criar arquivos pertencentes a nginx:www-data
, o que funcionaria na caixa. O problema seria então atualizar os arquivos, já que qualquer usuário que criasse arquivos precisaria de acesso de gravação.
Por padrão, os diretórios são graváveis pelo seu proprietário (usuário), mas não pelo grupo desse usuário, o que o obriga a:
- use o usuário
nginx
para atualizar o conteúdo da Web - adicione o acesso de gravação ao grupo
www-data
e adicione o usuário que gerencia o conteúdo a este grupo
Para mim, as duas soluções anteriores são menos que ideais.
O que eu faria é fazer essa árvore de diretórios pertencente ao usuário que gerencia o conteúdo, usar user nginx www-data;
para tornar o usuário nginx usuário pertencente ao grupo www-data e permitir que o usuário leia / escreva, agrupe para ler e outros nada (assim, um 0640
bitmask para arquivos e 0750
bitmask para diretórios, permitindo a passagem pelo usuário e grupo).
Para ir ainda mais longe, eu adicionaria o bit setgid nos diretórios, para garantir que o grupo correto seja automaticamente aplicado a qualquer diretório / arquivo criado na árvore. Eu usaria assim a máscara de bits 2640
nos arquivos e 2750
nos diretórios.
Você pode alterar o bitmask padrão para uma partição específica no nível do SO ... ou pode ficar com os padrões que são um pouco menos restritivos, mas trabalhe de maneira impecável, simplesmente alterando a propriedade e adicionando o sinalizador setgid.