NFS ou Network File System (initialement un produit SUN) permet de partager des disques entre stations UNIX, voire entre serveur NFS UNIX et client Windows PC-NFS.
ATTENTION: Vous devez faire en sorte que les uid et gid de vos utilisateurs soient strictement identiques entre votre serveur NFS et vos clients NFS, le mieux est de configurer un domaine NIS.
Pour cela on doit configurer la partie serveur, le poste linux qui partagera ses répertoires.
Pour cela on doit installer sur une Mandrake 6.1 le package knfsd-1.4.1-2mdk.i586.rpm (pour kernel NFS) que vous trouverez sur le CD d'install.
Le fichier de lancement de nfs, se trouve sous /etc/rc.d/init.d (automatique à l'installation par RPM). Voici le contenu du fichier nfs :
#!/bin/sh # # nfs This shell script takes care of starting and stopping # the NFS services. # # chkconfig: - 60 20 # description: NFS is a popular protocol for file sharing across TCP/IP \ # networks. This service provides NFS server functionality, \ # which is configured via the /etc/exports file. # probe: true # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. if [ ! -f /etc/sysconfig/network ]; then exit 0 fi . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/sbin/rpc.nfsd ] || exit 0 [ -x /usr/sbin/rpc.mountd ] || exit 0 [ -x /usr/sbin/exportfs ] || exit 0 [ -f /etc/exports ] || exit 0 # Number of servers to be started uo by default RPCNFSDCOUNT=8 # See how we were called. case "$1" in start) # Start daemons. action "Starting NFS services: " /usr/sbin/exportfs -r echo -n "Starting NFS statd: " daemon rpc.statd echo echo -n "Starting NFS quotas: " daemon rpc.rquotad echo echo -n "Starting NFS mountd: " daemon rpc.mountd --no-nfs-version 3 echo echo -n "Starting NFS daemon: " daemon rpc.nfsd $RPCNFSDCOUNT echo touch /var/lock/subsys/nfs ;; stop) # Stop daemons. action "Shutting down NFS services: " /usr/sbin/exportfs -au echo -n "Shutting down NFS mountd: " killproc rpc.mountd echo echo -n "Shutting down NFS daemon: " killproc nfsd echo echo -n "Shutting down NFS quotas: " killproc rpc.rquotad echo echo -n "Shutting down NFS statd: " killproc rpc.statd echo rm -f /var/lock/subsys/nfs ;; status) status rpc.statd status rpc.mountd status nfsd status rpc.rquotad ;; restart) $0 stop $0 start ;; reload) /usr/sbin/exportfs touch /var/lock/subsys/nfs ;; probe) if [ ! -f /var/lock/subsys/nfs ] ; then echo start; exit 0 fi /sbin/pidof rpc.mountd >/dev/null 2>&1; MOUNTD="$?" /sbin/pidof nfsd >/dev/null 2>&1; NFSD="$?" if [ $MOUNTD = 1 -o $NFSD = 1 ] ; then echo restart; exit 0 fi if [ /etc/exports -nt /var/lock/subsys/nfs ] ; then echo reload; exit 0 fi ;; *) echo "Usage: nfs {start|stop|status|restart|reload}" exit 1 esac exit 0
Maintenant vous devez mettre en place les liens suivants (automatique à l'installation par RPM):
ln -s /etc/rc.d/init.d/nfs /etc/rc0.d/K20nfs ln -s /etc/rc.d/init.d/nfs /etc/rc1.d/K20nfs ln -s /etc/rc.d/init.d/nfs /etc/rc2.d/K20nfs ln -s /etc/rc.d/init.d/nfs /etc/rc3.d/S60nfs ln -s /etc/rc.d/init.d/nfs /etc/rc4.d/S60nfs ln -s /etc/rc.d/init.d/nfs /etc/rc5.d/S60nfs ln -s /etc/rc.d/init.d/nfs /etc/rc6.d/K20nfs
Ca y est c'est fini au prochain reboot, votre machine sera serveur NFS, si vous ne voulez pas attendre le reboot tapez:
/etc/rc.d/init.d/nfs start
Maintenant nous allons configurer les répertoires à exporter et vers quelles machines. Tout cela se passe dans le fichier /etc/exports de la machine serveur NFS qui a pour nom obelix, admettons que vouliez exporter "partager" votre répertoire /alphonse à la station zoulou en lecture écriture (rw) et en lecture seule (ro) à shuttle, le fichier contiendra donc:
/alphonse zoulou(rw) shuttle(ro)
Pour que le fichier soit pris en compte, en tant que root vous devez taper:
exportfs -a
NOTE: A chaque modification de ce fichier, vous devrez taper cette commande pour que la modification soit prise en compte.
Sur une machine cliente NFS pour monter des filesystems exportés par un serveur NFS, vous devez modifier le fichier /etc/fstab. En reprenant notre exemple, sur la machine cliente zoulou, cela donnera la ligne supplémentaire (en plus des montages de partitions habituelles):
obelix:/alphonse /alphonse nfs defaults 0 0
/alphonse (deuxième champ de la ligne) étant le point de montage sur zoulou, c'est un réperoire à créer.
ATTENTION: Ce répertoire doit être vide avant tout montage.
Pour prendre en compte le montage vous devez taper:
mount -a