NFS : access denied by server while mounting

Bonsoir,

Je tente d’administrer une salle info sans accès à internet. Je souhaite partager deux dossiers via nfs mais cela ne fonctionne (aléatoirement) que sur un seul poste client. Sur les autres clients, j’ai le message "Access denied by server while mounting … " lorsque que je clique sur le point de montage dans Dolphin.

  • Toutes les machines tournent sous Debian 7 - 32 bits.
  • J’ai installé les paquets nfs-kernel-server sur le serveur et nfs-common sur les clients.
  • Je ne précise aucun paramétrage particulier dans les fichiers host.deny et host.allow du serveur
  • Les droits des dossiers partagés sont gérés via le groupe d’utilisateurs “autres” et possèdent les droits r_x pour le mode ro, rwx pour le mode rw.
  • Je n’ai pas cherché à faire coïncider les uid utilisateurs entre le serveur et les clients puisque le groupe “autres utilisateurs” me suffit.
  • Pas de problème venant du switch, les commandes ping répondent
  • Serveur : 192.168.0.1
  • Clients : 192.168.0.2 - 192.168.0.14

Dossier serveur à partager :

  • drwx rwx r_x : prof profs /home/Documentations (lecture seule)
  • drwx rwx rwx : prof profs /home/RetourProfesseur (lecture, écriture)

Fichier serveur /etc/exports :
/home/Documentations 192.168.0.(ro,sync,root_squash,no_subtree_check)
/home/RetourProfesseur 192.168.0.
(rw,sync,root_squash,no_subtree_check)
L’option no_root_squash ne résout pas le problème.

La commande showmount -e (sur serveur et depuis un poste client) montre bien que l’export est effectif. J’ai fini par lire que nfs4 ne tenait pas compte de l’adresse ip : j’ai tenté de rétrograder le client récalcitrant en version 3 mais la modif n’est pas prise en compte, même après redémarrage des services.

Fichier fstab sur client fonctionnel
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sdb1 /media/usb0 auto rw,user,noauto 0 0
192.168.0.1:/home/Documentations /home/Documentations nfs ro,user,auto,noatime,intr 0 0
192.168.0.1:/home/RetourProfesseur /home/RetourProfesseur nfs rw,user,auto,noatime,intr 0 0

Fichier fstab sur client NON fonctionnel
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sdb1 /media/usb0 auto rw,user,noauto 0 0
192.168.0.1:/home/Documentations /home/Documentations nfs nfsvers=3,user,auto,noatime,intr,ro 0 0
192.168.0.1:/home/RetourProfesseur /home/RetourProfesseur nfs nfsvers=3,defaults,user,auto,noatime,intr,rw 0 0

Commande nfsstat sur client fonctionnel
Server rpc stats:
calls badcalls badclnt badauth xdrcall
0 0 0 0 0

Client rpc stats:
calls retrans authrefrsh
759 0 759

Client nfs v3:
null getattr setattr lookup access readlink
0 0% 153 20% 0 0% 7 0% 15 1% 0 0%
read write create mkdir symlink mknod
0 0% 0 0% 0 0% 0 0% 0 0% 0 0%
remove rmdir rename link readdir readdirplus
0 0% 0 0% 0 0% 0 0% 0 0% 3 0%
fsstat fsinfo pathconf commit
569 75% 4 0% 2 0% 0 0%

Commande nfsstat sur client NON fonctionnel
Server rpc stats:
calls badcalls badclnt badauth xdrcall
0 0 0 0 0

Client rpc stats:
calls retrans authrefrsh
0 0 0

Commande rpcinfo sur client fonctionnel
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper

Commande rpcinfo sur client NON fonctionnel
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper

J’ai relu toutes les docs qui m’ont permis de réussir le partage avec une machine, et cela fait maintenant trois semaines que je sèche … Mon erreur est-elle évidente avec ces infos ? Merci pour votre aide.

Cela commence à vraiment dater. C’est vrai que mettre à jour des systèmes non connectés à Internet, cela ne doit pas être simple.
La mention 32 bits n’est pas une erreur de frappe ?

Nous n’avons pas de précisions sur la configuration réseau des différents systèmes : comment les IPs sont attribuées, quid de la résolution de noms ?
Pourrait-on avoir les retours des commandes

