Назад | Перейти на главную страницу

Права доступа к файлам Apache и Linux

Недавно я переместил веб-сайт Symfony 1.3.2 (веб-фреймворк PHP) с компьютера Windows на Linux (Ubuntu 9.10).

С тех пор у меня были всевозможные проблемы, связанные с правами доступа к файлам (хотя приложение работало без этих проблем в Windows).

Я запускаю symfony fix-perms, который применяет маску 777 к веб-каталогу (предположительно, включая его подпапки) - (в стороне) я думаю, что это потенциальная дыра в безопасности ... Я хотел зайти сюда, чтобы спросить как правильно выставить разрешения.

В настоящее время при попытке сохранить файл с моего веб-сайта я получаю следующую ошибку:

Предупреждение PHP: imagejpeg () [0function.imagejpeg0]: невозможно открыть '/home/morpheous/work/webdev/frameworks/symfony/sites/project1/web/uploads/../images/thumbnail/959cd604cf6115014a3703beapg520a50 для записи : В доступе отказано в / home / morpheous / work / webdev / frameworks / symfony / sites / project1 / apps / frontend / lib

Вот разрешения для папок:

web
drwxr-xr-x 16 morpheous morpheous 4096 2010-02-24 21:01 web


web/uploads/../images
drwxr-xr-x 13 morpheous morpheous 12288 2010-04-09 15:25 images


web/uploads/../images/thumbnail
drwxr-xr-x 3 morpheous morpheous  4096 2010-02-24 20:44 thumbnail

Может ли кто-нибудь любезно сказать мне, как установить разрешения, чтобы мой веб-сайт (предположительно работающий как демон Apache) мог записывать файлы в каталог, указанный выше?

Прежде всего, файлы, к которым веб-сервер должен получить доступ для чтения или записи, обычно должны принадлежать пользователю и группе, на которой веб-сервер работает как (apache:apache или nobody:nobody, не уверен в точных значениях в Ubuntu).

Оттуда пользователь должен иметь r по файлам и rx в каталогах, за исключением случаев, когда требуются разрешения на запись. Группа обычно должна соответствовать разрешениям пользователя. Все остальные должны иметь доступ только для чтения. Это означает 0444 или 0664 для файлов и 0555 или 0775 для справочников.

Конечно, у вас могут быть причины для нарушения этой схемы в определенных местах, но это базовые значения, которые у вас должны быть.

Для ubuntu пользователем apache и PHP являются www-data.

Бегать sudo chown www-data:www-data web/uploads/ -R и посмотрите, решит ли это вашу проблему.

Также не используйте 777 для прав доступа к файлам, поскольку Игнасио Васкес-Абрамс заявил: «0444 или 0664 для файлов и 0555 или 0775 для каталогов».