Введение

Привет, я хотел предложить краткий и прямой способ настроить разрешения для вашего проекта Laravel. Эти примеры похожи на работу на все случаи жизни. Вам нужно будет принять во внимание пользователей вашего сервера, конфигурации и т. д.
‎‎
Существует два основных способа настроить права собственности и разрешения. Либо вы даете себе право собственности, либо вы делаете веб-сервер владельцем всех файлов.‎

Веб-сервер в качестве владельца (рекомендуется для PROD)
Веб-сервер в качестве владельца (как это делает большинство людей и как это описано в документации Laravel):

Предполагая, что www-data (это может быть что-то еще) является пользователем вашего веб-сервера.

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory

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

sudo usermod -a -G www-data ubuntu

Конечно, это предполагает, что ваш веб-сервер работает как www-data (по умолчанию Homestead), а ваш пользователь — Ubuntu (это vagrant, если вы используете Homestead).

Затем вы устанавливаете для всех своих каталогов значение 755, а для файлов — 644… SET права доступа к файлам.

sudo find /path/to/your/laravel/root/directory -type f -exec chmod 644 {} \;

Установить права доступа к каталогу

sudo find /path/to/your/laravel/root/directory -type d -exec chmod 755 {} \;

Затем вам нужно дать разрешения на чтение и запись веб-серверу для хранения, кеша и любых других каталогов, которые веб-сервер должен загружать или записывать:

sudo chgrp -R www-data storage bootstrap/cache  
sudo chmod -R ug+rwx storage bootstrap/cache

‏‏‎

Ваш пользователь как владелец (удобно для STAGING и DEV)

Если вы предпочитаете владеть всеми каталогами и файлами (это значительно упрощает работу со всем), перейдите в корневой каталог Laravel:

cd /var/www/html/laravel >> assuming this is your current root directory

‏‎ ‎
Если вы это сделаете, веб-сервер владеет всеми файлами, а также является группой, и у вас возникнут проблемы с загрузкой файлов или работой с файлами через FTP, потому что ваш FTP-клиент будет авторизован как вы, а не ваш веб-сервер, поэтому добавьте своего пользователя в группу пользователей веб-сервера:

sudo usermod -a -G www-data ubuntu
sudo chown -R $USER:www-data .

Затем вы даете своему пользователю и веб-серверу разрешения:

sudo find . -type f -exec chmod 664 {} \;  
sudo find . -type d -exec chmod 775 {} \;

‏‎
Затем вам нужно предоставить веб-серверу разрешения на чтение и запись для хранилища, кэша и любых других каталогов, которые веб-серверу необходимо загрузить или записать:

sudo chgrp -R www-data storage bootstrap/cache  
sudo chmod -R ug+rwx storage bootstrap/cache

Заключение

Я надеюсь, что вы нашли эту статью полезной.

Если у вас есть какие-либо отзывы или вы нашли ошибки, пожалуйста, не стесняйтесь обращаться ко мне.

Кредит: Андрес Фелипе и bgies ответы.