更改 Nginx 组

更改 Nginx 组

在我们的开发环境中,我正在将一些 Apache 站点迁移到 Nginx。我想要做的是确保所有属于同一组 ( webgroup) 的开发人员都对由 Web 服务器用户 ( ) 创建的文件(例如日志文件)具有完全访问权限www-data。Web 用户创建的文件通常归所有,www-data:www-data因此我想将该用户的主要组更改为与开发人员 ( webgroup) 的主组相匹配。

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

如果我提前考虑过,我想我可以www-data为所有用户创建主要组,但我没有这样做,而且我想避免回头接触所有这些用户。请记住,这是一个开发环境,因此安全性并不是特别重要,但我仍然希望避免让每个人都以 root 或类似方式进行身份验证。

更新

此后,我尝试更新我的nginx.conf文件,如下所示,但无济于事。www-data:www-data重启和强制重新加载后仍会创建新文件。

user www-data webgroup

答案1

只需将粘性位应用于存储日志文件的文件夹即可。nginx 始终使用编译时指定的组来创建日志。配置中的组指令仅在运行时应用。

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

答案2

更改 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从输出中获取当前的 nginx 配置参数:

    • 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选项!

相关内容