Problème de droits d'accès avec NFS

Bonjour,

j’ai un soucis d’accès à un répertoire d’une partition montée avec NFS pour un utilisateur alors qu’un autre utilisateur avec les mêmes droits accède sans problèmes à ce répertoire.

Voici la partition montée par NFS :

ced@artic:~$ mount [...] nfsd on /proc/fs/nfsd type nfsd (rw,relatime) SHEEVA:/nuts/ on /nuts type nfs (rw,relatime,sync,vers=3,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.124,mountvers=3,mountport=4002,mountproto=tcp,local_lock=none,addr=192.168.0.124)

Voilà ce qui se passe pour l’utilisateur ced pour accéder au répertoire ftp :

ced@artic:~$ ls -la /nuts/ftp ls: impossible d'ouvrir le répertoire /nuts/ftp: Permission non accordée

Alors que l’utilisateur marie n’a aucun problèmes :

marie@artic:~$ ls -la /nuts/ftp total 52 drwxrws--- 4 ftp ftp 4096 nov. 11 2010 . drwxr-xr-x 9 root root 4096 juil. 30 11:18 .. -rw-rwS--- 1 ftp ftp 4286 juin 3 2007 favicon.ico drwxrws--- 7 ftp ftp 4096 nov. 11 2010 Groupes drwxrws--- 7 ftp ftp 4096 août 24 09:18 Public -rwxrwx--- 1 ftp ftp 1843 août 17 2007 README

Voici les paramètres de ced et marie sur le serveur NFS :

SHEEVA:~# cat /etc/passwd | egrep \(ced\|marie\)
ced:x:1000:1000:ced,,,:/home/ced:/bin/bash
marie:x:1001:1001:,,,:/home/marie:/bin/bash
SHEEVA:~# cat /etc/group | grep ftp
ftp:x:600:ced,marie

et voici ceux sur le poste client :

root@artic:~# cat /etc/passwd | egrep \(ced\|marie\)
ced:x:1000:1000:ced,,,:/home/ced:/bin/bash
marie:x:1001:1001:,,,:/home/marie:/bin/bash
root@artic:~# cat /etc/group | grep ftp
ftp:x:600:ced,marie

Ils sont bien strictement identiques et le répertoire ftp appartient à l’utilisateur ftp et au groupe ftp.
ced et marie appartenant tous les deux au groupe ftp, ils devraient avoir les mêmes accès au répertoire ftp.

C’est à n’y rien comprendre.
Si quelqu’un peut m’aider à résoudre ce problème s’il vous plaît ?

Merci.

SOLUTION :
J’ai enfin fini par résoudre le problème !
C’est un problème de limitation du nombre de groupes transmis du client vers le server par le protocole auth_sys ! Ce dernier est limité à 16 groupes !!!

Voir le post en anglais : http://www.xkyle.com/solving-the-nfs-16-group-limit-problem/.

La solution est de rajouter sur le serveur le paramètre « –manage-gids » dans le champs RPCMOUNTDOPTS du fichier /etc/default/nfs-kernel-server :
RPCMOUNTDOPTS="--manage-gids"

Comme expliqué dans le lien, cette option demande au serveur d’ignorer la liste des groupes envoyée par le client et de déterminer à partir du fichier /etc/group sur le serveur à quels groupes appartient l’utilisateur.

Si l’utilisateur appartient bien au groupe du répertoire partagé, l’accès est autorisé. :wink:

Attention toutefois, le serveur stocke les droits d’accès dans un cache sur : /proc/net/rpc/auth.unix.gid/content .
Donc pour vider le cache, il faut procéder comme suit sur le serveur :
root@archive:~# date +%s > /proc/net/rpc/auth.unix.gid/flush

Maintenant le cache est vidé et les nouvelles autorisations vont pouvoir être appliquées ! :sunglasses:

C’est effectivement étonnant. Les 2 partitions nfs sont elles montées de façon identiques sur les 2 postes client ?

Oui, c’est un seul et unique poste client avec les deux comptes ced et marie.
C’est étonnant, hein ?

Toujours pas résolu mon problème…

Pour information, quand je me connecte sur le serveur en SSH, j’accède au répertoire sans soucis :

