Observe que estou usando o nome de usuário git ; portanto, se você estiver usando gitose ou qualquer outro nome de usuário, basta preencher o seu!
No console com usuário root, execute este comando:
visudo
O editor "vi" será aberto. Adicione estas linhas:
Defaults:git !authenticate
git ALL=(www-data) ALL
Como resultado, o arquivo (que é aberto no editor "vi" chamando "visudo") deve ficar assim:
# /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
Em seguida, pressione CTRL + O para salvar o arquivo, pressione Enter para aceitar o nome do arquivo (bla bla bla) e pressione CTRL + X para fechar o editor "vi".
Voila! Agora, o usuário git pode executar comandos como usuário www-data :
sudo -u www-data git pull origin master