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.
Faites simplement ceci:
Maintenant, tout le monde dans le
teamA
groupe peut tout faire à l'intérieur/src/teamA
La magie est le bit sgid (set group id) sur le répertoire.
la source
Si vous souhaitez que les utilisateurs puissent accéder aux fichiers dans un dossier partagé (par exemple, différentes personnes se connectent à la même machine à différents moments et ont besoin d'accéder aux mêmes fichiers), vous pouvez utiliser
bindfs
pour créer un répertoire partagé.Il permet à plusieurs utilisateurs locaux de lire et d'écrire (créer, supprimer, renommer, modifier ...) tous les fichiers (y compris ceux nouvellement créés) à partir d'un répertoire partagé et de ses sous-répertoires. Chaque utilisateur verra les fichiers et dossiers (y compris ceux nouvellement créés) comme leur appartenant.
En bref, vous exécutez
pour rendre / home / shared accessible à user1, user2 et user3.
Instructions
Voir Bindfs-SharedDirectoryLocalUsers (documentation Ubuntu) pour des instructions complètes, y compris sa configuration permanente (chaque fois que vous allumez votre ordinateur). Je l'utilise sur ma propre machine pour un certain nombre de répertoires, chacun avec des groupes de partage différents (un dossier est disponible pour tous les comptes, un autre uniquement pour les comptes professionnels, un autre uniquement pour les comptes personnels).
De la poste:
Listes de contrôle d'accès (ACL)
La documentation note:
Voir la réponse de Gilles pour plus de détails.
la source
Vous pouvez combiner la solution de shellholic avec un travail cron qui met à jour le gid pour tous les fichiers de ce dossier toutes les 15 secondes ou quelque chose de similaire.
la source