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 ?