diff --git a/README.md b/README.md index f58608acff8e74b3de013d8f4b3026e60da30dd5..268910dbe9d19901a18270acf6ddd55acbc445c0 100644 --- a/README.md +++ b/README.md @@ -67,4 +67,27 @@ En effet, le dépôt sera partagé et les fichiers doivent être éditables par Or, avec Git, tout `git pull` va associer les nouveaux fichiers écrits au compte qui effectue la commande, avec des permissions d'écriture uniquement pour ce membre (pour plus de détails, se référer à la [documentation Git](https://git-scm.com/docs/git-init#Documentation/git-init.txt---sharedfalsetrueumaskgroupallworldeverybody0xxx) et comprendre la notion de `umask`). -Une solution pour rendre le dépôt "partagé" (*i.e.* éditable par tous les membres du groupe `docker`), voir [cette solution](https://stackoverflow.com/a/29646155) +Une solution pour rendre le dépôt "partagé" (*i.e.* éditable par tous les membres du groupe `docker`), quelles que soient les permissions initiales, est la suivante. + +1. Éditer `/DATA/docker/dockerfiles/.git/config`, et ajouter, sous `[core]` : +``` +sharedrepository = group +``` + +Ainsi, le dépôt sera "partagé", c'est-à -dire que les fichiers créés seront en théorie partagé avec le groupe propriétaire du dépôt, qui devrait être `docker`. Voir [la documentation](https://git-scm.com/docs/git-init#Documentation/git-init.txt---sharedfalsetrueumaskgroupallworldeverybody0xxx). + +2. Pour être certain que les fichiers créés manuellement sur la machine par les utilisateurs soient accessibles par le groupe `docker`, on entrera la commande suivante : + +```bash +sudo setfacl -Rdm g:docker:rwx /DATA/docker/dockerfiles +``` + +Ainsi, les fichiers créés auront le groupe `docker` par défaut ainsi que les permissions d'écriture pour le groupe. + +3. On terminera, pour être sûr, par : +```bash +sudo chgrp -R docker /DATA/docker/dockerfiles +sudo chmod -R g+w /DATA/docker/dockerfiles +sudo chmod g-w /DATA/docker/dockerfiles/.git/objects/pack/* +find /DATA/docker/dockerfiles -type d -exec sudo chmod g+s {} \; +```