Изменение группы Nginx

Изменение группы Nginx

В нашей среде разработки я переношу некоторые из наших сайтов Apache на Nginx. Я хотел бы убедиться, что мои разработчики, которые принадлежат к одной группе ( webgroup), имеют полный доступ к файлам (например, файлам журналов), которые создаются пользователем веб-сервера ( www-data). Файлы, созданные пользователем веб-сервера, обычно принадлежат , www-data:www-dataпоэтому я подумал, что изменю основную группу этого пользователя, чтобы она соответствовала группе разработчиков ( webgroup).

Изменение группы, похоже, прошло, но вновь созданные файлы по-прежнему принадлежат www-data:www-data. Я не вижу groupдирективы для конфигурации nginx, поэтому мне интересно, есть ли способ гарантировать, что файлы, созданные/обновленные пользователем nginx, будут принадлежать правильной группе.

Если бы я думал заранее, я бы мог сделать www-dataосновную группу для всех своих пользователей, но я этого не сделал и хотел бы избежать возвращения и прикосновения ко всем этим пользователям. Помните, это среда разработки, поэтому безопасность не является сверхкритической, но я все равно хотел бы избежать аутентификации всех как root или что-то подобное с широким доступом.

ОБНОВЛЯТЬ

С тех пор я пытался обновить свой nginx.confфайл, как показано ниже, но безрезультатно. Новые файлы все еще создаются как www-data:www-dataпосле перезапуска, так и после принудительной перезагрузки.

user www-data webgroup

решение1

Просто примените липкий бит к папке, в которой хранятся файлы журналов. nginx всегда использует группу, указанную во время компиляции для создания журналов. Директива group в конфигурации применяется только во время выполнения.

chown -R www-data:webgroup /var/log/nginx && chmod g+s /var/log/nginx

решение2

Изменение группы nginx требует перекомпиляции. К счастью, это просто как 123. Просто следуйте этим простым шагам:

  1. Загрузите последнюю версию исходного кода nginx:
    • wget http://nginx.org/download/nginx-1.11.9.tar.gz
  2. Распакуйте его
    • tar xzvf nginx-1.11.9.tar.gz
  3. Перейдите в исходный каталог.
    • cd nginx-1.11.9
  4. Получите текущие аргументы конфигурации nginx из nginx -Vвывода:

    • nginx -Vпример вывода:

      --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

  5. Замените нужные вам параметры и запустите ./configureв исходном корне.

    • ./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
  6. Дождитесь завершения команды (при необходимости загрузите внешние модули). Запустите

    • make && make install

Теперь у вас есть совершенно новый вариант nginxс нужными вам опциями!

Связанный контент