Re: client_body_temp_path - permissions

2017-06-03 Пенетрантность S.A.N
> В таком виде, конечно, не закоммитят. Я тут нагло воспользовался
> существованием внутреннего флага, который по факту используется для
> 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

2017-06-02 Пенетрантность Konstantin Baryshnikov
В таком виде, конечно, не закоммитят. Я тут нагло воспользовался существованием 
внутреннего флага, который по факту используется для 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

2017-06-02 Пенетрантность S.A.N
> Т.е. директиву 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

2017-06-02 Пенетрантность Pavel V.
Здравствуйте.

> Я уточню чтобы меня понимали.

> Мы используем директиву - 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

2017-06-02 Пенетрантность S.A.N
Я уточню чтобы меня понимали.

Мы используем директиву - 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

2017-06-02 Пенетрантность S.A.N
> Это временный файл процесса 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

2017-06-02 Пенетрантность Pavel V.
Здравствуйте

> Спасибо, но проблема ручных патчей в будущей поддержке, нужно не забывать
> всегда патчить новые версии 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

2017-06-02 Пенетрантность S.A.N
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

2017-06-01 Пенетрантность Konstantin Baryshnikov
> 
> 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

2017-05-30 Пенетрантность S.A.N
Я конечно извиняюсь, за настойчивость, но неужели пермишен 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