Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Mam zainstalowanego Nginx'a uruchamianego jako www-data:www-data oraz PHP-FPM uruchamianego w trybie per user - jako użytkownik każdego z vhostów. Użytkownicy vhostów są dodatkowo w grupie www-data, a sockety FPM są własnością USER_VHOSTU:www-data oraz mają uprawniania 660.
Rozumiem że PHP odczytuje i wykonuje te pliki jako USER_VHOSTU:www-data (właściciel socketu), a Nginx pliki statyczne odczytuje jako www-data?
Jak więc powinienem ustawić uprawnienia plików stron (min. WP) aby było najbezpieczniej? Wszystkie pliki statyczne ustawić na 640 i nadać im właściciela USER_VHOSTU:www-data, a dla plików PHP 600 i właściciela USER_VHOSTU:USER_VHOSTU?
Jak zrobić żeby było to wygodniejsze? Można jakoś zmusić Nginx do odczytywania plików jako USER_VHOSTU:USER_VHOSTU? Mógłbym wtedy ustawić wszystko na USER_VHOSTU:USER_VHOSTU 600. Czy było by to bezpieczne?
Offline
711 dla katalogów vhosta. 644 dla plików wewnątrz, bo niektóre skrypty czasem się burzą.
Można jakoś zmusić Nginx do odczytywania plików jako USER_VHOSTU:USER_VHOSTU?
U mnie to działa bez najmniejszych problemów.
Offline
Przez ustawienia php, nginx działa jak www-data cały czas.
Offline
Da się osobno dla każdego usera odpalić demona php-fpm, z osobnym konfigiem per/user i osobno dla każdego usera obciąć mu uprawnienia przez cgroup.
W Nginxie wtedy trzeba każdemu pacjentowi zrobić vhosta i w nim ustawić, przez jaki socket ma iść php.
Samego Nginxa nie ma co puszczać jako osobny user (podobnie z resztą, jak Apacha, ale to inny temat), bo on tylko serwuje pliki, nic innego nie robi, i nie musi (nawet nie powinien) mieć prawa zapisu w folderach, w których ma pliki do serwowania.
95% infekcji Wordpressów i innych CMSów (np przez podrzucenie c99.php) wynika z tego, że serwer www i parser php mają prawo zapisu w folderach z wykonywanymi skryptami PHP.
To by było na tyle
;-)
Offline