Question

Comment pouvez-vous utiliser Git sans Sudo dans plusieurs comptes dans un Ubuntu?

Mon Ubuntu a beaucoup de comptes. La création de nouveaux comptes a rendu inaccessible Git par moi sans sudo.

J'ai changé le propriétaire d'être moi, masi, et le groupe à admin où le masi appartient. Je les autorisations suivantes pour Git

800 -rwxrwxrwx 1 masi admin 813744 2009-02-20 23:01 /usr/bin/git

Je reçois le message suivant en essayant d'utiliser Git

git status
fatal: unable to create '.git/index.lock': Permission denied

Je lance find . -iregex ".*index.l.* qui retourne aucune correspondance il semble donc y avoir aucun index.lock à verrouiller le système. Je lance la même commande aussi avec succès sudo.

Était-ce utile?

La solution

Si je comprends bien votre question, vous devez accorder plusieurs comptes d'utilisateurs * nix accès en écriture au même dépôt git. En utilisant l'argument de ligne de commande pour --share git init devrait permettre cela. Le GitWiki a quelques mots à dire à ce sujet . Cela devrait faire l'affaire:

git --bare init --shared=all

Si vous avez déjà créé votre dépôt, vous pourriez être en mesure de le convertir en un « référentiel partagé » en lançant cette commande:

git repo-config core.sharedRepository true

dans votre dépôt, comme indiqué dans un billet de blog à moserei.de .

2014 mise à jour: Ceci est encore possible, mais la commande a changé de config-repo à config.

git config core.sharedRepository true

Autres conseils

Git est destiné à être distribué. Ainsi, chaque utilisateur doit être d'avoir un dépôt séparé de son / elle-même. La méthode ci-dessus contredit cette méthodologie. En dehors de cela, je pense que les permissions du répertoire .git.

Je suppose que la propriété du répertoire .git sont le problème.

Vous ne devriez pas utiliser un arbre source de différents utilisateurs - il est susceptible de conduire à des problèmes

.

L'exécutable git n'est pas la question. Il devrait appartenir à la racine, et a 755 autorisations. (-rwxr-xr-x)

En d'autres termes, vous pouvez utiliser git à partir de plusieurs comptes, mais vous ne devez pas partager un seul répertoire de travail.

Avoir les autorisations d'un ensemble exécutable de sorte qu'un utilisateur normal peut remplacer l'exécutable est un risque de sécurité considérable. (Essayez avec un /usr/bin/git écraser script shell qui appelle rm -rf $HOME.)

Modifier les autorisations de retour à 755 et faire git appartenant à root: root à nouveau. (Gestionnaire de paquets d'Ubuntu serait réinitialiser les autorisations sur la prochaine mise à jour de toute façon, sauf si vous avez utilisé dpkg-statoverride(8))

Je suis d'accord avec ceux qui disent qu'il ne peut pas être une bonne idée d'avoir plusieurs utilisateurs partagent un dépôt git. Si vous pensez toujours qu'il est nécessaire, envisager la création d'un nouveau groupe, chgrp le répertoire contenant le référentiel et tous les fichiers qui y sont à ce groupe etrégler le bit setgid sur les répertoires. (Le paramètre --shared à git init peut faire un peu de cela pour vous aussi.) Ensuite, ajoutez tous les utilisateurs du groupe qui devrait avoir engager des droits.

Vous pouvez vérifier les membres en utilisant

members groupname

Ensuite, vous pouvez régler le niveau d'autorisation pour le nom d'utilisateur: paire groupname,

change the ownership
sudo chown -v -R username:groupname sprout
chmod -R g+w .git/*
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top