Tenga en cuenta que estoy usando el nombre de usuario git , por lo tanto, si está usando gitosis o cualquier otro nombre de usuario, ¡simplemente complete el suyo!
En la consola con usuario root, ejecute este comando:
visudo
Se abrirá el editor "vi". Agregue estas líneas:
Defaults:git !authenticate
git ALL=(www-data) ALL
En consecuencia, el archivo (que se abre en el editor "vi" llamando a "visudo") debería verse así:
# /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
Luego presione CTRL + O para guardar el archivo, luego presione Entrar para aceptar el nombre de archivo (bla bla bla), luego presione CTRL + X para cerrar el editor "vi".
Voila! Ahora git user puede ejecutar comandos como usuario de www-data :
sudo -u www-data git pull origin master