Cela ressemble à l'utilisateur que vous exécutez a le groupe par défaut défini sur yuri
. Vous pouvez le confirmer comme ceci:
$ id -a
uid=1000(saml) gid=1000(saml) groups=1000(saml),10(wheel),989(wireshark)
L'UID de votre compte est le suivant: uid=1000(saml)
alors que le groupe par défaut est git=1000(saml)
et tous les groupes secondaires le sont par la suite.
REMARQUE: Si vous souhaitez que le clone git ait une propriété spécifique, vous avez au moins 2 options.
Option 1
Définissez un répertoire parent avec les autorisations souhaitées:
$ mkdir topdir
$ chgrp http topdir
$ chmod g+s topdir
$ cd topdir
$ git clone ....
Cela a forcé le répertoire topdir
à appliquer tous les répertoires enfants en dessous pour que le groupe soit http
appliqué. Cela fonctionnera en gros mais peut entraîner des problèmes, car si vous déplacez des fichiers dans cet espace de travail de clone git, ces groupes n'auront pas leurs groupes imposés par les modifications apportées ci-dessus.
Option 2
Avant de travailler, changez votre groupe par défaut http
comme suit:
$ newgrp http
$ git clone ...
Cette méthode forcera tous les nouveaux fichiers créés à avoir leur groupe défini à la http
place de votre groupe par défaut normal yuri
, mais cela ne fonctionnera que tant que vous vous souviendrez de faire un newgrp
avant de travailler dans cet espace de travail.
Autres options
Si aucun de ces éléments ne semble acceptable, vous pouvez essayer d'utiliser des ACL à la place sur le répertoire de l'espace de travail git. Celles-ci sont discutées dans plusieurs questions et réponses sur ce site, comme dans ce Q&R intitulé: Obtenir de nouveaux fichiers pour hériter des autorisations de groupe sur Linux .
newgrp
. Ensuite, change-t-il le groupe pour le shell actuel uniquement? Enfin, il s'agissait de ne rendre accessibles que des fichiers / répertoires spécifiques pour l'écriture par le serveur Web. Après tout, je devrais probablement les réparer manuellement, ou mettre en place ungit
crochet ...La solution que j'utilise consiste à exécuter la commande en tant qu'utilisateur disposant des autorisations que vous souhaitez conserver:
Cela empêche les autorisations de changer. Je l'utilise lors de la mise à jour des référentiels git sur mon VPS, tout en conservant les autorisations de fichier définies pour l'utilisateur du serveur Web.
Voir aussi la même question ici .
la source