Wiem, że to bardzo stare pytanie, ale chciałem dodać dobre rozwiązanie z pewnym szczegółowym wyjaśnieniem. Będziesz musiał wykonać dwie instrukcje na systemach podobnych do Ubuntu, a wtedy działa jak urok.
Uprawnienia w Linuksie można przedstawić za pomocą trzech cyfr. Pierwsza cyfra określa uprawnienia właściciela plików. Druga cyfra to uprawnienia określonej grupy użytkowników. Trzecia cyfra określa uprawnienia dla wszystkich użytkowników, którzy nie są właścicielem ani członkiem grupy.
Serwer WWW ma działać z identyfikatorem będącym członkiem grupy. Serwer sieciowy nie powinien nigdy działać z tym samym identyfikatorem, co właściciel plików i katalogów. W Ubuntu uruchamia apache pod identyfikatorem www-data. Ten identyfikator powinien należeć do grupy, dla której określono uprawnienia.
Aby nadać katalogowi, w którym chcesz zmienić zawartość plików, odpowiednie uprawnienia wykonaj polecenie:
find %DIR% -type d -exec chmod 770 {} \;
W przypadku PO oznaczałoby to, że uprawnienia do katalogu% ROOT% / database powinny zostać odpowiednio zmienione. Dlatego ważne jest, aby w tym katalogu nie znajdować się pliki, które nigdy nie powinny być zmieniane ani usuwane. Dlatego najlepszą praktyką jest utworzenie oddzielnego katalogu dla plików, których zawartość musi zostać zmieniona.
Uprawnienia do odczytu (4) dla katalogu oznaczają możliwość gromadzenia wszystkich plików i katalogów wraz z ich metadanymi w katalogu. Uprawnienia do zapisu (2) pozwalają na zmianę zawartości katalogu. Oznacza to dodawanie i usuwanie plików, zmianę uprawnień itp. Uprawnienie do wykonywania (1) oznacza, że masz prawo wejść do tego katalogu. Bez tego ostatniego nie można zagłębić się w katalog. Serwer WWW potrzebuje uprawnień do odczytu, zapisu i wykonywania, gdy zawartość pliku powinna zostać zmieniona. Dlatego grupa potrzebuje cyfry 7.
Drugie stwierdzenie dotyczy PO:
find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;
Umiejętność odczytu i zapisu dokumentu jest wymagana, ale nie jest wymagana do wykonania pliku. 7 jest przyznawane właścicielowi plików, 6 - grupie. Serwer WWW nie musi mieć uprawnień do wykonania pliku, aby zmienić jego zawartość. Te uprawnienia do zapisu należy nadawać tylko plikom w tym katalogu.
Wszystkim innym użytkownikom nie należy nadawać żadnych uprawnień.
Dla katalogów, które nie wymagają zmiany swoich plików, wystarczające są uprawnienia grupowe o wartości 5. Dokumentacja dotycząca uprawnień i kilka przykładów:
https://wiki.debian.org/Permissions
https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions
http://www.linux.org/threads/file-permissions-chmod.4094/
php.ini
plik w poszukiwaniu czegokolwiek, co mogłoby uniemożliwić dostęp do pliku?