2015-05-22 8 views
7

Być może brakuje mi czegoś bardzo podstawowego, ale jak to możliwe, że mój serwer sieciowy jest w stanie wykonywać i udostępniać treści z plików php, które mają uprawnienia 000?Mój serwer WWW nginx + php-fm może obsługiwać strony internetowe z uprawnieniami 000. Dlaczego?

Oto dany plik: http://178.62.125.162/test.php

Lokalizacja jest:

/usr/share/nginx/html/wordpress/test.php 

Oto LS:

---------- 1 deploy deploy 21 May 22 09:40 test.php 

nginx.conf ma wiersz:

user www-data; 

S o nie działa jako root ani nic.

ps aux | grep [n]ginx 
root  30223 0.0 0.1 85876 1364 ?  Ss May21 0:00 nginx: master process /usr/sbin/nginx 
www-data 30224 0.0 0.1 86172 1796 ?  S May21 0:03 nginx: worker process 
www-data 30225 0.0 0.1 86172 1796 ?  S May21 0:03 nginx: worker process 
www-data 30226 0.0 0.2 86516 2732 ?  S May21 0:00 nginx: worker process 
www-data 30227 0.0 0.1 86172 1796 ?  S May21 0:03 nginx: worker process 

Wygląda dla mnie normalnie, AFAIK - oczekuje się, że główny proces działający jako root.

i PHP-fm:

ps aux | grep php 
root  30311 0.0 1.8 309068 18580 ?  Ss May21 0:02 php-fpm: master process (/etc/php5/fpm/php-fpm.conf) 
www-data 30314 0.0 3.5 393324 36176 ?  S May21 0:01 php-fpm: pool www 
www-data 30315 0.0 3.1 388956 32112 ?  S May21 0:01 php-fpm: pool www 
www-data 30391 0.0 2.9 389828 29528 ?  S May21 0:00 php-fpm: pool www 

nie mogę nawet otworzyć plik siebie, zalogowany jako deploy:

cat test.php 
cat: test.php: Permission denied 

php test.php 
Could not open input file: test.php 

google wszędzie, ale większość rzeczy mogę znaleźć są związane z przeciwnie - ludzie dostają Zakazane błędy.

Być może dzieje się tak dlatego, że jest w/usr/share? Dzięki!

Dodatkowe info:

Ubuntu x64 LTS

PHP-FM

Aktualizacja:

Ponowne uruchomienie usługi php-fm po zmianie pozwolenia rozwiązuje go. Ale to nie ma dla mnie sensu:

chmod 000 test.php - web echos "test" 
service php5-fm restart - Access Denied 
chmod 644 test.php - web echos "test". No need for a restart this time? 
chmod 000 test.php - web echos "test". 
+0

W twoim przypadku skrypty PHP są wykonywane przez demona php-fpm, a nie nginx. Z jakiego użytkownika korzysta proces php-fpm? Czy uruchomiłeś ponownie php-fpm po zmianie uprawnień? –

+0

Interesujące. Zaktualizowałem to pytanie za pomocą procesu php, działa on jako dane www. Jednak po ponownym uruchomieniu php5-fpm, teraz daje odmowę dostępu. Dlaczego? – aaronjbaptiste

+0

php-fpm zwykle buforuje zawartość ostatnich/najbardziej popularnych skryptów do wykonania przyśpieszonego. Po ponownym uruchomieniu pamięci podręcznej php5-fpm została wyczyszczona i próba odczytu skryptu z dysku nie powiodła się przy użyciu odmowy dostępu. Od teraz będzie działać zgodnie z oczekiwaniami, bez dostępu do tego pliku. –

Odpowiedz

0

Podziękowania dla Aleksandra Uszakowa za udzielenie odpowiedzi.

Plik z uprawnieniami do odczytu został zapisany w pamięci podręcznej przez php-fm. Ponowne uruchomienie php-fm oznaczało, że pamięć podręczna została wyczyszczona, a następnie serwer sieciowy wyświetlił nowy plik z ograniczonym dostępem.

Powiązane problemy