12 votes

Autoriser l'utilisateur 'git' à exécuter 'git pull' en tant que 'www-data' via sudo

J'aimerais autoriser git à exécuter 'git pull' en tant qu'utilisateur 'www-data'. D'après ce que j'ai compris

    git ALL=(www-data) git pull

dans /etc/sudoers devrait le faire.

Malheureusement, j'obtiens une erreur de syntaxe pour cette ligne et la surbrillance syntaxique de visudo s'interrompt juste après le "-" dans 'www-data'.

Impossible de trouver des informations concernant le '-' interdit dans les noms d'utilisateur de /etc/sudoers. Des conseils ?

12voto

Sveatoslav Points 101

Vous devez utiliser le nom complet du chemin pour la commande 'git', les lignes suivantes ne produisent pas d'erreur de syntaxe dans visudo et fonctionnent bien.

git ALL = (www-data) /usr/bin/git pull

10voto

Taai Points 191

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X