hostname  --fqdn
netstat -rn
cat /etc/resolv.conf
getent hosts 192.168.0.1
cat /etc/idmapd.conf 
fgrep 192.168.0.1 /etc/hosts
id

commandes à lancer sur le serveur et sur deux clients

Autrement dit : comment sont gérés les fichiers /etc/hosts , /etc/resolv.conf, … ?
Avec nfs4, il y a un minimum de vérifications sur les noms de machines, mais surtout sur le domaine ( la directive Domain = dans idmapd.conf )

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean

« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac

Bonsoir et merci de vous pencher sur mon cas.

Le serveur a une adresse fixe (192.168.0.1) et distribue les ip par dhcp entre 192.168.0.2 et 192.168.0.14. Le client qui fonctionnait hier n’a pas fonctionné aujourd’hui !

hostname :

  • Serveur : P01
  • Client : P05

netstat -rn :

  • Serveur :
    Table de routage IP du noyau
    Destination Passerelle Genmask Indic MSS Fenêtre irtt Iface
    169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
    192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

  • Client :
    Table de routage IP du noyau
    Destination Passerelle Genmask Indic MSS Fenêtre irtt Iface
    169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
    192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

resolv.conf : vide sur serveur et clients

getent hosts 192.168.0.1

  • Serveur : 192.168.0.1 P01.local
  • Client : 192.168.0.4 P02.local

idmapd.conf

  • Serveur
    [General]

Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
"#" set your own domain here, if id differs from FQDN minus hostname
"#" Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

  • Client :
    [General]

Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
"#" set your own domain here, if id differs from FQDN minus hostname
"#" Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

fgrep 192.168.0.1 /etc/hosts : aucune réponse, ni serveur, ni client.

Fichier hosts :

  • Serveur :
    127.0.0.1 localhost
    127.0.1.1 P01

‘#’ The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

  • Client :
    127.0.0.1 localhost
    127.0.1.1 P05

'# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

id :

  • Serveur : uid=1001(prof) gid=1001(profs) groupes=1001(profs)
  • Client : uid=1002(eleve) gid=1002(eleves) groupes=1002(eleves)

J’ai revérifié minutieusement les droits des dossiers, tout me semble correct.

si tu fais un telnet sur le port 2049 et le 111 depuis les pc qui bloquent ca connecte ?

ajoute ça pour voir sur le serveur dans /etc/hosts.allow

portmap:ALL

un mount manuel ca donne quoi ?

 mount -t nfs -o nfsvers=3 192.168.0.1:/home/nfs /home/nfs_local
 mount -t nfs 192.168.0.1:/home/nfs /home/nfs_local
 mount  192.168.0.1:/home/nfs /home/nfs_local

Selinux ?

Iptables ?

tu devrais te retrouver avec plus de port que ca, par exemple chez moi

rpcinfo -p 192.168.1.100

program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 41083 mountd
100005 1 tcp 54853 mountd
100005 2 udp 52912 mountd
100005 2 tcp 51321 mountd
100005 3 udp 34052 mountd
100005 3 tcp 50591 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049

il y a le portmapper, le mount en aléatoire et le nfs

fait un tail sur le syslog et auth.log sur le serveur et essaye de monter le NFS pendent ce temps la.

tail -f /var/log/syslog -f /var/log/auth.log

Vous b’avez pas lancé la commande exacte sur le client. Sur ma machine

fp2@debpacha:/tmp$ getent  hosts 192.168.0.1
fp2@debpacha:/tmp$ 

