更改Nginx组

在我们的开发环境中,我将一些Apache站点迁移到Nginx。 我想要做的是确保我所有属于同一个组( webgroup )的开发人员都可以完全访问由Web服务器用户( www-data )创build的文件(例如日志文件)。 networking用户创build的文件通常由www-data:www-data所以我想我会更改该用户的主要组,以匹配开发人员( webgroup )。

组更改似乎已经完成,但新创build的文件仍由www-data:www-data 。 我没有看到nginx conf的group指令,所以我想知道是否有任何方法可以确保由nginx用户创build/更新的文件是由正确的组拥有的。

如果我想到,我想我可以把www-data作为我所有用户的主要群体,但是我没有,我也不想回头去接触所有这些用户。 请记住,这是一个开发环境,所以安全性不是超临界的,但我仍然希望避免每个人都以root身份进行身份validation,或者以类似的方式开放。

UPDATE

我已经尝试更新我的nginx.conf文件,如下所示,但无济于事。 在重新启动和强制重新加载后,新文件仍被创build为www-data:www-data

 user www-data webgroup 

只需将粘性位应用于存储日志文件的文件夹。 nginx总是使用在编译时给出的组来创build日志。 configuration中的组指令仅在运行时应用。

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

更改nginx组需要重新编译。 幸运的是,这很容易,只要按照这个简单的步骤:

  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 -V输出获取当前的nginxconfiguration参数:

    • 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. replace你需要的选项,然后在源根目录启动./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