Я создал webhook на github, который вызывает мой веб-сервер для обновления файлов в корне сети. Я защитил отправляющую часть, используя токен на github, поэтому только запросы от github могут выполнять скрипт. Мой вопрос заключается в том, что скрипт будет работать как веб-сервер (www-data), что является лучшим способом дать ему права на запись в webroot. Является ли предоставление пользователям веб-сервера прав записи в webroot хорошей идеей? Какие есть альтернативы?
1 ответ
1
Сначала напишите сценарий, который выполняет точные необходимые шаги развертывания. Затем предоставьте www-data
права на запуск этого конкретного скрипта через sudo. Например, используя следующее правило sudoers:
www-data ALL=(someuser) /path/to/deploy.sh
(Замените "someuser" на учетную запись, которая фактически владеет файлами веб-приложения.)
Обработчик webhook затем выполнит:
sudo -u someuser /path/to/deploy.sh
Таким образом, ваш веб-сервер может выполнять обновления точно по сценарию, но при этом у него нет лишнего доступа для удаления файлов или установки вредоносных программ на сайт.