Обратите внимание, что я использую имя пользователя git , поэтому, если вы используете gitosis или любое другое имя пользователя, просто введите свое!
В консоли с пользователем root выполните эту команду:
visudo
Откроется редактор «vi». Добавьте эти строки:
Defaults:git !authenticate
git ALL=(www-data) ALL
В результате файл (который открывается в редакторе "vi" с помощью вызова visudo) должен выглядеть следующим образом:
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults:git !authenticate
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
git ALL=(www-data) ALL
# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
Затем нажмите CTRL + O, чтобы сохранить файл, затем нажмите Enter, чтобы принять имя файла (бла-бла-бла), затем нажмите CTRL + X, чтобы закрыть редактор «vi».
Вуаля! Теперь пользователь git может выполнять команды как пользователь www-data :
sudo -u www-data git pull origin master