ced@artic:~$ ssh ced@sheeva
Password: 
Linux SHEEVA 2.6.32-trunk-kirkwood #1 Mon Jan 11 10:57:12 UTC 2010 armv5tel

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
ced@SHEEVA:~$ ls -la /nuts/ftp
total 52
drwxrws--- 4 ftp  ftp   4096 11 nov.   2010 .
drwxr-xr-x 9 root root  4096 30 juil. 11:18 ..
-rw-rwS--- 1 ftp  ftp   4286  3 juin   2007 favicon.ico
drwxrws--- 7 ftp  ftp   4096 11 nov.   2010 Groupes
drwxrws--- 7 ftp  ftp   4096 24 août  09:18 Public
-rwxrwx--- 1 ftp  ftp   1843 17 août   2007 README

C’est donc bien un problème avec NFS.

Bon, c’est à n’y plus rien comprendre…
En me connectant avec mon EeePC (nemo), ça fonctionne :

ced@nemo:~$ ls -la /nuts/ftp
total 52
drwxrws--- 4  600 ftp  4096 11 nov.   2010 .
drwxr-xr-x 9 root root 4096 30 juil. 11:18 ..
-rw-rw---- 1  600 ftp  4286  3 juin   2007 favicon.ico
drwxrws--- 7  600 ftp  4096 11 nov.   2010 Groupes
drwxrws--- 7  600 ftp  4096 24 août  09:18 Public
-rwxrwx--- 1  600 ftp  1843 17 août   2007 README

Le montage est fait de la manière suivante :

ced@nemo:~$ mount
[...]
SHEEVA:/nuts on /nuts type nfs (rw,sync,mountport=4002,tcp,addr=192.168.0.124)

Et la configuration des droits d’accès est identique à celle du poste fixe (artic) :

ced@nemo:~$ cat /etc/passwd | grep ced
ced:x:1000:1000:ced,,,:/home/ced:/bin/bash
ced@nemo:~$ cat /etc/group | grep ftp
ftp:x:600:ced

C’est donc uniquement un problème entre mon poste fixe (artic) et mon serveur (sheeva).

L’un a l’id 1000 (ced) l’autre l’id 1001 (marie), ça me paraît une différence notable.

[quote]
Voilà ce qui se passe pour l’utilisateur ced pour accéder au répertoire ftp :

ced@artic:~$ ls -la /nuts/ftp ls: impossible d'ouvrir le répertoire /nuts/ftp: Permission non accordée [/quote]

Voir un cran au dessus, les droits sur le dossier contenant ftp, voire deux crans au dessus, les droits sur le dossier /nuts

$ ls -la /nuts
$ ls -la /

Oui, mais c’est normal pour deux utilisateurs différents.

/nuts et / appartiennent tous deux à root:root avec les mêmes droits drwxr-xr-x.

Deux utilisateurs différents, deux propriétaires différents…
/home/ced et /home/marie n’ont pas le même propriétaire.

Les permissions de ce qui est contenu en /nuts/ftp/* dépendent du dossier parent /nuts/ftp.
Pour voir les permissions de /nuts/ftp, on regarde en /nuts.

$ ls -a /nuts

/nuts/ftp semble appartenir à root:root.

Essaye
$ chown ftp:ftp /nuts/ftp

[quote=“etxeberrizahar”]
/nuts/ftp semble appartenir à root:root.

Essaye
$ chown ftp:ftp /nuts/ftp[/quote]
Non, /nuts/ftp appartient déjà bien à ftp:ftp.
Voir pour cela mon premier post :

marie@artic:~$ ls -la /nuts/ftp
total 52                                                                                         
drwxrws--- 4 ftp  ftp   4096 nov.  11  2010 .                                                   
drwxr-xr-x 9 root root  4096 juil. 30 11:18 ..  
[...]              

Pour rappel, le point (.), c’est le répertoire courant, donc ici /nuts/ftp qui appartient bien à ftp:ftp.
Et le double point (…), c’est le répertoire parent, donc ici /nuts qui appartient lui à root:root.

Pour le moment, tout est normal.

Je marque le message comme résolu !

La solution est donnée à la fin de mon premier post. :wink: