Re: client_body_temp_path - permissions
> В таком виде, конечно, не закоммитят. Я тут нагло воспользовался > существованием внутреннего флага, который по факту используется для > webdav-модуля, и "вытащил" его в конфигурацию, потому патч и такой > простой. Если уж делать по-человечески - то делать нормальную > конфигурацию по аналогии с proxy_store_access. Но это немного сложнее, > и такой патч, вероятно, уже не будет так легко накладываться на > практически любую версию. Спасибо за патч, но мы не можем прописывать в требования нашего ПО, установку патча для Nginx, клиенты этого не поймут. Сейчас мы запускаем бекенд под пользователем Nginx, чтобы иметь доступ к файлам 0600, но это тоже не очень хорошо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274059,274633#msg-274633 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
В таком виде, конечно, не закоммитят. Я тут нагло воспользовался существованием внутреннего флага, который по факту используется для webdav-модуля, и "вытащил" его в конфигурацию, потому патч и такой простой. Если уж делать по-человечески - то делать нормальную конфигурацию по аналогии с proxy_store_access. Но это немного сложнее, и такой патч, вероятно, уже не будет так легко накладываться на практически любую версию. > On Jun 2, 2017, at 1:04 PM, S.A.N wrote: > > Konstantin Baryshnikov Wrote: > --- >>> >>> On May 31, 2017, at 12:35 AM, S.A.N >> wrote: >>> >>> Я конечно извиняюсь, за настойчивость, но неужели пермишен 0600, на >> файл >>> который должен быть обработан в другом процессе, это нормально и это >> никак >>> нельзя настроить в конфиге Nginx? >> >> Нельзя. >> >> Я по большой нужде обходился вот таким патчем: >> > > Спасибо, но проблема ручных патчей в будущей поддержке, нужно не забывать > всегда патчить новые версии Nginx, и потом тестировать... > Будет очень хорошо если его закомитят и будет работать из коробки. > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,274059,274602#msg-274602 > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
> Т.е. директиву client_body_in_file_only и переменную > $request_body_file добавили, а > прав на файлы - добавить забыли. Да, в интернете многие задаются вопросом почему сделано это так, похоже что просто забыли учитывать client_body_in_file_only. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274059,274620#msg-274620 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
Здравствуйте. > Я уточню чтобы меня понимали. > Мы используем директиву - client_body_in_file_only clean; для получения > файлов от клиента при аплодинге, указываем директорию в директиве > client_body_temp_path, все работает хорошо, только пермишены файлов в этой > папке 0600. Да, теперь увидел информацию об этой возможности. В описании директивы "client_body_temp_path" про такую возможность не сказано ни слова. При наличии директивы "client_body_in_file_only" и переменной "request_body_file" ограничение 0600 конечно излишне жесткое и вот это шаманство в коде nginx: if (r->request_body_file_group_access) { tf->access = 0660; } выглядит несколько забавно. Т.е. директиву client_body_in_file_only и переменную $request_body_file добавили, а прав на файлы - добавить забыли. Т.к. нигде не указано, что этими директивой/переменной можно пользоваться только при использовании DAV (это единственный случай, когда файл создается с правами 0660), то явно требуется изменение прав по-умолчанию. На мой взгляд, в имеющейся ситуации нужно безусловно создавать файлы с правами доступа 0660, без создания дополнительных "рычажков". > Спасибо, но проблема ручных патчей в будущей поддержке, нужно не забывать > всегда патчить новые версии Nginx, и потом тестировать... > Будет очень хорошо если его закомитят и будет работать из коробки. Конечно это было бы очень хорошо, но и иметь возможность запатчить и использовать - это лучше чем не иметь такой возможности. -- С уважением, Pavel mailto:pavel2...@ngs.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
Я уточню чтобы меня понимали. Мы используем директиву - client_body_in_file_only clean; для получения файлов от клиента при аплодинге, указываем директорию в директиве client_body_temp_path, все работает хорошо, только пермишены файлов в этой папке 0600. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274059,274616#msg-274616 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
> Это временный файл процесса nginx, и, насколько я понимаю, никакая > обработка в > других процессах не предусматривается. В силу этого же права > выставлены в 0600 и > другого быть не может. Временный файлы процесса Nginx, создаются без директивы client_body_temp_path. Вот директива client_body_temp_path для того и придумана, чтобы бекенд мог получить тело запроса в уканом файле, этот файл Nginx не удаляет пока бекенд не ответит на запрос, т.е. файл создается для обработки его в бекенде. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274059,274614#msg-274614 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
Здравствуйте > Спасибо, но проблема ручных патчей в будущей поддержке, нужно не забывать > всегда патчить новые версии Nginx, и потом тестировать... > Будет очень хорошо если его закомитят и будет работать из коробки. Как-то не вполне ясно, почему вы считаете, что файл в client_body_temp_path >должен быть обработан в другом процессе Это временный файл процесса nginx, и, насколько я понимаю, никакая обработка в других процессах не предусматривается. В силу этого же права выставлены в 0600 и другого быть не может. -- С уважением, Pavel mailto:pavel2...@ngs.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
Konstantin Baryshnikov Wrote: --- > > > > On May 31, 2017, at 12:35 AM, S.A.N > wrote: > > > > Я конечно извиняюсь, за настойчивость, но неужели пермишен 0600, на > файл > > который должен быть обработан в другом процессе, это нормально и это > никак > > нельзя настроить в конфиге Nginx? > > Нельзя. > > Я по большой нужде обходился вот таким патчем: > Спасибо, но проблема ручных патчей в будущей поддержке, нужно не забывать всегда патчить новые версии Nginx, и потом тестировать... Будет очень хорошо если его закомитят и будет работать из коробки. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274059,274602#msg-274602 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
> > On May 31, 2017, at 12:35 AM, S.A.N wrote: > > Я конечно извиняюсь, за настойчивость, но неужели пермишен 0600, на файл > который должен быть обработан в другом процессе, это нормально и это никак > нельзя настроить в конфиге Nginx? Нельзя. Я по большой нужде обходился вот таким патчем: diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -386,6 +386,13 @@ offsetof(ngx_http_core_loc_conf_t, client_body_in_single_buffer), NULL }, +{ ngx_string("client_body_file_group_access"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, + ngx_conf_set_flag_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_core_loc_conf_t, client_body_file_group_access), + NULL }, + { ngx_string("sendfile"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF |NGX_CONF_FLAG, @@ -1462,6 +1469,7 @@ } r->request_body_in_single_buf = clcf->client_body_in_single_buffer; +r->request_body_file_group_access = clcf->client_body_file_group_access; if (r->keepalive) { if (clcf->keepalive_timeout == 0) { @@ -3571,6 +3579,7 @@ clcf->max_ranges = NGX_CONF_UNSET_UINT; clcf->client_body_in_file_only = NGX_CONF_UNSET_UINT; clcf->client_body_in_single_buffer = NGX_CONF_UNSET; +clcf->client_body_file_group_access = NGX_CONF_UNSET; clcf->internal = NGX_CONF_UNSET; clcf->sendfile = NGX_CONF_UNSET; clcf->sendfile_max_chunk = NGX_CONF_UNSET_SIZE; @@ -3792,6 +3801,8 @@ NGX_HTTP_REQUEST_BODY_FILE_OFF); ngx_conf_merge_value(conf->client_body_in_single_buffer, prev->client_body_in_single_buffer, 0); +ngx_conf_merge_value(conf->client_body_file_group_access, + prev->client_body_file_group_access, 0); ngx_conf_merge_value(conf->internal, prev->internal, 0); ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0); ngx_conf_merge_size_value(conf->sendfile_max_chunk, diff --git a/src/http/ngx_http_core_module.h b/src/http/ngx_http_core_module.h --- a/src/http/ngx_http_core_module.h +++ b/src/http/ngx_http_core_module.h @@ -402,6 +402,7 @@ ngx_uint_tserver_tokens; /* server_tokens */ ngx_flag_tchunked_transfer_encoding; /* chunked_transfer_encoding */ ngx_flag_tetag;/* etag */ +ngx_flag_tclient_body_file_group_access; /* client_body_file_group_access */ #if (NGX_HTTP_GZIP) ngx_flag_tgzip_vary; /* gzip_vary */ > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,274059,274538#msg-274538 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: client_body_temp_path - permissions
Я конечно извиняюсь, за настойчивость, но неужели пермишен 0600, на файл который должен быть обработан в другом процессе, это нормально и это никак нельзя настроить в конфиге Nginx? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274059,274538#msg-274538 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru