Comment réparer une permission refusée pour le répertoire .git / lors de l'exécution de git push?
J'ai mis en place un dépôt git sur mon serveur. Créé un nouvel utilisateur git. Mon repos sont situés dans /srv/git/example.git
. J'ai été en mesure de git remote add origin git@domain/srv/git/example.git
puis j'ai ajouté et les commis mes modifications.
Cependant, quand j'ai essayé git push origin master
il a échoué sur:
fatale: impossible de créer le fichier temporaire: permission denied " et "fatal: sha1 du fichier write error: invalid argument"
Sur le serveur, j'ai couru:
sudo chown -R git:git /srv/git/`
Cela a réglé mon problème, mais je me demandais si c'était la bonne chose à faire?
source d'informationauteur xylar
Vous devez vous connecter pour publier un commentaire.
Absolument. Le problème était, auparavant, que les utilisateurs de git, qui vous vous connectez via SSH, impossible d'écrire dans le référentiel.
En fonction de vos besoins, vous pouvez envisager de différentes combinaisons d'utilisateurs et les clés SSH, ou l'un des nombreux programmes supplémentaires (gitolite etc) qui peuvent être utilisés pour plus finement le contrôle d'accès.
Tout d'abord, fixer les autorisations de fichier dans votre télécommande
.git
dir par exempleou
root:root
si vous souhaitez affecter des membres deroot
groupe de pression.Puis dépôt git sur l'hôte de destination doit être définie comme partagé, donc la commande suivante sur la télécommande doit être exécuté: