Разрешения с Git Post-Receive

Я установил git локально и на моем сервере и создал 'после приема» так что, когда я делаю толчок к работающему серверу, он должен затем обратиться к каталогу виртуальных хостов веб-сайта.

#!/bin/sh
GIT_WORK_TREE=/var/www/domainname/public_html/ git checkout -f

Тем не менее, когда я пытаюсь выполнить push, он успешно выходит из мастера, но я получаю ошибки об отказе в разрешении при попытке создать эти файлы в корне моего сервера.

напримерremote: error: unable to create file index.php (Permission denied)

Эти ошибки действительно имеют смысл для меня из-за того, как я настроил свой сервер. Я отключил root-доступ и создал нового пользователя, который добавляется в sudoers через visudo - тогда я настроил SSH-ключи для этого пользователя. Я использую этого пользователя для отправки изменений в git на сервер.

Проблема в том, что этот пользователь, которого я подключаю к push, неУ него нет прав на запись в каталог виртуальных хостов. Все мои файлы в этих папках принадлежат www-data (мой пользователь nginx) из той же группы.

Каково решение? Создайте другого пользователя с SSH-ключами для подключения только для git с более высокими разрешениями или есть способ предоставить sudo-возможности после получения?

Извиняюсь за очень длинный вопрос, но хотел быть абсолютно ясным с тем, что я сделал.

Ответы на вопрос(1)

Ваш ответ на вопрос