#1 Le 17/03/2012, à 00:18
- b1nj
[résolu]Exécuter des commandes avec un autre user
Bonjour,
Je cherche à automatiser le déploiement de mes sites qui sont sur un dépot git.
Pour cela, je cherche à exécuter à l'aide de sudo la commande "git" lié à un autre user "usersite".
Dans le script de mon utilisateur "usergit" je fait
sudo -H -u usersite sh -c 'export GIT_DIR=/home/monsite/.git; git pull'
Dans le fichier sudoers, j'autorise mon utilisateur à utiliser la commande git http://doc.ubuntu-fr.org/sudoers
usergit ALL=(usersite) NOPASSWD: /usr/bin/git pull
La fonction git fonctionne, malheureusement il me dit qu'il ne peut pas faire la mise à jour des fichiers. création/écriture...
Avez-vous une idée pour solutionner mon problème ?
Dernière modification par b1nj (Le 17/03/2012, à 17:47)
Hors ligne
#2 Le 17/03/2012, à 09:49
- credenhill
Re : [résolu]Exécuter des commandes avec un autre user
hello
l'utilisateur usersite a-t-il les droits d'écriture dans le répertoire où vont se créer les fichiers ?
Hors ligne
#3 Le 17/03/2012, à 13:18
- b1nj
Re : [résolu]Exécuter des commandes avec un autre user
Oui bien sur. De plus quand j'exécute la même commande loggé sous usersite je n'est aucun problème.
Hors ligne
#4 Le 17/03/2012, à 16:07
- credenhill
Re : [résolu]Exécuter des commandes avec un autre user
que répond cette commande
sudo -H -u usersite sh -c 'id ; touch xxxx ; ls -l xxx'
Dernière modification par credenhill (Le 17/03/2012, à 16:07)
Hors ligne
#5 Le 17/03/2012, à 16:28
- b1nj
Re : [résolu]Exécuter des commandes avec un autre user
Voila le résulat :
uid=1003(usersite) gid=100(users) groups=100(users)
touch: cannot touch `xxxx': Permission denied
ls: cannot access xxx: Permission denied
Hors ligne
#6 Le 17/03/2012, à 16:56
- b1nj
Re : [résolu]Exécuter des commandes avec un autre user
Et voici le résultat quand je le fais directement à partir de mon utilisateur usersite :
id ; touch xxxx ; ls -l xxxx
uid=1003(usersite) gid=100(users) groupes=100(users)
-rw-r--r-- 1 usersite users 0 mar 17 15:55 xxxx
Dernière modification par b1nj (Le 17/03/2012, à 16:58)
Hors ligne
#7 Le 17/03/2012, à 17:16
- credenhill
Re : [résolu]Exécuter des commandes avec un autre user
essaye
sudo -H -u usersite sh -c 'cd $HOME;id ; touch xxxx ; ls -l xxx'
Hors ligne
#8 Le 17/03/2012, à 17:47
- b1nj
Re : [résolu]Exécuter des commandes avec un autre user
Ok, je penses que c'est bon. Merci du coup de main, cela ma permis d'isoler le problème.
Non le cd $HOME ne fonctionnait pas non plus.
En regardant le répertoire courant avec pwd, je me suis aperçu que la commande -H n'avait fait aucun effet. Ceci à cause d'une option sudoers non mentionné dans le man sudo.
Le code ci-dessous dans le fichier sudoers m'a perdu de régler le problème.
Defaults:git !env_reset
Hors ligne