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 :
- installé libnss-mysql-bg
ajuster les fichiers de configuration (/etc/libnss-mysql{.cfg,-root.cfg} ) du paquet
modifier nsswitch.conf en indiquant à passwd,group,shadow de regarder dans : files et mysql.