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-data
daher 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 group
Anweisung 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-data
die 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.conf
Datei wie unten gezeigt zu aktualisieren, aber ohne Erfolg. www-data:www-data
Sowohl 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:
- Laden Sie den neuesten Nginx-Quellcode herunter:
wget http://nginx.org/download/nginx-1.11.9.tar.gz
- Auspacken
tar xzvf nginx-1.11.9.tar.gz
- Navigieren Sie zum Quellverzeichnis
cd nginx-1.11.9
Holen Sie sich Ihre aktuellen Nginx-Konfigurationsargumente aus
nginx -V
der Ausgabe:nginx -V
Beispielausgabe:--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
Ersetzen Sie die gewünschten Optionen und starten Sie
./configure
im 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
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 nginx
mit den Optionen, die Ihnen gefallen!