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é.
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 !