Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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