Problème

Je n'arrive pas à exporter correctement les données avec NFSv4. J'ai soit un problème de mapping des utilisateurs, soit les dossiers sont introuvables. Je vais tenter de présenter ma situation.

Aperçu de /etc/fstab

/dev/hda2       /               ext3    errors=remount-ro 0       1
/dev/hda1       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/systeme/home       /home   ext3    defaults,usrquota,grpquota      0       2
/dev/systeme/tmp        /tmp    ext3    defaults        0       2
/dev/systeme/var        /var    ext3    defaults        0       2
/dev/systeme/log        /var/log ext3   defaults        0       2

/home           /nfsv4/home             none    rw,bind 0       0

NOTE : dans /home j'ai des répertoires {refer,foad,auf}

Aperçu de /etc/exports

/home/refer  192.168.18.0/24(rw,async,root_squash,no_subtree_check) 
/nfsv4 192.168.18.0/24(ro,async,root_squash,no_subtree_check,insecure,nohide,fsid=0)
/nfsv4/home             192.168.18.0/24(rw,async,no_subtree_check,nohide,insecure)

Là où ça coince

Avec autofs

Lorsque je tente d'accéder depuis un poste fraichement installé avec auf-client-fixe (1004.20) j'ai ceci

auf0@auf12:/etc$ ls -l /net/nfs
total 0
dr-xr-xr-x 3 root root 0 2011-02-04 12:02 home
drwxr-xr-x 2 root root 0 2011-02-04 12:02 nfsv4
auf0@auf12:/etc$ ls -l /net/nfs/nfsv4/
total 0
drwxr-xr-x 2 root root 0 2011-02-04 12:03 home
auf0@auf12:/etc$ ls -l /net/nfs/nfsv4/home/
ls: impoossible d'ouvrir le répertoire /net/nfs/nfsv4/home/: Aucun fichier ou dossier de ce type

Et dans l'autre repertoire (qui fonctionne sans soucis en nfs3), /net/nfs/home, j'obtiens des UID positionnés à nobody . Exemple quand je fais ls -l /net/nfs/home/refer

drwxr-x--- 34 nobody refer  4096 2011-01-20 07:57 test

Je ne pense pas avoir de problème pour l'authentification. Les requêtes sur les utilisateurs se passent correctement. Exemple:

auf0@auf12:~$ getent passwd testeur
testeur:x:10000:10000:willy ted:/home/refer/test:/bin/false

Montage manuel

Quand je fais mount -t nfs4 nfs:/home /mnt/  ; j'obtiens la même chose qu'avec autofs c'est à dire :

drwxr-x--- 34 nobody refer  4096 2011-01-20 07:57 test

Aperçu de la commande mount

/dev/mapper/auf12-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
/dev/sda1 on /boot type ext3 (rw)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
nfs:/home/refer on /net/nfs/home/refer type nfs4 (rw,nosuid,nodev,noatime,hard,intr,proto=tcp,intr,clientaddr=192.168.18.82,sloppy,addr=192.168.18.2)
nfs:/home on /mnt type nfs4 (rw,clientaddr=192.168.18.82,addr=192.168.18.2)

Quelques logs

Enregistrés au moment où j'effectuais ces manipulations

/var/log/daemon.log

Feb  4 12:08:36 auf12 rwhod[1226]: sending on interface eth0
Feb  4 12:08:37 auf12 init: plymouth-stop pre-start process (1276) terminated with status 1
Feb  4 12:08:38 auf12 ntpdate[1300]: adjust time server 192.168.18.1 offset -0.332767 sec
Feb  4 12:08:39 auf12 automount[1307]: syntax error in nsswitch config near [ syntax error ]
Feb  4 12:08:39 auf12 gdm-session-worker[1318]: WARNING: Unable to load file '/etc/gdm/custom.conf': Aucun fichier ou dossier de ce type
Feb  4 12:08:40 auf12 polkitd[1325]: started daemon version 0.96 using authority implementation `local' version `0.96'
Feb  4 12:08:41 auf12 gdm-simple-greeter[1316]: Gtk-WARNING: /build/buildd/gtk+2.0-2.20.1/gtk/gtkwidget.c:5636: widget not within a GtkWindow
Feb  4 12:08:41 auf12 acpid: client connected from 1415[108:114]
Feb  4 12:08:41 auf12 acpid: 1 client rule loaded
Feb  4 12:21:18 auf12 gdm-session-worker[1318]: GLib-GObject-CRITICAL: g_value_get_boolean: assertion `G_VALUE_HOLDS_BOOLEAN (value)' failed
Feb  4 12:21:33 auf12 gdm-session-worker[1542]: WARNING: Unable to load file '/etc/gdm/custom.conf': Aucun fichier ou dossier de ce type
Feb  4 12:21:38 auf12 gdm-session-worker[1542]: GLib-GObject-CRITICAL: g_value_get_boolean: assertion `G_VALUE_HOLDS_BOOLEAN (value)' failed
Feb  4 12:21:52 auf12 gdm-session-worker[1548]: WARNING: Unable to load file '/etc/gdm/custom.conf': Aucun fichier ou dossier de ce type
Feb  4 12:23:46 auf12 rpc.idmapd[864]: nss_getpwnam: name 'nobody' does not map into domain 'localdomain'

Je pense que je dois essayer de comprendre l'erreur dont parle automount au niveau de nsswitch. Des recherches m'ont amené ici https://bugs.launchpad.net/ubuntu/+source/autofs5/+bug/488696 mais sans succès; peut être que je dois encore bien lire :( .

Pour nss_getpwnam , est-ce qu'il faudrait modifier le fichier /etc/idmapd.conf côté serveur et client ? Normalement non si les autres ont pu faire tout faire marcher sans le modifier...

Résolutions

Problème 1

Le mapping des dossiers/fichiers attribué à nobody et pourtant la mapping des groupes était correct. NFSv4 ne prend pas en compte les UID mais les noms. Or cette machine n'avait pas accès à la base de données des utilisateurs. J'avais créé les groupes localement sur le serveur. J'ai donc :