У меня есть функция загрузки изображений на моем сайте. Я попробовал это в моем localhost, и это работало хорошо. Теперь я принял его, и произошла следующая ошибка:
не удалось переместить загруженный файл, чтобы открыть поток отказано в разрешении
Я проверил ошибку онлайн и обнаружил, что, изменив chmod на 777, ее можно устранить.
Я попробовал то же самое, и это сработало. Даже просто 713 работает нормально. Но давать разрешение 777 не очень хорошо из-за возможностей взлома.
Это можно обойти? Сейчас я изменил chmod на 713, пока не смогу найти лучшее решение для того же.
В настоящее время я размещаюсь в облачной платформе Google с Ubuntu 16.04 image
Вы можете использовать 2 варианта.
1) вы можете изменить владельца из каталога загрузки на пользователя apache
chmod www-data:www-data your_folder
но это имеет некоторые негативные последствия. Ваш пользователь SSH может редактировать файлы здесь только с правами суперпользователя.
2) вы можете создать группу только для загрузки файлов и поместить в эту группу своего пользователя ssh и пользователя apache
sudo addgroup uploaders
sudo usermod -aG uploaders www-data
sudo usermod -aG uploaders your_user
после этого смените владельца папки загрузки
chmod your_user:uploaders your_folder
после этого вы можете изменить разрешения на 744 или что-то, что вы хотите
Других решений пока нет …