Configuration
du noyau
Activez les options suivantes dans la configuration du noyau
(choisissez le support client ou serveur en fonction de ce qui est
approprié) et recompilez le noyau si nécessaire :
File systems --->
[*] Network File Systems ---> [CONFIG_NETWORK_FILESYSTEMS]
<*/M> NFS client support [CONFIG_NFS_FS]
<*/M> NFS server support [CONFIG_NFSD]
Sélectionnez les sous-options adéquates qui apparaissent quand les
options ci-dessus sont sélectionnées.
Note
Dans BLFS, nous supposons que nfs v3 sera utilisé. Si le
serveur offre nfs v4 (pour
Linux, CONFIG_NFSD_V4) alors l'auto-négotiation pour la v3
échouera et vous devrez ajouter nfsver=3
aux options de montage. Ceci s'applique
aussi si cette option est activée dans le noyau du client, par exemple dans une
distribution tentant de monter un serveur v3 BLFS.
Installation
de NFS Utilities
Avant de compiler le programme, assurez-vous que l'utilisateur
nobody
et le groupe nogroup
ont été créé dans la version actuelle
du livre LFS. Vous pouvez les ajouter en lançant les commandes
suivantes en tant qu'utilisateur root
:
groupadd -g 99 nogroup &&
useradd -c "Unprivileged Nobody" -d /dev/null -g nogroup \
-s /bin/false -u 99 nobody
Note
Les valeurs d'uid et de gid classiques sont 65534, ce qui
signifie -2 interprété en nombre 16 bits signé. Ces valeurs
affectent d'autres fichiers sur quelques systèmes de fichiers qui
ne supportent pas les fichiers éparpillés. Les valeurs
nobody
et nogroup
sont relativement arbitraires.
L'impact sur un serveur est nul si le fichier exports
est configuré correctement. S'il est
mal configuré, un listage par ls
-l ou ps affichera un numéro d'uid ou
de gid de 65534 à la place d'un nom. Le client n'utilise
nobody
qu'en tant qu'utilisateur
qui lance rpc.statd.
Installez NFS Utilities en lançant
les commandes suivantes :
./configure --prefix=/usr \
--sysconfdir=/etc \
--without-tcp-wrappers \
--disable-nfsv4 \
--disable-gss &&
make
Si votre répertoire /usr
est monté en
NFS, vous devriez installer les exécutables dans /sbin
en passant un paramètre supplémentaire
--sbindir=/sbin
à la commande
./configure
ci-dessus.
Maintenant, en tant qu'utilisateur root
:
make install &&
chmod u+w,go+r /sbin/mount.nfs
Les tests pour ce paquet requièrent qu'il soit installé et
configuré comme spécifié plus bas. De plus, le démon de rpcbind-0.2.4
doit tourner et les tests doivent être lancés en tant
qu'utilisateur root
.
Pour tester les résultats, lancez, en root : make check.
Explication des commandes
--without-tcp-wrappers
: Cette
option est nécessaire parce que TCP Wrappers n'est pas présent dans
BLFS.
--disable-nfsv4
:
Permet au paquet d'être construit lorsque libnfsidmap n'a pas été
installé.
--disable-gss
:
Désactive le support de RPCSEC GSS (RPC Security).
Configuration de NFS Utilities
Configuration du serveur
/etc/exports
contient les
répertoires exportés sur des serveurs NFS. Reportez-vous à la
page de manuel exports.5
pour la
syntaxe de ce fichier. Reportez-vous aussi au "guide pratique
NFS" disponible sur http://nfs.sourceforge.net/nfs-howto/
pour des informations sur la manière de configurer les serveurs
et les clients de façon sécurisée. Par exemple, pour partager le
répertoire /home
via le réseau
local, vous pouvez ajouter la ligne suivante :
/home 192.168.0.0/24
(rw,subtree_check,anonuid=99,anongid=99)
Note
Soyez certain de remplacer le répertoire, l'adresse réseau et
le préfixe pour correspondre à votre réseau. Le seul espace
dans la ligne ci-dessus doit être entre le répertoire et
l'adresse réseau.
Installez le script de démarrage /etc/rc.d/init.d/nfs-server
fourni
dans le paquet blfs-bootscripts-20170225 pour
lancer le serveur au démarrage.
make install-nfs-server
Maintenant créez le fichier de configuration /etc/sysconfig/nfs-server
:
cat > /etc/sysconfig/nfs-server << "EOF"
PORT="2049"
PROCESSES="8"
QUOTAS="no"
KILLDELAY="10"
EOF
Note
Les paramètres ci-dessus peuvent être mis, éventuellement,
dans /etc/sysconfig/rc.site
.
Configuration du client
/etc/fstab
contient les répertoires
qui doivent être montés sur le client. Les partitions peuvent
aussi être montées par l'utilisation de la commande mount avec les bonnes options.
Pour monter les partitions /home
et
/usr
, ajoutez ce qui suit au
fichier /etc/fstab
:
<server-name>
:/home /home nfs rw,_netdev 0 0
<server-name>
:/usr /usr nfs ro,_netdev 0 0
Les options qui peuvent être utilisées sont spécifiées dans
man 5 nfs. Si le
client et le serveur utilisent des versions récentes de Linux, la
plupart des options pourront être négociées. Vous pouvez
spécifier soit rw
ou ro
, _netdev
si le
système de fichier doit être monté automatiquement au démarrage,
ou noauto
(et peut être user
) pour les autres systèmes de fichiers.
Si le serveur de fichiers n'utilise pas une version récente de
Linux, vous devrez spécifier d'autres options.
Si vous utilisez systemd, vous devrez activer autofs v4 dans
votre noyau, et ajouter l'option comment=systemd.automount
. Certaines machines
ont besoin de cela, car systemd tente de monter les fs externes
avant que le réseau ne soit actif, les autres n'ont pas besoin de
cela. Une alternative est pour root
de lancer mount -a.
Note
Le script de démarrage suivant n'est pas requis
si le script du serveur nfs est installé
Installez le script de démarrage /etc/rc.d/init.d/nfs-client
fourni
dans le paquetblfs-bootscripts-20170225 pour
lancer les services clients au démarrage.
make install-nfs-client
Pour monter automatiquement des systèmes de fichiers
nfs
, les clients devront
également installer le script de démarrage netfs
comme décrit au chapitre Configuration
des systèmes de fichiers réseau.