Чтобы обеспечить должный уровень безопасности веб проекта, а также его работоспособность, следует назначить права доступа, позволяющие работать веб серверу с определёнными каталогами, а некоторые из них ограничить для записи. При этом есть некоторые общие правила, которые применимы к большинству Laravel проектам.
Владельцем файлов мы назначаем пользователя системы, а в качестве группы присваиваем группу, в которой работает веб сервер. Для этого в корне проекта надо выполнить команду:
1 |
sudo chown -R my-username:_www . |
Затем, назначаем права каталогам и файлам:
1 2 |
sudo find . -type f -exec chmod 664 {} \; sudo find . -type d -exec chmod 775 {} \; |
Последним пунктом даём права веб серверу записывать файлы в storage и cache:
1 2 |
sudo chgrp -R _www storage bootstrap/cache sudo chmod -R ug+rwx storage bootstrap/cache |
Теперь файлы веб приложения достаточно защищены, приложение работоспособно, а также ваш пользователь также может работать со всеми файлами.
В основу предлагаемого решения взята рекомендация со Stackoverflow.