Remarquez que j'utilise git donc, si vous utilisez gitosis ou tout autre nom d'utilisateur, il suffit de remplir le vôtre !
En console avec racine l'utilisateur exécute cette commande :
visudo
L'éditeur "vi" sera ouvert. Ajoutez ces lignes :
Defaults:git !authenticate
git ALL=(www-data) ALL
Au final, le fichier (qui est ouvert dans l'éditeur "vi" en appelant "visudo") devrait ressembler à ceci :
# /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
Ensuite, appuyez sur CTRL+O pour enregistrer le fichier, puis appuyez sur Enter pour accepter le nom du fichier (bla bla bla), puis appuyez sur CTRL+X pour fermer l'éditeur "vi".
Voila ! Maintenant git l'utilisateur peut exécuter des commandes en tant que www-data utilisateur :
sudo -u www-data git pull origin master