NIS/NFS avec serveur Linux et clients Mac OS X

Configuration du serveur Linux

Le serveur est sous Linux Debian stable (v5.0).

Il est nécessaire d’installer les paquets NFS et NIS.

La machine serveur sera « disk.local », et l’utilisateur « moi » (donc a remplacer dans le texte ci-dessous par la machine et l’utilisateur de votre système).

Partages de dossiers NFS (/home en particulier)

Pour fonctionner avec un client OS X Léopard (10.5), il est préférable d’avoir les dossiers home sous /home (et pas sous /export/home), car c’est plus simple a configurer.

Dans /etc/exports, il faut définir les répertoires à exporter:

# /etc/exports: the access control list for filesystems which may be exported
#		to NFS clients.  See exports(5).

# must be async as Mac OS X is slow on write otherwise
/home             *.local(rw,no_root_squash,async,insecure,subtree_check)

On exporte le dossier home pour les ordinateurs du réseau .local.

  • Insecure: pour utiliser les ports bas (<1024) qu’utiliser pas défaut OS X.
  • async: a mettre car sinon OS X est très lent pour les accès en écriture
  • rw: pour avoir un accès en lecture et écriture.

Après on relance le serveur:

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

Contenu des dossiers /home

On peut remplir les dossiers des utilisateurs avec les dossiers Documents, Applications, Sites, Public, Desktop, Library, Movies, Pictures.

Enfin il faut créer un fichier vide /home/.DS_Store, /home/.hidden car sinon OS X n’arrête pas de le demander (remplit les logs du serveur).

Aussi il faut créer un dossier /home/.Trashes pour la même raison.

Il restera /home/mach_kernel mais on va pas tout mettre non plus.

Pour franciser les noms, il faut créer un fichier .localized vide dans chacun des dossiers.

cd /home/moi
mkdir Documents Sites Public Desktop Library Movies Pictures Downloads
chmod 755 Public Sites
chmod 700 Documents Desktop Library Movies Pictures Downloads
chown -R moi.groupe1 Public Sites Documents Desktop Library Movies Pictures Downloads
touch /home/.DS_Store /home/.hidden
mkdir /home/.Trashes
chmod 333 /home/.Trashes
chmod o+t /home/.Trashes

Services NIS

Les informations NIS sont générées dans le dossier /var/yp, en utilisant le fichier Makefile (donc il suffit de faire:

cd /var/yp ; make

Mais il faut d’abord faire quelques changement au niveau des fichiers utilisés, pour ne pas utiliser directement les informations du dossier /etc (pour supprimer des utilisateurs inutiles par exemple).

Donc dans /var/yp/Makefile, il faut changer:

YPPWDDIR = /etc

par

YPPWDDIR = /var/yp/ypfiles

Authentification

Dans /var/yp/ypfiles, on récupèrera /etc/passwd et /etc/group.

On peut garder dans ces fichiers que les lignes des utilisateurs (donc supprimer root, daemon, ftp, ….).

Pareil pour le fichier group.

Attention:  Les numéros d’utilisateurs et de groupes (user id et group id) doivent correspondre entre le serveur Linux et le client OS X.

Il y a peut-être un moyen de convertir les numéros dynamiquement en utilisant l’option map_static dans /etc/exports et en paramètre un fichier contenant les associations des numéros locaux/distants (voir page man de exports). J’ai pas testé.

Points de montage

Ensuite il faut définir les « maps » utilisés pour connaître les points de montage.

Il faut créer dans /var/yp/ypfiles 2 fichiers: auto.master, et auto.home

auto.master:

/home    auto.home

auto.home:

*  -fstype=nfs,soft,intr,rsize=8192,wsize=8192,nosuid  disk.local:/home/&

 Génération et relancement

Un fois tous les fichiers présents, on peut générer les « maps »:

cd /var/yp ; make
/etc/init.d/nis restart

 

Configuration du client Mac OS X

Sous OS X Léopard (10.5), il faut juste activer l’annuaire NIS: Dans Applications->Utilitaires->Utilitaire d’Annuaire.

Dans l’onglet Services, activer:

-Fichiers plat BSD et NIS

-Local (déjà activé)

C’est tout, automatiquement le service NIS fournira les authentifications, et les points de montages des disques (seule l’authentification fonctionne avec OS X Tiger 10.4). Pour avoir les points de montages NIS sous Tiger, il doit falloir faire des modifications dans la configuration de l’automount (j’ai pas essayé).

Tests

NFS

Sous OS X (client) on doit pouvoir monter un dossier utilisateur sous OS X (Dans le Finder Menu Aller->Se connecter au serveur…, puis taper nfs://disk.local/home/moi où disk.local est le nom du serveur Linux, et moi le nom de l’utilisateur).

NIS (authentification)

Sous OS X (client), faire

ypcat passwd.byname

Ca doit lister le contenu du fichier passwd du serveur.

Par exemple:

moi:x:1008:1000:Moi:/home/moi:/bin/bash

Il y a la même chose pour group.byname

NIS (point de montage)

Sous OS X (client), faire

ypcat auto.home

On doit avoir le contenu du fichier auto.home du serveur.

En faisant

cd /home/moi
mount

On doit avoir par exemple:

/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local)
fdesc on /dev (fdesc, union)
map -hosts on /net (autofs, automounted)
map auto.home on /home (autofs, automounted)
disk.local:/home/.DS_Store on /home/.DS_Store (nfs, nodev, nosuid, automounted)
disk.local:/home/moi on /home/moi (nfs, nodev, nosuid, automounted)