« Le système d'exploitation GNU-Linux/Le partage de fichiers NFS » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 95 : Ligne 95 :
pc230:/home/partage /mnt nfs defaults 0 0
pc230:/home/partage /mnt nfs defaults 0 0
...
...



''En construction !''
== NIS ==

Pour installé sous Débian, utilisez la commande
# Apt-get install nis

Lors de l'installation vous aurez le choix du domaine, il peut être différent du domaine internet.

Le document d'aide pour la configuration du serveur et du client
# cat /usr/share/doc/nis/nis.debian.howto.gz

'''Le serveur'''

Les 2 premières étapes de l'installation du serveur ont été réalisés lors des précédentes manipulations.
Pour la troisième
# cat /etc/host
Vous devez normalement avoir votre ip et votre host.

Dans etc/defaultdomain , vérifier que le domaine choisis lors de l'installation est présent.

Pour les restriction :
# vi /etc/ypserv.securenets

#
# securenets This file defines the access rights to your NIS server
# for NIS clients (and slave servers - ypxfrd uses this
# file too). This file contains netmask/network pairs.
# A clients IP address needs to match with at least one
# of those.
#
# One can use the word "host" instead of a netmask of
# 255.255.255.255. Only IP addresses are allowed in this
# file, not hostnames.
#
# Always allow access for localhost
255.0.0.0 127.0.0.0

# This line gives access to everybody. PLEASE ADJUST!
255.255.255.0 192.168.30.0


# vi /etc/default/nis -> NISSERVER=master

# /etc/init.d/nis restart
Long la premiere fois

# /usr/lib/yp/ypinit -m
Création des fichiers dans var/lib/nis

'''Le client'''

ip serveur /etc/yp.conf
domain /etc/defaultdomain
Lancez le client
/etc/init.d/nis start

cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd: compat
group: compat
shadow: compat

hosts: files dns
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

# vipw
Séparation des utilisateurs locaux et les utilisateurs du réseau.

'''Test:'''

# id jack
Vous optenez
id: jack: usager inexistant.


Ajoutez le groupe et l'utilisateur
# addgroup --gid 1100 grpjack
# adduser --uid 1100 --gid 1100 jack

Mise a jours du var/yp/DOMAINE

Version du 12 février 2008 à 16:35

Le protocole NFS (Network File System) permet de partager des fichiers dans les réseaux Unix.

Installation du serveur NFS

Pour installer le serveur NFS sous Debian, il suffit de taper la commande suivante :

 # apt-get install nfs-kernel-server

Configuration du serveur NFS

La configuration du serveur NFS est stockée dans le fichier /etc/exports.

Ce fichier de configuration dispose d'une page de manuel :

 # man exports

Voici quelques exemples extrait du manpage :

 $ cat /etc/exports
 
 # fichier exemple /etc/exports
 /               master(rw) trusty(rw,no_root_squash)
 /projects       proj*.local.domain(rw)
 /usr            *.local.domain(ro) @trusted(rw)
 /home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
 /pub            (ro,insecure,all_squash)
  • La première ligne exporte l’ensemble du système de fichiers vers les machines « master » et « trusty ». En plus des droits d’écriture, toute transformation d’UID est désactivée pour l’hôte « trusty ».
  • Les deuxième et troisième lignes montrent des exemples de noms de machines avec caractères jokers, et de groupes de machines (« @trusted »).
  • La quatrième ligne montre comment mapper tous les utilisateurs vers UID et GID particulier.
  • La dernière ligne partage un répertoire /pub, à toutes les machines dans le monde, en effectuant les requêtes sous le compte anonyme. L’option insecure permet l’accès aux clients dont l’implémentation NFS n’utilise pas un port réservé.

A chaque modification du fichier /etc/exports, il faut relancer le serveur NFS pour que les modifications soient pris en compte :

 # /etc/init.d/nfs-kernel-server restart

On peut également utiliser la commande exportfs :

 # exportfs -ra

Options d'exportation

Voici les options d'exportation les plus courantes :

  • secure : cette option impose l’utilisation d’un port réservé (inférieur à 1024) comme origine de la requête.
  • rw : exporte le répertoire en lecture / écriture
  • ro : exporte le répertoire en lecture seule
  • async : le serveur NFS va pouvoir répondre que le fichier a été écrit sur le support de stockage, même si cela n'a pas encore été fait. Améliore les performances du serveur.
  • sync : le serveur NFS va écrit physiquement les fichiers sur le support de stockage avant de répondre. Réduit les performances du serveur.


