Nginx 그룹 변경

Nginx 그룹 변경

우리 개발 환경에서 일부 Apache 사이트를 Nginx로 마이그레이션하고 있습니다. 내가 하고 싶은 것은 모두 동일한 그룹( webgroup)에 속한 개발자가 웹 서버 사용자( )가 생성한 파일(예: 로그 파일)에 대한 전체 액세스 권한을 갖도록 하는 것입니다 www-data. 웹 사용자가 만든 파일은 일반적으로 소유자 www-data:www-data이므로 해당 사용자의 기본 그룹을 개발자( webgroup)의 그룹과 일치하도록 변경하려고 생각했습니다.

그룹 변경은 완료된 것으로 보였지만 새로 생성된 파일은 여전히 www-data:www-data​​. nginx conf에 대한 지시어가 표시되지 않으므로 groupnginx 사용자가 생성/업데이트한 파일을 올바른 그룹이 소유하도록 할 수 있는 방법이 있는지 궁금합니다.

미리 생각했다면 www-data모든 사용자에 대한 기본 그룹을 만들 수 있었을 것 같지만 그렇게 하지 않았으므로 돌아가서 모든 사용자를 건드리는 것을 피하고 싶습니다. 이것은 개발 환경이므로 보안이 지나치게 중요하지는 않지만 여전히 모든 사람이 루트 또는 이와 유사한 공개 인증으로 인증하는 것을 피하고 싶습니다.

업데이트

이후 아래에 표시된 대로 파일을 업데이트하려고 시도했지만 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 그룹을 변경하려면 다시 컴파일해야 합니다. 다행히도 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 -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이제 원하는 옵션을 갖춘 새로운 제품을 만나보실 수 있습니다 !

관련 정보