Bonjour,
merci d'avance à ceux qui liront ce post. Il s'agit d'un phénomène étrange, long à expliquer et pas de manière aisée.
Je rencontre actuellement un problème de mapping entre des ACL Posix et des ACL NFSv4 over NFSv3.
configuration:
*Serveur RH 6,5 *
NFSv3+4.
acl-2.2.49-6
nfs4-acl-tools-0.3.3-6
fichier exports : /nfsshare *(rw,sync,root_squash)
arborescence complète :
/nfsshare/rep_usergrp1
/nfsshare/rep_usergrp2
ACL Posix misent en place sur /nfsshare
group:groupuser1:r-x
group:groupuser2:r-x
ACL Posix misent en place sur /nfsshare/rep_usergrp1
group:groupuser1:rwx
group:groupuser2:r-x
default:group:groupuser1:rwx
default:group:groupuser2:r-x
ACL Posix misent en place sur /nfsshare/rep_usergrp2
group:groupuser1:r-x
group:groupuser2:rwx
default:group:groupuser1:r-x
default:group:groupuser2:rwx
id user1 -> groupuser1
id user10 -> groupuser1
id user2 -> groupuser2
*Client RH 6,5 *
NFSv3+4.
acl-2.2.49-6
nfs4-acl-tools-0.3.3-6
id user1 -> groupuser1
id user10 -> groupuser1
id user2 -> groupuser2
cas de test 1 :
Depuis le client, avec l'utilisateur "user1" j'effectue une montage NFSv3 dans /mnt. J'obtiens donc /mnt/rep_usergrp1 et /mnt/rep_usergrp2. La commande getfacl sur /mnt/rep_usergrp1 et /mnt/rep_usergrp2 permet de constater que les ACL sont bien présentent et correctes.
/mnt
group:groupuser1:r-x
group:groupuser2:r-x
/mnt/rep_usergrp1
group:groupuser1:rwx
group:groupuser2:r-x
default:group:groupuser1:rwx
default:group:groupuser2:r-x
/mnt/rep_usergrp2
group:groupuser1:r-x
group:groupuser2:rwx
default:group:groupuser1:r-x
default:group:groupuser2:rwx
Dans le répertoire /mnt/rep_usergrp1 je créé un fichier texte.txt et un répertoire rep1. Les droits sur ces deux éléments ont bien été hérités du répertoire parent.
/mnt/rep_usergrp1/texte1.txt
group:groupuser1:rwx#effective:rw-
group:groupuser2:r-x#effective:r--
/mnt/rep_usergrp1/rep1
group:groupuser1:rwx
group:groupuser2:r-x
default:group:groupuser1:rwx
default:group:groupuser2:r-x
Je démonte la ressource NFSv3 pour la remonter en NFSv3 mais avec l'utilisateur "user10". Vu que user10 et user1 font partis du même groupe, pas de problème pour modifier ce fichier texte, créer un répertoire dans /mnt/rep_usergrp1/rep1 etc…
Je démonte la ressource NFSv3 à nouveau pour la remonter en NFSv4 avec "user10". Vu que c'est un point de montage NFSv4 la commande nfs4_getfacl me permet de lire les ACL qui sont de la forment :
/mnt
A:g:groupuser1@domainnfs:rxtcy
A:g:groupuser2@domainnfs:rxtcy
/mnt/rep_usergrp1/rep1
A:g:groupuser1@domainnfs:rwaDxtcy
A:g:groupuser1@domainnfs:rxtcy
A:fdig:g:groupuser1@domainnfs:rwaDxtcy
A:fdig:g:groupuser2@domainnfs:rxtcy
Les droits sont bien mappé dans la norme ACL NFSv4. Je n'ai donc pas de problème pour modifier le fichier texte, créer un répertoire dans /mnt/rep_usergrp1/rep1 etc… avec "user10"
cas de test 2 :
Depuis le client, avec l'utilisateur "user1" j'effectue une montage NFSv4 dans /mnt. J'obtiens donc /mnt/rep_usergrp1 et /mnt/rep_usergrp2. La commande nfs4_getfacl sur /mnt/rep_usergrp1 et /mnt/rep_usergrp2 permet de constater que les ACL sont bien présentent et correctes même transposées dans la norme ACL NFsv4.
Dans le répertoire /mnt/rep_usergrp1 je créé un fichier texte.txt et un répertoire rep1. A la suite de ces deux actions, je lance la commande nfs4_getfacl.
nfs4_getfacl /mnt
A:g:groupuser1@domainnfs:rxtcy
A:g:groupuser2@domainnfs:rxtcy
-->OK Mapping de droit OK
nfs4_getfacl /mnt/rep_usergrp1/texte1.txt
/mnt/rep_usergrp1/texte1.txt
A:g:groupuser1@domainnfs:rtcy
A:g:groupuser2@domainnfs:rtcy
-->KO Mapping de droit KO. Les personnes du groupes groupuser1 n'ont qu'un droit de lecture sur le fichier. Il devrait être rw (rwaDxtcy en mapping ACL NFSv4). L'héritage du répertoire parent ne s'effectue pas correctement.
nfs4_getfacl /mnt/rep_usergrp1/rep1
A:g:groupuser1@domainnfs:rxtcy
A:g:groupuser1@domainnfs:rxtcy
A:fdig:g:groupuser1@domainnfs:rwaDxtcy
A:fdig:g:groupuser2@domainnfs:rxtcy
-->KO Mapping de droit KO. Les personnes du groupe groupuser1 n'ont pas de droit de créer quoi que ce soit dans le répertoire rep1 (rxtcy). Ca devrait être rwaDxtcy.
Effectivement par la suite lorsque que j'effectue un montage NFSv3 ou 4 avec l'utilisateur "user10" ce dernier ne possède ni le droit de modifier le fichier texte et pas non plus le droit de créer un répertoire dans /mnt/rep_usergrp1/rep1
conclusion
Le mapping ACL Posix over NFSv4 n'est pas consistant.
Quelqu'un a t-il déjà rencontré cet étonnant phénomène ?
S'agit-il d'un bug ou d'une limite de mapping (best effort)?
Comment faites-vous pour utiliser des ACL Posix (sur redhat)en couplant des montage NFSv3 et 4 ?
Faut-il oublier le NFSv4 en utilisant des ACL Posix ?
Merci
# Faut oublier
Posté par lolop (site web personnel) . Évalué à 3.
Perso, je dirais oui. Les mapping ACLs NFSv4/Posix sont foireux, il faudrait un FS qui supporte les ACL NFSv4 et rester cohérent en utilisant celles-ci sur le FS et sur le partage réseau, mais y'a pas.
http://wiki.linux-nfs.org/wiki/index.php/ACLs
Et ça e**** beaucoup de monde (cf recherches google sur ce thème).
Ceci dit, si quelqu'un arrive avec une solution qui marche… je suis preneur (mais pas encore vu).
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Faut oublier
Posté par julienB56 . Évalué à 2.
Merci de ton avis.
Effectivement je constate que le mapping n'est pas consistant. Actuellement, effectivement seul le système de fichier XFS supporte les ACL NFSv4. Un patch expérimental est en cours pour le support par ext4 mais ça reste expérimental. En même temps le jour ou cela sera opérationnel, le problème se posera toujours. l'utilisation d'ACL NFSv4 obligera à forcer les montages en NFSv4.
# Faut oublier
Posté par julienB56 . Évalué à 1.
Lolop,
Comment fais-tu (si tu as ce cas de figure) pour appliquer une matrice de droit digne de ce nom sur une arbo Linux (ext4) ?
++
[^] # Re: Faut oublier
Posté par lolop (site web personnel) . Évalué à 2.
J'ai fait avec ACLs posix, sur du ext4 et sur du xfs, et dans certains cas ça casse et il faut re-appliquer les ACLs (je suis en environnement Linux + MacOS + Windows, avec des accès aux données via NFS et via CIFS).
J'ai testé récemment avec du droit unix de base + sticky bit sur le répertoire (pour un cas simple de partage de fichier pour groupe de travail), là encore dans certains cas ça casse (tout ce qui est transfert de fichier avec préservation des droits).
Je ne dis pas qu'il ne faut pas utiliser les ACLs, mais que le passage via NFS4 c'est pas ça (et à ce que j'ai pu en lire, ça risque de ne pas être ça avant longtemps).
Ta conclusion "Le mapping ACL Posix over NFSv4 n'est pas consistant." est malheureusement vraie.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Faut oublier
Posté par julienB56 . Évalué à 1.
Actuellement, il y a deux solutions.
-Utilisation ACL posix + NFSv3 (on oublie le NFSv4).
-Utilisation NFSv3 + v4 (on oublie les ACL).
Je suis en environnement Linux (Redhat 4,5 et 6) + Windows. Ça me surprend tes casses de droits. Si je reste uniquement en CIFS + NFSv3 + ACL Posix, je ne rencontre aucun soucis.
[^] # Re: Faut oublier
Posté par julienB56 . Évalué à 1.
Lolop,
Ok donc actuellement tu n'utilises pas non plus de NFSv4 puisque tu utilises des ACL Posix ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.