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)