A única maneira de fazer isso é recompilar o nginx :( após editar src/os/unix/ngx_files.c
e alterar a máscara de criação de arquivos em ngx_open_tempfile
de 0600
para 0660
(ou qualquer perms que você precisar).
Alterar o umask no script init do nginx não ajuda por causa desse valor 0600
.
Não há nenhuma configuração de configuração user:
, group:
ou other:
disponível para client_body_temp_path
, como há para o módulo proxy.
Mesmo que a função ngx_open_tempfile
leia a variável access
que poderia ser definida como algo diferente de 0600
chamando ngx_conf_set_access_slot
como é para esses módulos:
src/http/modules/ngx_http_uwsgi_module.c
171: ngx_conf_set_access_slot,
src/http/modules/ngx_http_dav_module.c
102: ngx_conf_set_access_slot,
src/http/modules/ngx_http_scgi_module.c
111: ngx_conf_set_access_slot,
src/http/modules/ngx_http_fastcgi_module.c
254: ngx_conf_set_access_slot,
src/http/modules/ngx_http_proxy_module.c
291: ngx_conf_set_access_slot,
não está disponível para o código do cliente que faz parte do núcleo do nginx. Daí a necessidade de recompilar.
Além de atualizar o 0600
para 0660
, você precisará do diretório chgrp your_app_server_group
the client_body_temp_path
para o grupo ao qual o seu aplicativo pertence e, em seguida, definir também nele ( chmod g+s your_app_server_group
). arquivos escritos nele pelo nginx são de propriedade daquele grupo.