Em nosso ambiente de desenvolvimento, estou migrando alguns de nossos sites Apache para Nginx. O que eu gostaria de fazer é garantir que todos os meus desenvolvedores, que pertencem ao mesmo grupo ( webgroup
), tenham acesso total aos arquivos (por exemplo, arquivos de log) criados pelo usuário do servidor web ( www-data
). Os arquivos criados pelo usuário da web normalmente são de propriedade de, www-data:www-data
então pensei em alterar o grupo principal desse usuário para corresponder ao dos desenvolvedores ( webgroup
).
A mudança de grupo parece ter ocorrido, mas os arquivos recém-criados ainda pertencem a www-data:www-data
. Não vejo uma group
diretiva para o nginx conf, então estou me perguntando se há alguma maneira de garantir que os arquivos criados/atualizados pelo usuário nginx sejam propriedade do grupo certo.
Se eu tivesse pensado no futuro, suponho que poderia ter criado www-data
o grupo principal para todos os meus usuários, mas não o fiz e gostaria de evitar voltar e tocar em todos esses usuários. Lembre-se, este é um ambiente de desenvolvimento, portanto a segurança não é hipercrítica, mas eu ainda gostaria de evitar que todos se autenticassem como root ou algo similarmente aberto.
ATUALIZAR
Desde então, tentei atualizar meu nginx.conf
arquivo conforme mostrado abaixo, mas sem sucesso. Novos arquivos ainda são criados www-data:www-data
após uma reinicialização e uma recarga forçada.
user www-data webgroup
Responder1
Basta aplicar um adesivo na pasta onde você armazena os arquivos de log. O nginx está sempre usando o grupo fornecido em tempo de compilação para criar os logs. A diretiva de grupo na configuração é aplicada apenas durante o tempo de execução.
chown -R www-data:webgroup /var/log/nginx && chmod g+s /var/log/nginx
Responder2
A alteração do grupo nginx requer recompilação. Felizmente é tão fácil quanto 123. Basta seguir estes passos simples:
- Baixe o código-fonte nginx mais recente:
wget http://nginx.org/download/nginx-1.11.9.tar.gz
- Desembale-o
tar xzvf nginx-1.11.9.tar.gz
- Navegue até o diretório de origem
cd nginx-1.11.9
Obtenha seus argumentos atuais de configuração do nginx na
nginx -V
saída:nginx -V
saída de amostra:--with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --user=www-data --group=www-data
Substitua as opções necessárias e inicie
./configure
na raiz de origem./configure --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --user=apache --group=apache
Aguarde a conclusão do comando (baixe módulos externos conforme necessário). Correr
make && make install
Agora você tem novidades nginx
com as opções que você gosta!