Ändern der Nginx-Gruppe

Ändern der Nginx-Gruppe

In unserer Entwicklungsumgebung migriere ich einige unserer Apache-Sites nach Nginx. Ich möchte sicherstellen, dass meine Entwickler, die alle derselben Gruppe angehören ( webgroup), vollen Zugriff auf die Dateien (z. B. Protokolldateien) haben, die vom Webserverbenutzer ( www-data) erstellt werden. Die vom Webbenutzer erstellten Dateien gehören normalerweise, www-data:www-datadaher dachte ich, ich ändere die primäre Gruppe dieses Benutzers so, dass sie mit der der Entwickler ( webgroup) übereinstimmt.

Die Gruppenänderung scheint durchgegangen zu sein, aber neu erstellte Dateien gehören immer noch www-data:www-data. Ich sehe keine groupAnweisung für die Nginx-Konfiguration und frage mich daher, ob es eine Möglichkeit gibt, sicherzustellen, dass vom Nginx-Benutzer erstellte/aktualisierte Dateien der richtigen Gruppe gehören.

Wenn ich vorausgedacht hätte, hätte ich vermutlich www-datadie primäre Gruppe für alle meine Benutzer erstellen können, aber das habe ich nicht getan und ich möchte vermeiden, zurückzugehen und alle diese Benutzer zu berühren. Denken Sie daran, dies ist eine Entwicklungsumgebung, daher ist Sicherheit nicht übermäßig kritisch, aber ich möchte trotzdem vermeiden, dass sich jeder als Root authentifiziert oder etwas ähnlich Offenes tut.

AKTUALISIEREN

Ich habe seitdem versucht, meine nginx.confDatei wie unten gezeigt zu aktualisieren, aber ohne Erfolg. www-data:www-dataSowohl nach einem Neustart als auch nach einem erzwungenen Neuladen werden weiterhin neue Dateien erstellt.

user www-data webgroup

Antwort1

Wenden Sie einfach ein Sticky Bit auf den Ordner an, in dem Sie die Protokolldateien speichern. nginx verwendet zum Erstellen der Protokolle immer die Gruppe, die zur Kompilierungszeit angegeben wurde. Die Gruppenanweisung in der Konfiguration wird nur während der Laufzeit angewendet.

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

Antwort2

Das Ändern der Nginx-Gruppe erfordert eine Neukompilierung. Glücklicherweise ist das kinderleicht. Folgen Sie einfach diesen einfachen Schritten:

  1. Laden Sie den neuesten Nginx-Quellcode herunter:
    • wget http://nginx.org/download/nginx-1.11.9.tar.gz
  2. Auspacken
    • tar xzvf nginx-1.11.9.tar.gz
  3. Navigieren Sie zum Quellverzeichnis
    • cd nginx-1.11.9
  4. Holen Sie sich Ihre aktuellen Nginx-Konfigurationsargumente aus nginx -Vder Ausgabe:

    • nginx -VBeispielausgabe:

      --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. Ersetzen Sie die gewünschten Optionen und starten Sie ./configureim Quellstamm

    • ./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. Warten Sie, bis der Befehl abgeschlossen ist (laden Sie bei Bedarf externe Module herunter). Ausführen

    • make && make install

Jetzt haben Sie alles ganz neu nginxmit den Optionen, die Ihnen gefallen!

verwandte Informationen