У меня есть простой вопрос, однако я пытаюсь понять, как это сделать безопасным способом,
У меня есть веб-приложение на основе PHP, работающее на Linux (Centos7), у меня есть доступ «пользователя» с привилегиями Sudo на сервере Linux.
Веб-сервер (Apache) работает как пользователь «apache» с группой «apache»,
Проблема в том, что когда я пытаюсь развернуть приложения с помощью WinSCP, я получаю ошибки об отказе в доступе. ЕДИНСТВЕННЫЙ способ решить эту проблему — сделать
usermod -g apache myusername
chmod 775 /var/www/html
Я не хочу давать 775 всей веб-папке.Я думаю, что это большая проблема безопасности. Какой самый безопасный способ архивации такого типа задач?
Как мне развернуть свое приложение с помощью Winscp, используя мою учетную запись пользователя, но как пользователь Apache? Или есть ли какие-либо другие предложения по общепринятой отраслевой практике, которая считается безопасной?
решение1
Существует несколько рекомендуемых способов решения этой проблемы.
- Добавить доступ на запись
/var/www/html
пользователю, который входит через WinSCP/SFTP. Это можно сделать несколькими способами.- Изменение группы на работающего пользователя (и предоставление прав на запись)
Примечание: это работает, поскольку для пользователей всегда создается группа Unix.sudo chgrp <user> /var/www/html sudo chmod g+w -R /var/www/html
- Создание новой группы unix, содержащей как apache, так и пользователя (и предоставление прав на запись)
sudo groupadd <groupname> sudo chgrp <groupname> /var/www/html sudo chmod g+w -R /var/www/html
- Изменение группы на работающего пользователя (и предоставление прав на запись)
- Запустите службу Apache, войдя в систему через WinSCP/SFTP.связь)
- Переместите корневой каталог документов Apache из
/var/www/html
(просто создав символическую ссылку из /var/www/html на каталог, принадлежащий пользователю развертывания, или обновив конфигурацию Apache)