Options liées aux correspondances de UID et de GID (UID et GID mapping)

Le principal problème avec NFS est la correspondance des UID et des GID. Effectivement, l'utilisateur alex peut avoir le UID 1000 sur le client et un UID différent sur le serveur. NFS travaille avec les UID et GID numérique, il va donc par défaut enregistrer sur le serveur que le fichier appartient à l'utilisateur 1000, et non à l'utilisateur alex.

Pour pallier à ces problèmes, NFS fournit des mécanismes pour transformer les UID et les GID.

Le problème ce pose également avec le super-utilisateur root qui dispose du UID 0. Pour des raisons de sécurité, NFS va transformer par défaut les fichiers posés par le root vers le UID et le GID du compte anonyme (nobody.nogroup).

  • root_squash : option par défaut. transforme les requètes provenant de l'UID 0 / GID 0 vers le UID et GID du compte anonyme.
  • no_root_squash : ne transforme pas les requètes provenant de l'UID 0 / GID 0. A utiliser avec précaution.
  • all_squash : transforme tous les UID/GID vers le UID/GID de l’utilisateur anonyme.
  • anonuid : permet de spécifier le UID de l'utilisateur anonyme.
  • anongid : permet de spécifier le GID de l'utilisateur anonyme.


Utilisation de NFS depuis un poste client

La commande mount permet à un poste client d'accéder à un répertoire partagé par un serveur NFS.


Synopsis :

 # mount -t nfs <nom ou adresse IP du serveur NFS>:<répertoire partagé> <point de montage>

Exemple :

 # mount -t nfs pc230:/home/partage /mnt

Si on veut que ce répertoire soit accessible à chaque boot, il suffit de rajouter la ligne suivante dans le fichier /etc/fstab :

 $ cat /etc/fstab
 ...
 pc230:/home/partage  /mnt  nfs  defaults  0  0
 ...


En construction !

NIS

Pour installé sous Débian, utilisez la commande

# Apt-get install nis

Lors de l'installation vous aurez le choix du domaine, il peut être différent du domaine internet.

Le document d'aide pour la configuration du serveur et du client

# cat /usr/share/doc/nis/nis.debian.howto.gz
Le serveur
Les 2 premières étapes de l'installation du serveur ont été réalisés lors des précédentes manipulations.
Pour la troisième
# cat /etc/host
Vous devez normalement avoir votre ip et votre host.

Dans etc/defaultdomain , vérifier que le domaine choisis lors de l'installation est présent.

Pour les restriction :

# vi /etc/ypserv.securenets
  1. securenets This file defines the access rights to your NIS server
  2. for NIS clients (and slave servers - ypxfrd uses this
  3. file too). This file contains netmask/network pairs.
  4. A clients IP address needs to match with at least one
  5. of those.
  6. One can use the word "host" instead of a netmask of
  7. 255.255.255.255. Only IP addresses are allowed in this
  8. file, not hostnames.
  9. Always allow access for localhost

255.0.0.0 127.0.0.0

  1. This line gives access to everybody. PLEASE ADJUST!

255.255.255.0 192.168.30.0


# vi /etc/default/nis -> NISSERVER=master


# /etc/init.d/nis restart
Long la premiere fois
# /usr/lib/yp/ypinit -m
Création des fichiers dans var/lib/nis

Le client

ip serveur /etc/yp.conf domain /etc/defaultdomain Lancez le client /etc/init.d/nis start

cat /etc/nsswitch.conf

  1. /etc/nsswitch.conf
  2. Example configuration of GNU Name Service Switch functionality.
  3. If you have the `glibc-doc-reference' and `info' packages installed, try:
  4. `info libc "Name Service Switch"' for information about this file.

passwd: compat group: compat shadow: compat

hosts: files dns networks: files

protocols: db files services: db files ethers: db files rpc: db files

netgroup: nis

# vipw
Séparation des utilisateurs locaux et les utilisateurs du réseau.

Test:

  1. id jack

Vous optenez id: jack: usager inexistant.


Ajoutez le groupe et l'utilisateur

# addgroup  --gid 1100 grpjack
# adduser --uid 1100 --gid 1100 jack

Mise a jours du var/yp/DOMAINE