Я знаю, что это очень старый вопрос, но я хотел добавить хорошее решение с некоторыми подробными объяснениями. Вам нужно будет выполнить два оператора в системах, подобных Ubuntu, и тогда это будет работать как шарм.
Разрешения в Linux могут быть представлены тремя цифрами. Первая цифра определяет разрешение владельца файлов. Вторая цифра - права доступа определенной группы пользователей. Третья цифра определяет права доступа для всех пользователей, которые не являются ни владельцем, ни членом группы.
Предполагается, что веб-сервер будет работать с идентификатором, который является членом группы. Веб-сервер никогда не должен работать с тем же идентификатором, что и владелец файлов и каталогов. В Ubuntu запускается apache под id www-data. Этот идентификатор должен быть членом группы, для которой указаны разрешения.
Чтобы дать каталогу, в котором вы хотите изменить содержимое файлов, необходимые права, выполните оператор:
find %DIR% -type d -exec chmod 770 {} \;
. Это означало бы, что в вопросе OP разрешения для каталога% ROOT% / database должны быть изменены соответствующим образом. Поэтому важно не иметь файлов в этом каталоге, которые никогда не должны быть изменены или удалены. Поэтому рекомендуется создавать отдельный каталог для файлов, содержимое которых необходимо изменить.
Разрешения на чтение (4) для каталога означают возможность собирать все файлы и каталоги с их метаданными в каталоге. Права на запись (2) дают разрешение на изменение содержимого каталога. Подразумевается добавление и удаление файлов, изменение разрешений и т. Д. Разрешение на выполнение (1) означает, что у вас есть право войти в этот каталог. Без последнего невозможно углубиться в каталог. Веб-серверу нужны разрешения на чтение, запись и выполнение, когда необходимо изменить содержимое файла. Для этого нужна группа цифра 7.
Второе утверждение касается вопроса ФП:
find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;
Требуется умение читать и писать документ, но не обязательно выполнять файл. 7 дается владельцу файлов, 6 - группе. Веб-серверу не нужно иметь разрешение на запуск файла, чтобы изменить его содержимое. Эти разрешения на запись должны предоставляться только файлам в этом каталоге.
Всем другим пользователям не следует давать никаких разрешений.
Для каталогов, которые не требуют изменения своих файлов, достаточно групповых прав доступа 5.
Документация о разрешениях и некоторые примеры:
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/