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".
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ń? –
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
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. –