Autrement dit : le système, debpacha dans mon cas ou peut-être P0( dans votre cas ne connaît pas le nom qui se cache éventuellement derrière l’IP donnée.

Non !
J’avais demandé explicitement avec l’option --fqdn. Si vous corrélez cela avec les commentaires que vous avez recopiés dans le fichier idmapd.conf vous saisissez aisément l’importance d’avoir le domaine.

Pipefs-Directory = /var/lib/nfs/rpc_pipefs
"#" set your own domain here, if id differs from FQDN minus hostname
"#" Domain = localdomain

Donc, au lieu de vous fatiguer à faire des copier/coller suivi d’une édition pour remplacer un caractère # en début de ligne par "#" je vous suggère de faire un copier/coller des lignes entières et de formatter le tout
avec la bonne balise </>.
Avec les lignes entières on devrait voir le nom du système dans l’invite de commande.

Donc l’adresse IP de P0( est soit obtenue par DHCP (ce dont je doute fort, il n’y a même pas de passerelle s dans le réseau local), soit configurée directement dans le fichier /etc/network/interfaces(je suppose qu’avec une Debian 7 installée on ne sait comment il n’y a pas de gestionnaire réseau du genre NetworkManager ou wickd).

Que donne

cat /etc/network/interfaces

Ceci vous permettra de collecter et vérifier les IPs des différents systèmes.
Une stratégie possible consiste à regrouper dans un fichier /etc/hosts l’ensemble des machines de l’école connectées sur le commutateur, et de copier ce fichier sur chacune des machines.

On pourrait avoir quelque chose du genre

127.0.0.1       localhost

# machine du professeur
192.168.0.1  P01.ecole P01  leprof

#  poste élève  P02   pourquoi .4 pour P02 ?
182.168.0.4  P02.ecole P02

#  autres postes

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Et vous modifiez aussi /etc/idmapd.conf pour y mettre

Domain = ecole

Depuis n’importe quelle machine la commande showmount -e P01 devrait alors fonctionner.

Rien ne vaut une commande non éditée

ls -ld  /home/Documentations /home/RetourProfesseur 

Pour vérifier votre fichier /etc.hosts lancez les commandes

getent hosts   P01
getent hosts P02
getent hosts 192.168.0.1

Pour le montage à partir du fichier fstab vous avez mis l’option noauto et vous avez eu raison. Cependant, cela vous oblige à faire le montage via une commande du genre

sudo mount  /home/Documentations 

Pour l’instant, pour mettre au point la configuration, c’est bien suffisant.
Lorsque cela fonctionnera, je vous suggérerai de passer à un montage à la demande avec le paquet autofs . Ce sera donc pour plus tard.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean
Ingénieur civil du Génie Maritime.
« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

Bonjour,

Merci à tous deux pour ces remarques exhaustives. Je ne pourrai faire la suite des tests que lundi.

Je n’ai pas donné le retour attendu pour la commande “hostname --fqdn” car elle n’a rien donné : je me suis donc rabattu sur hostname sans option.

Excellent week-end à tous !

elle devrait te retouner le hostname, minimum on verra demain

Bonsoir,

Le blocage persiste malgré les quelques modifications conseillées.

Vérification des droits des dossiers partagés :

  • Serveur (/home/Documentations) :
    drwxr-xr-x 16 root root 4096 mai 25 2016 home drwxrwxr-x 3 prof profs 4096 sept. 21 10:50 Documentations drwxrwxrwx 2 prof profs 4096 sept. 25 17:46 RetourProfesseur

  • Client (/home/Documentations) :
    drwxr-xr-x 48 root root 4096 mai 25 2016 home drwxrwxr-x 2 prof profs 4096 mai 18 2016 Documentations
    drwxrwxr-x 2 prof profs 4096 mai 18 2016 /home/Documentations/
    drwxrwxrwx 2 prof profs 4096 mai 18 2016 /home/RetourProfesseur/

hostname --fqdn sur serveur :
P01

rpc info -p 192.168.01.1 sur client :
program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 44925 status 100024 1 tcp 56878 status 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100227 2 tcp 2049 100227 3 tcp 2049 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100227 2 udp 2049 100227 3 udp 2049 100021 1 udp 59608 nlockmgr 100021 3 udp 59608 nlockmgr 100021 4 udp 59608 nlockmgr 100021 1 tcp 48464 nlockmgr 100021 3 tcp 48464 nlockmgr 100021 4 tcp 48464 nlockmgr 100005 1 udp 48675 mountd 100005 1 tcp 46027 mountd 100005 2 udp 56129 mountd 100005 2 tcp 59250 mountd 100005 3 udp 42282 mountd 100005 3 tcp 56863 mountd

ping depuis le client :
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=0.251 ms 64 bytes from 192.168.0.1: icmp_req=2 ttl=64 time=0.239 ms 64 bytes from 192.168.0.1: icmp_req=3 ttl=64 time=0.240 ms 64 bytes from 192.168.0.1: icmp_req=4 ttl=64 time=0.236 ms

--- 192.168.0.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3000ms rtt min/avg/max/mdev = 0.236/0.241/0.251/0.016 ms

telnet 2049 puis 111 sur client :
Trying 0.0.8.1... telnet: Unable to connect to remove host: Network is unreachable

getent hosts sur client :
eleve@P14:~$ getent hosts 192.168.0.1 192.168.0.1 P01.local
eleve@P14:~$ getent hosts P01
Je ne retrouve pas la trace exacte, mais il me semble qu’il n’y avait pas de réponse (la commande showmount ci-après va dans le même sens).

showmount :
showmount -e 192.168.0.1 Export list for 192.168.0.1: /home/RetourProfesseur 192.168.0.* /home/Documentations 192.168.0.*

showmount -e P01 clnt_create:RPC : Unknown host

ifconfig client :
eth1 Link encap:Ethernet HWaddr 00:1c:25:d0:62:06 inet adr:192.168.0.7 Bcast:192.168.0.255 Masque:255.255.255.0 adr inet6: fe80::21c:25ff:fed0:6206/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:133 errors:0 dropped:0 overruns:0 frame:0 TX packets:211 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:10764 (10.5 KiB) TX bytes:22271 (21.7 KiB) Interruption:42 Adresse de base:0xc000

lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:678 errors:0 dropped:0 overruns:0 frame:0 TX packets:678 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:50516 (49.3 KiB) TX bytes:50516 (49.3 KiB)

Petit truc bizarre : je désigne l’interface eth0 dans interfaces ci-après mais c’est eth1 qui est configuré …

/etc/network/interfaces (client) :
# The loopback network interface auto lo iface lo inet loopback iface eth0 inet dhcp

fichiers logs puis tentatives de montage manuel :
tail -f /var/log/syslog -f /var/log/auth.log
==> /var/log/syslog <== Apr 17 04:22:59 P14 acpid: client 2881[0:0] has disconnected Apr 17 04:23:20 P14 acpid: client connected from 2881[0:0] Apr 17 04:23:20 P14 acpid: 1 client rule loaded Apr 17 04:23:22 P14 acpid: client 2881[0:0] has disconnected Apr 17 04:25:41 P14 dhclient: DHCPREQUEST on eth1 to 192.168.0.1 port 67 Apr 17 04:25:41 P14 dhclient: DHCPACK from 192.168.0.1 Apr 17 04:25:41 P14 dhclient: bound to 192.168.0.7 -- renewal in 248 seconds. Apr 17 04:25:52 P14 dbus[2334]: [system] Activating service name='org.kde.powerdevil.backlighthelper' (using servicehelper) Apr 17 04:25:52 P14 org.kde.powerdevil.backlighthelper: QDBusConnection: system D-Bus connection created before QCoreApplication. Application may misbehave. Apr 17 04:25:52 P14 dbus[2334]: [system] Successfully activated service 'org.kde.powerdevil.backlighthelper'

==> /var/log/auth.log <== Apr 17 04:16:54 P14 login[3634]: ROOT LOGIN on '/dev/tty1' Apr 17 04:17:01 P14 CRON[3678]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 17 04:17:01 P14 CRON[3678]: pam_unix(cron:session): session closed for user root Apr 17 04:17:01 P14 polkitd(authority=local): Registered Authentication Agent for unix-session:/org/freedesktop/ConsoleKit/Session1 (system bus name :1.35 [/usr/lib/kde4/libexec/polkit-kde-authentication-agent-1], object path /org/kde/PolicyKit1/AuthenticationAgent, locale fr_FR.UTF-8) Apr 17 04:17:31 P14 sshd[3097]: Received signal 15; terminating. Apr 17 04:17:31 P14 sshd[3919]: Server listening on 0.0.0.0 port 22. Apr 17 04:17:31 P14 sshd[3919]: Server listening on :: port 22. Apr 17 04:21:56 P14 login[3122]: pam_unix(login:session): session opened for user eleve by LOGIN(uid=0) Apr 17 04:24:33 P14 login[3123]: pam_unix(login:session): session opened for user root by LOGIN(uid=0) Apr 17 04:24:33 P14 login[4186]: ROOT LOGIN on '/dev/tty3'

==> /var/log/syslog <== Apr 17 04:26:32 P14 acpid: client connected from 2881[0:0] Apr 17 04:26:32 P14 acpid: 1 client rule loaded Apr 17 04:26:32 P14 dbus[2334]: [system] Activating service name='org.kde.powerdevil.backlighthelper' (using servicehelper) Apr 17 04:26:32 P14 org.kde.powerdevil.backlighthelper: QDBusConnection: system D-Bus connection created before QCoreApplication. Application may misbehave. Apr 17 04:26:32 P14 dbus[2334]: [system] Successfully activated service 'org.kde.powerdevil.backlighthelper' Apr 17 04:27:09 P14 acpid: client 2881[0:0] has disconnected Apr 17 04:27:13 P14 acpid: client connected from 2881[0:0] Apr 17 04:27:13 P14 acpid: 1 client rule loaded Apr 17 04:28:36 P14 dbus[2334]: [system] Activating service name='org.freedesktop.PackageKit' (using servicehelper) Apr 17 04:28:36 P14 dbus[2334]: [system] Successfully activated service 'org.freedesktop.PackageKit' Apr 17 04:29:27 P14 acpid: client 2881[0:0] has disconnected Apr 17 04:29:48 P14 acpid: client connected from 2881[0:0] Apr 17 04:29:48 P14 acpid: 1 client rule loaded Apr 17 04:29:49 P14 dhclient: DHCPREQUEST on eth1 to 192.168.0.1 port 67 Apr 17 04:29:49 P14 dhclient: DHCPACK from 192.168.0.1 Apr 17 04:29:49 P14 dhclient: bound to 192.168.0.7 -- renewal in 284 seconds. Apr 17 04:30:05 P14 acpid: client 2881[0:0] has disconnected Apr 17 04:31:17 P14 acpid: client connected from 2881[0:0] Apr 17 04:31:17 P14 acpid: 1 client rule loaded Apr 17 04:31:38 P14 acpid: client 2881[0:0] has disconnected Apr 17 04:32:26 P14 acpid: client connected from 2881[0:0] Apr 17 04:32:26 P14 acpid: 1 client rule loaded Apr 17 04:32:44 P14 acpid: client 2881[0:0] has disconnected Apr 17 04:33:04 P14 acpid: client connected from 2881[0:0] Apr 17 04:33:04 P14 acpid: 1 client rule loaded Apr 17 04:33:16 P14 acpid: client 2881[0:0] has disconnected Apr 17 04:33:17 P14 acpid: client connected from 2881[0:0] Apr 17 04:33:17 P14 acpid: 1 client rule loaded Apr 17 04:33:30 P14 acpid: client 2881[0:0] has disconnected

Tentatives de montage manuel :
mount -t nfs -o nfsvers=3 192.168.0.1:/home/Documentations /home/Documentations : mount.nfs: access denied by server while mounting:/home/Documentations

mount -t nfs 192.168.0.1:/home/Documentations /home/Documentations : mount.nfs: access denied by server while mounting:/home/Documentations

mount 192.168.0.1:/home/Documentations /home/Documentations : mount.nfs: access denied by server while mounting:/home/Documentations

J’ai configuré, mais sans succès, les fichiers /etc/hosts.allow sur serveur :
mountd:ALL portmap:ALL nfsd:ALL

idem pour /etc/idmapd.conf (client + serveur) :

Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = linux [Mapping] Nobody-User = nobody Nobody-Group = nogroup

Enfin, je n’ai rien ajouté dans iptables.

t as bien lancé les tail sur le serveur ? car on voit pas grand chose et si le telnet ne passe pas t’as un souci sur les clients, réseau le flux n’est pas ouvert.

Non, j’ai malheureusement lancé le tail sur le client … Désolé.

Je comprends votre impatience et donc vous pensez, à tort, à mon avis qu’en forçant NFS à utiliser uniquement des IPs vous allez y arriver.
Si vous vous mettez à la place des concepteurs de NFS (les ingénieurs de Sun à l’époque), vous imaginez bien que si on conçoit un système qui permet à un système tiers de monter en lecture-écriture par défaut un répertoire partagé, géré par le serveur local et exporté c’est-à_dire offert comme système de fichiers en réseau, c’est bien joli comme concept mais ceci ne peut se faire qu’à un certain nombre de conditions

  • le système client qui demande le montage doit être connu du système serveur

  • le système qui demande le montage doit connaître le serveur. Il peut découvrir (par /usr/sbin/showmount -e ) quel sont les répertoires exportés.

  • Pour les droits d’accès, les utilisateurs (sur le poste client) doivent être identifiés (et connus) sur le serveur.

Si ces conditions n’étaient pas respectées, ce serait le grand n’importe quoi, n’importe quel système pourrait utiliser indûment l’espace disque ainsi offert.

Pour satisfaire ces contraintes de bon sens, le plus simple serait de créer un domaine NIS (Network Information System), une technologie développée par Sun qui permet, avec autofs/automount, de simplifier l’administration d’un ensemble de machines qui s’échangent les informations d’une manière quasi-transparente.
Par exemple, dans un domaine NIS -ecole ) on pourrait avoir une répartition des tâches (des services) entre différents systèmes :

  • un système serveur NIS principal
  • éventuellement un serveur NIS secondaire
  • tous les répertoires HOME sont montés sur /homes/, le répertoire /homes est vide au départ et se remplit à la demande via autofs par un montage automatique d’un export NFS /homex d’une des machines du domaine ecole
  • Les partages NFS que vous envisagez ( Documentation, … ) pourraient être envisagés.

Pourquoi ai-je utilisé le conditionnel ? Parce que cette solution de luxe ne me semble pas adaptée à votre cas : une telle architecture est adaptée à un environnement de serveurs, de machines qui tournent tout le temps.
Si le serveur NIS n’est pas accessible disponible, l’utilisation d’un simple poste client devient vraiment pénible avec des messages du genre
le domaine n'est pas délimité

Je vous suggère de simuler un mini domaine NIS, comme il n’y a pas de serveur DHCP| ni de serveur DNS vous devez avoir un fichier /etc/hosts cohérent et identique sur toutes les machines de la classe.
Reportez-vous à un de mes messages précédents, mais ceci une fois fait, vous devez pouvoir un résultat sans erreur pour les commandes suivantes lancées depuis n’importe quel poste (P01, P02, …)

showmount -e P01
getent hosts P01
getent hosts P02

De même, en diffusant/copiant (sudo vipw) les fichiers /etc/passwd et /etc/group vous devriez avoir un résultat correct pour

for uid in 1000 1001 1002 eleve prof
do
   id $uid
   getent  passwd $uid
done

(Adaptez la liste des uids)

Il est où ce serveur dhcp ?

Pourquoi ne pas avoir dit que P01 fait office de serveur DHCP ?
D’autre part, il semblerait que l’horloge se soit arrêtée au printemps d’une année inconnue.

Sur P01

hostname --fqdn
domainname
cat  /etc/network/interfaces
date
uptime

Lorsque vous faites

mount -t nfs -o ro 192.168.0.1:/home/Documentations /home/Documentations

le message d’erreur est clair : le serveur ne connaît pas le poste client (ni d’Eve ni d’Adam) et refuse logiquement l’accès. J’ai l’air d’un vieux con qui radote, mais tant que la résolution des noms de machines ne sera pas réglée ce n’est pas la peine de chercher plus loin.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean
Ingénieur civil du Génie Maritime.

« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac

1 J'aime

c’est quand même étrange que ça fonctionne bien chez moi depuis des années avec les IPs , que ca focntionne avecu ne des machines et que le port en telnet réponde pas. Le message d’erreur il est pas si claire et faudrait les logs du serveur et pas des clients.

Bonsoir,

Pardon pour le manque de clarté : P01 fait bien office de serveur dhcp et distribue des ip entre 192.168.0.2 et 192.168.0.14.

A la demande de Jimbo, voici les fichiers syslog et auth.log du serveur lors des tentatives de montage manuel. On y trouve les traces de tentatives en gras, mais je ne sais pas les exploiter. J’ai fait cela avant de lire le dernier message de Littlejohn à propos de la résolution de noms.

Le client porte le nom P14 et se voit attribuer l’ip 192.168.0.7.

==> /var/log/syslog <== Oct 10 17:03:33 P01 rtkit-daemon[3794]: Successfully made thread 3878 of process 3878 (/usr/bin/pulseaudio) owned by '1000' high priority at nice level -11. Oct 10 17:03:33 P01 rtkit-daemon[3794]: Supervising 4 threads of 2 processes of 1 users. Oct 10 17:03:33 P01 pulseaudio[3878]: [pulseaudio] pid.c: Daemon already running. Oct 10 17:03:49 P01 acpid: client 3251[0:0] has disconnected Oct 10 17:04:09 P01 acpid: client connected from 3251[0:0] Oct 10 17:04:09 P01 acpid: 1 client rule loaded Oct 10 17:04:43 P01 acpid: client 3251[0:0] has disconnected Oct 10 17:05:06 P01 acpid: client connected from 3251[0:0] Oct 10 17:05:06 P01 acpid: 1 client rule loaded Oct 10 17:05:10 P01 acpid: client 3251[0:0] has disconnected

==> /var/log/auth.log <== Oct 9 18:17:08 P01 kdm: :0[3335]: pam_unix(kdm:session): session closed for user bns Oct 9 18:17:11 P01 sshd[3281]: Received signal 15; terminating. Oct 10 17:00:44 P01 su[2203]: pam_unix(su:session): session closed for user dirmngr Oct 10 17:00:49 P01 sshd[3272]: Server listening on 0.0.0.0 port 22. Oct 10 17:00:49 P01 sshd[3272]: Server listening on :: port 22. Oct 10 17:03:09 P01 kdm: :0[3349]: pam_unix(kdm:session): session opened for user bns by (uid=0) Oct 10 17:03:09 P01 kdm: :0[3349]: pam_ck_connector(kdm:session): nox11 mode, ignoring PAM_TTY :0 Oct 10 17:03:53 P01 login[3339]: pam_unix(login:session): session opened for user root by LOGIN(uid=0) Oct 10 17:03:53 P01 login[3914]: ROOT LOGIN on '/dev/tty1' Oct 10 17:03:58 P01 polkitd(authority=local): Registered Authentication Agent for unix-session:/org/freedesktop/ConsoleKit/Session1 (system bus name :1.36 [/usr/lib/kde4/libexec/polkit-kde-authentication-agent-1], object path /org/kde/PolicyKit1/AuthenticationAgent, locale fr_FR.UTF-8)

` ==> /var/log/syslog <==
Oct 10 17:05:32 P01 dhcpd: DHCPREQUEST for 192.168.0.7 from 00:1c:25:d0:62:06 (P14) via eth0
Oct 10 17:05:32 P01 dhcpd: DHCPACK on 192.168.0.7 to 00:1c:25:d0:62:06 (P14) via eth0
Oct 10 17:06:10 P01 kernel: [ 336.704043] usb 2-2: USB disconnect, device number 2
Oct 10 17:06:12 P01 kernel: [ 338.432021] usb 2-2: new low-speed USB device number 3 using uhci_hcd
Oct 10 17:06:12 P01 kernel: [ 338.607308] usb 2-2: New USB device found, idVendor=046d, idProduct=c05a
Oct 10 17:06:12 P01 kernel: [ 338.607314] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Oct 10 17:06:12 P01 kernel: [ 338.607318] usb 2-2: Product: USB Optical Mouse
Oct 10 17:06:12 P01 kernel: [ 338.607322] usb 2-2: Manufacturer: Logitech
Oct 10 17:06:12 P01 kernel: [ 338.623581] input: Logitech USB Optical Mouse as /devices/pci0000:00/0000:00:1a.0/usb2/2-2/2-2:1.0/input/input7
Oct 10 17:06:12 P01 kernel: [ 338.623709] generic-usb 0003:046D:C05A.0002: input,hidraw0: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-0000:00:1a.0-2/input0
Oct 10 17:06:12 P01 mtp-probe: checking bus 2, device 3: "/sys/devices/pci0000:00/0000:00:1a.0/usb2/2-2"
Oct 10 17:06:12 P01 mtp-probe: bus: 2, device: 3 was not an MTP device

Oct 10 17:06:45 P01 kernel: [ 371.612865] svc: 192.168.0.7, port=667: unknown version (4 for prog 100003, nfsd)
Oct 10 17:06:45 P01 rpc.mountd[2329]: authenticated mount request from P14.local:940 for /home/Documentations (/)
Oct 10 17:06:45 P01 rpc.mountd[2329]: request to export directory /home/Documentations below nearest filesystem /
Oct 10 17:06:49 P01 kernel: [ 376.013310] svc: 192.168.0.7, port=695: unknown version (4 for prog 100003, nfsd)
Oct 10 17:06:49 P01 rpc.mountd[2329]: authenticated mount request from P14.local:900 for /home/RetourProfesseur (/)
**Oct 10 17:06:49 P01 rpc.mountd[2329]: request to export directory /home/RetourProfesseur below nearest filesystem /
Oct 10 17:07:10 P01 kernel: [ 396.875714] svc: 192.168.0.7, port=773: unknown version (4 for prog 100003, nfsd)
Oct 10 17:07:10 P01 rpc.mountd[2329]: authenticated mount request from P14.local:766 for /home/Documentations (/)
Oct 10 17:07:10 P01 rpc.mountd[2329]: request to export directory /home/Documentations below nearest filesystem /
Oct 10 17:07:29 P01 rpc.mountd[2329]: authenticated mount request from P14.local:961 for /home/Documentations (/)
Oct 10 17:07:29 P01 rpc.mountd[2329]: request to export directory /home/Documentations below nearest filesystem /
Oct 10 17:07:40 P01 dbus[2553]: [system] Activating service name=‘org.kde.powerdevil.backlighthelper’ (using servicehelper)
Oct 10 17:07:40 P01 org.kde.powerdevil.backlighthelper: QDBusConnection: system D-Bus connection created before QCoreApplication. Application may misbehave.
Oct 10 17:07:40 P01 dbus[2553]: [system] Successfully activated service ‘org.kde.powerdevil.backlighthelper’
Oct 10 17:08:09 P01 kernel: [ 456.143514] svc: 192.168.0.7, port=953: unknown version (4 for prog 100003, nfsd)
Oct 10 17:08:09 P01 rpc.mountd[2329]: authenticated mount request from P14.local:675 for /home/Documentations (/)
Oct 10 17:08:09 P01 rpc.mountd[2329]: request to export directory /home/Documentations below nearest filesystem /
Oct 10 17:08:14 P01 anacron[3635]: Job cron.daily' started Oct 10 17:08:14 P01 anacron[4049]: Updated timestamp for jobcron.daily’ to 2017-10-10 `

J’attends d’avoir votre avis avant de m’atteler à la résolution de noms.

Merci pour votre soutien.

met voir ca dans ton /etc/hosts.allow:

portmap: 192.168.0.0/24

sur le client et le serveur et tu commentes tout dans hosts.deny

et ca dans le export tu le change en

/home/Documentations 192.168.0.0/24 (ro,sync,root_squash,no_subtree_check,insecure)

et

 exportfs -a
/etc/init.d/nfs-kernel-server restart

Sur P01 le démon rpc.mountd a l’air de s’emmêler les crayons au sujet es systèmes de fichiers exportés. A titre de vérification, donnez le retour de

df -hT /home/Documentations /home/RetourProfesseur

Si on a bien deux lignes semblables avec un montage de la racine, vous tapez

man exports

et vous lisez l’explication concernant l’option fsid=num|root|uuid.
C’est assez indigeste :tired_face:

Combiné avec la proposition de jimbo on pourrait avoir quelque chose du genre

/home/Documentations -ro,no_subtree_check,fsid=10  192.168.0.0/24
/home/RetourProfesseur  -rw,no_subtree_check,fsid=20,async 192.168.0.0/24

L’idée de base est de donner deux valeurs différentes et non nulles à fsid.

Avec les journaux on avance :slight_smile:

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean
Ingénieur civil du Génie Maritime.

« Je préfère le vin d’ici à l’au-delà »
Pierre Dac

oui c’est le mieux pour debuguer on va trouver son problème :yum:

Bonjour et bonne nouvelle, le problème est résolu grâce à vous.
En suivant vos conseils, j’ai remplacé

/home/Documentations  192.168.0.0/*  (ro,sync,root_squash,no_subtree_check)

par

Le joker * n’est donc pas permis dans le fichier exports.

Littlejohn et Jimbo, merci infiniment pour la pertinence de vos consignes et le temps que vous m’avez consacré. Tout ceci était très instructif et je vais approfondir le sujet en suivant les pistes évoquées par Littlejohn.

Excellente fin de week-end !