Listes de contrôle d'accès
La réponse directe est les listes de contrôle d'accès (ACL) . Oui, vous pouvez trouver un contre-exemple, mais ils sont assez bons dans la pratique (contrairement à la simple écriture en groupe qui nécessite que les utilisateurs y réfléchissent tout le temps). Ce dont ils ont besoin, c'est que l'administrateur système (root) définisse les groupes, si vous souhaitez que les fichiers soient partagés uniquement par un groupe nommé (root peut choisir de déléguer, par exemple en acceptant des groupes de LDAP, mais c'est une autre histoire).
Vous avez besoin que les utilisateurs participants aient un umask de 022. S'ils créent régulièrement des fichiers non lisibles par le monde, ce schéma ne fonctionnera pas. Mais s'ils ont un umask restrictif, c'est probablement parce qu'ils ne veulent pas partager de fichiers de toute façon.
Activation des ACL
Ubuntu n'active pas les ACL par défaut, il y a donc une exigence d'administration unique. Modifiez à l' /etc/fstab
aide de votre éditeur préféré et changez chaque ligne correspondant à un système de fichiers où vous souhaitez partager des fichiers: ajoutez acl
aux options. (Assurez-vous de ne modifier aucune autre ligne et de ne pas utiliser un éditeur qui encapsule de longues lignes.) Voici un exemple de ligne avec l' acl
option ajoutée:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Pour que l'option prenne effet la première fois, utilisez une commande comme celle-ci (pour chaque système de fichiers):
sudo mount -o remount,acl /
Installez les outils ACL à partir du acl
package.
Configuration du répertoire partagé
Pour partager des fichiers avec le groupe mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Si des personnes créent des fichiers et les copient dans le répertoire partagé, les fichiers seront lisibles par tous (à cause de l'umask) et n'importe qui dans le groupe pourra ajouter et supprimer des fichiers (car le groupe est accessible en écriture de groupe). Les gens ne peuvent pas modifier les fichiers les uns des autres, mais c'est une bonne chose ou vous pourriez rencontrer des conflits de modification immédiatement.
Si vous n'avez pas de groupe Unix, vous pouvez ajouter des utilisateurs un par un:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Contrôle de version
Si vous souhaitez que les utilisateurs puissent modifier les fichiers sur place, vous avez également besoin de quelque chose pour éviter les conflits de modification. C'est le contrôle de version.
Vous n'avez besoin de rien de tout cela pour partager un référentiel git. Vous savez qu'il existe des solutions comme la gitose, alors utilisez-les.