NFS ignore des permissions

Bonjour,

je fais appel à vous pour un problème qui dépasse ma conception de la réalité.

J’ai un partage NFS sur un serveur “leviathan”, et deux clients “orion@draco” et “laetitb@sakura” qui y accèdent.

[code]root@leviathan:/srv/nfs/common# ls -ltrhd /srv/nfs/common
drwxrwsr-t 5 orion share 4,0K 2010-07-08 23:54 /srv/nfs/common

root@leviathan:/srv/nfs/common# cat /etc/exports
/srv/nfs/common 192.168.0.0/255.255.255.0(rw,sync,root_squash,anonuid=2000,anongid=2000)
[/code]
Notez les permissions : SGID pour que tous les fichiers créés appartiennent au groupe “share”, sticky bit pour que chacun ne puisse supprimer que ses propres fichiers.

Voici les configurations côté clients :

[code]root@draco:~# cat /etc/fstab
leviathan:/srv/nfs/common /mnt/common nfs defaults,auto,user 0 0

root@draco:~# mount
leviathan:/srv/nfs/common on /mnt/common type nfs (rw,user=orion,addr=192.168.0.1)
[/code]

[code]root@sakura:~# cat /etc/fstab
leviathan:/srv/nfs/common /mnt/common nfs defaults,auto,user 0 0

root@sakura:~# mount
leviathan:/srv/nfs/common on /mnt/common type nfs (rw,user=laetitb,addr=192.168.0.1)
[/code]
Vous pouvez constater que les montages sont parfaitement identiques.
Les UID et GID sont aussi identiques :

[code]root@leviathan:/srv/nfs/common# id orion
uid=1000(orion) gid=1000(orion) groupes=1000(orion),1002(share)
root@leviathan:/srv/nfs/common# id laetitb
uid=1001(laetitb) gid=1001(laetitb) groupes=1001(laetitb),1002(share)

root@draco:~# id orion
uid=1000(orion) gid=1000(orion) groupes=1000(orion),1002(share)
root@draco:~# id laetitb
uid=1001(laetitb) gid=1001(laetitb) groupes=1001(laetitb),1002(share)

root@sakura:~# id orion
uid=1000(orion) gid=1000(orion) groupes=1000(orion),1002(share)
root@sakura:~# id laetitb
uid=1001(laetitb) gid=1001(laetitb) groupes=1001(laetitb),1002(share)
[/code]

Lorsque je crée un fichier avec orion@draco, aucun problème.

orion@draco:~$ touch /mnt/common/foo orion@draco:~$ ls -ltrh /mnt/common/foo -rw-r--r-- 1 orion share 0 jui 9 00:32 /mnt/common/foo

En revanche, lorsque je tente de le faire avec “laetitb@sakura”, j’ai un message d’erreur :

laetitb@sakura:~$ touch /mnt/common/bar touch: ne peut faire un touch sur `/mnt/common/bar': Permission non accordée

En changeant le propriétaire du répertoire NFS, je parviens à créer ce fichier correctement :

root@leviathan:/srv/nfs/common# chown laetitb /srv/nfs/common root@leviathan:/srv/nfs/common# ls -ltrhd /srv/nfs/common drwxrwsr-t 5 laetitb share 4,0K 2010-07-09 00:36 /srv/nfs/common laetitb@sakura:~$ touch /mnt/common/bar root@leviathan:/srv/nfs/common# ls -ltrh /srv/nfs/common/bar -rw-r--r-- 1 laetitb share 0 2010-07-09 00:36 /srv/nfs/common/bar

De même si j’ajoute les droits d’écriture à tout le monde :

root@leviathan:/srv/nfs/common# chmod o+w /srv/nfs/common root@leviathan:/srv/nfs/common# ls -ltrhd /srv/nfs/common drwxrwsrwt 5 orion share 4,0K 2010-07-09 00:36 /srv/nfs/common laetitb@sakura:~$ touch /mnt/common/baz root@leviathan:/srv/nfs/common# ls -ltrhd /srv/nfs/common/baz -rw-r--r-- 1 laetitb share 0 2010-07-09 00:42 /srv/nfs/common/baz

Tout se passe donc comme s’il ignorait l’appartenance de l’utilisateur “laetitb” au groupe “share”… Pourtant, il est dedans, sur les trois machines, avec les mêmes UID/GID !

Alors, où est-ce que ça cloche d’après vous ?

Bonjour,

Les deux machines clientes fonctionnement sous la même version d’OS ?

J’ai déjà vu le cas, pas avec NFS, de devoir positionner les droits sur un répertoire AVANT de faire le montage.

Hormis l’architecture, oui, il s’agit pour toutes les deux de Debian Lenny.
Les versions de NFS client sont les mêmes.
Aussi, lorsque je change le propriétaire du répertoire partagé par “laetitb” (initialement “orion”), la situation est inversée pour les deux utilisateurs (il y a donc une logique dans tout ça…) :12