Чтобы упростить работу с моим веб-сервером, я предлагаю сделать что-то вроде следующего:
sudo chown www-data:www-data /var/www -R
cd /var/www
sudo find . -type f -exec chmod 664 {} \;
sudo find . -type d -exec chmod 775 {} \;
Мой ежедневный пользователь тоже добавлен в группу www-data.
У меня вопрос: это глупый / рискованный набор разрешений? Предоставление группе www-data этих разрешений открывает мой сервер?
Спасибо Алекс
Обычно вы просто хотите, чтобы папки загрузки или автоматически созданные файлы были доступны для записи www-data
пользователь.
В любом случае риск, который вы здесь открываете, заключается в том, что если ваше веб-приложение имеет какую-либо ошибку / уязвимость, которая может позволить злоумышленнику выполнить код на вашем сервере, этот код будет выполняться как www-data
(пользователь, запущенный процесс apache), и он может полностью удалить все ваши веб-сайты.
Не рекомендуется иметь права на запись для всей папки, большинству веб-сайтов (например, wordpress, joomla и magento) требуется разрешение на запись в определенные папки (загрузка изображений, загрузка файлов). Лучший способ - дать разрешение на запись в папки. и не разрешать выполнение сценария (PHP, python), всегда проверяйте, загружает ли пользователь правильный контент, например, если ваш веб-сайт позволяет пользователю загружать изображение в качестве аватара, проверьте, является ли это изображением, а не поддельным изображением с PHP скриптом внутри. И проблема с правами на запись в корень веб-сайта заключается в том, что если кто-то обнаружит уязвимость, он может использовать ее для записи нового файла index.php и «взлома» вашего веб-сайта.
Вы не должны разрешать обычным пользователям доступ к этому каталогу. Если пользователю не нужно писать или выполнять из этого каталога, ему не должно быть разрешено это делать. Как минимум, я бы ограничил разрешения до 755. Только root (или пользователь с root-доступом) и www-data должны иметь возможность писать в этот каталог.
Само по себе нет, если ваш веб-сервер не настроен для обработки запросов POST и тому подобного. Однако в случае возникновения какой-либо ошибки на веб-сервере или его клиентских сценариях, которая позволяет производить запись в файловую систему (а с учетом количества сценариев PHP, вероятность этого равна 1), весь ваш контент становится доступным для записи. Итак: это рискованно, и вам следует рассмотреть другие альтернативы.
Это действительно звучит рискованно, если предположить, что www-data является пользователем, доступным веб-серверу - вы по существу теряете защиту от записи, обеспечиваемую ACL. Второй вариант (775) также повышает риск того, что злоумышленник сможет удаленно запустить код на вашем компьютере.