Salut à tous
Voila ce que j’ai fini par trouvé…
Je récapitule le cadre, un lieu avec plusieurs profils utilisateurs différents, et des répertoires partagés sur un serveur. Il n’y a que des linux, donc pas de questions c’est nfs-kernel-server, et nfs-common.
Trois groupes d’utilisateurs, et trois répertoires partagés avec différentes politiques de droits
Groupe A : acces lecture écriture aux dossiers I,DP et P
Groupe B : acces lecture écriture aux dossiers I,DP
Groupe B : acces lecture au dossier P
Groupe C : acces lecture écriture au dossiers I
Groupe C : acces lecture au dossier DP
Groupe C : pas d’acces au dossier P
Pour pré-requis, après maintes réflexions et tests, j’ai utilisé le droit d’endossement, umask, et la constitution de groupes d’utilisateurs
Groupe A gid 1001, 2000
Groupe B gid 1001, 2000
Groupe C gid 2000
Dans un premier temps j’ai mis un droit d’endossement au dossier partagé pour que tout ce qui sera créé à l’intérieur appartiennent au groupe de ce dossier, et j’avais affecté des droits au groupe, mais cela ne fonctionne pas, tout ce qui était créé appartenait bien au groupe, mais avec un 755, donc tu as beau appartenir au groupe tu ne pouvais le modifier… Donc la solution est d’ajuster le masque de création (umask).
Le umask normal est 0022, 777 moins 0022 égale bien 755 (aille c’était bien la ou ça bloquait), donc on passe à 0002, et on obtient bien un dossier ou fichier créé avec les droits 775. Donc le membres du groupe a le droit de le modifier.
Ce n’est pas tout de le faire à chaque utilisateur (dans le fichier .bashrc), mais il faut aussi le faire pour le navigateur de fichier, car jusque la j’étais en ligne de commande (arg !). Il faut ajouter une fichier dans le home utilisateur .gnomerc contenant umask 0002. Et op cette fois c bon…
Les dossiers partagés
Ajout du droit d’endossement, avec au préalable avoir fixé le nom du groupe auquel ces dossiers doivent appartenir
# chmod -R 2775 /data/*
#ls -lad /data/
drwxrwsr-x 6 root 1001 4096 mar 18 12:04 I
drwxrwsr-x 6 root 1001 4096 mar 18 12:04 DP
drwxrwsr-x 6 root 2000 4096 mar 18 12:04 P
Pour ce qui est du partage voici, j’ai aussi usé deux plages d’ip pour me simplifier le tout
Groupe A et B en 192.168.1.2*
Groupe C en 192.168.1.1*
/etc/export
/data/I 192.168.1.2*(rw,anongid=1001,all_squash,async,no_subtree_check)
/data/DP 192.168.1.2*(rw,anongid=1001,all_squash,async,no_subtree_check)
/data/DP 192.168.1.1*(ro,async,no_subtree_check)
/data/P 192.168.1.11(rw,anongid=2000,all_squash,async,no_subtree_check)
/data/P 192.168.1.21(rw,anongid=2000,all_squash,async,no_subtree_check)
et le fstab pour le montage suivant cet exemple…
192.168.1.130:/data/I /home/I nfs rw,user,auto 0 0
Dernière chose, notre umask permet donc à tous les utilisateurs de modifier les données personnelles des autres membres du groupe. Donc juste vérifier que le dossier utilisateurs possèdent le droit qui vous convienne. On peut simplement enlever le droit d’execution sur ce repertoire et personne à part son propriétaire ne pourra le franchir.
Après peut être qu’on peut faire, mieux, d’ailleurs la prochaine fois je regarderais plus en détail ACL.