Si vous êtes un utilisateur d'un réseau hétérogène où les protocoles IP et IPX sont utilisés, il est probable que vous ayez à un moment ou à un autre, besoin d'accéder à partir de votre machine Linux, à des données stockées sur un serveur de fichier Novell de ce réseau. Novell a longtemps offert un ensemble logiciel NFS pour leurs serveurs de fichiers qui permettaient cet accès. Cependant si le site auquel vous êtes connecté est petit, le nombre de personnes nécessitant cet type d'accès ne justifie peut-être pas l'achat de ces outils logiciels commerciaux.
Volker Lendecke <lendecke@namu01.gwdg.de>
a écrit un module du système de
fichier du noyau Linux supportant un sous-ensemble limité du protocole Novell
NCP qui permet de monter une partition Novell dans votre système de
fichiers
Linux sans avoir recours à quelque produit additionnel de la part de votre
serveur de fichiers. Ce logiciel permet à Linux d'émuler une station Novell
normale utilisée en serveur de fichiers. Ce module inclut aussi un petit utilitaire
servant à imprimer dans des queues d'impression Novell.
Volker a appelé cet ensemble ncpfs
. Ce dernier a été
réalisé à partir des
informations tirées principalement du livre "Netzwerkprogrammierung in C" de
Manfred Hill et Ralf Zessin (de plus amples informations sont données dans le
fichier README contenu dans l'ensemble ncpfs
). Volker a aussi utilisé les
outils IPX écrits par Greg Page <greg@caldera.com>
.
L'ensemble ncpfs a été développé afin d'être compilé avec les noyaux de
Linux version 1.2.13
ou étant plus récents que 1.3.53
. Si vous n'utilisez pas
un de ces noyaux vous devrez vous en munir et l'utiliser. Des problèmes ont
été rencontrés avec les versions allant de la 1.3.0
à 1.3.52
qui empêchent le support IPX de fonctionner.
Vous pouvez vous procurer l'ensemble ncpfs par ftp anonyme sur le site
de Volker,
linux01.gwdg.de
,
sur
sunsite.unc.edu
ou sur un site miroir. La version à jour au moment où j'écris ces lignes est
ncpfs-0.11.tgz
La première chose que vous ayez à faire est de vérifier que votre
noyau a été compilé avec l'option IPX. Dans la version 1.2.13
du
noyau, vous vous assurerez que la réponse à la question 'The IPX
Protocol
' est Y
(yes) comme dans le cas suivant:
... ... Assume subnets are local (CONFIG_INET_SNARL) [y] Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] The IPX protocol (CONFIG_IPX) [n] y * * SCSI support ... ...Vous devez aussi vérifier que vous avez inclus le gestionnaire approprié pour votre carte Ethernet. Si vous ne savez pas comment procéder, je vous conseille de lire l'Ethernet-HOWTO Ethernet-HOWTO .
Vous pourrez alors procéder à la compilation. Je vous rappelle que le lancement de lilo pour installer le nouveau noyau est obligatoire une fois la compilation finie.
# cd /usr/src # tar xvfz ncpfs-0.9.tgz
Le logiciel doit se compiler proprement sans qu'une configuration ne soit nécessaire. :
# make
Après cette compilation, vous trouverez tous les outils dont vous
aurez besoin dans le répertoire ncpfs/bin
. Je vous recommande de les
copier dans le répertoire /usr/local/sbin
de la manière suivante :
# cd bin # for i in ipx* ncp* slist nprint pqlist; do cp \*(dRi /usr/local/sbin; done
Vous trouverez aussi dans le répertoire ncpfs/bin
le fichier ncpfs.o
après la compilation déjà mentionnée. Il s'agit du module ncpfs du
noyau. Je vous conseille de copier ce fichier à un endroit utile. Par
exemple sur ma distribution debian de Linux, je l'ai copié dans le
répertoire /lib/modules/1.2.13/fs
et j'ai créé un lien symbolique dans
le répertoire /etc/modules
de manière à ce qu'il soit automatiquement
chargé lors du boot de Linux. Si vous utilisez d'autres distributions,
vous aurez à trouver où les modules sont généralement placés et copier
le fichier ncpfs.o
à cet endroit, ou sinon, copiez-le dans le
répertoire /etc
. Utilisez la commande suivante afin de charger le
modules en mémoire manuellement :
# insmod ncpfs.o
Si vous avez l'intention d'utiliser une version de noyau 1.3.53 vous devez être averti que le support ncpfs inclus ne fonctionne pas. Vous devrez utiliser une version 1.3.54 ou une version plus récente.
Dans ce dernier cas vous n'aurez qu'à répondre oui (Y
)
à la question suivante
lors de la configuration de la compilation :
...
...
The IPX protocol?
...
...
NCP filesystem support (to mount NetWare volumes)?
...
...
Vous n'aurez ensuite qu'a suivre les instructions déjà données pour la
compilation des noyaux 1.2.*
afin de créer les outils IPX. Il vous
faudra cependant modifier le Makefile
. La modification à
apporter est expliquée
dans le fichier mais, en gros, vous devrez opérer les changements suivants :
# SUBDIRS += kernel-1.2/src
# INCLUDES = -I$(TOPDIR)/kernel-1.2
Ces deux définitions ne sont nécessaires que pour la compilation des noyaux
1.2.*
.
Deux moyens sont possibles pour configurer ceux-ci. Vous pouvez tout faire manuellement ou vous pouvez laisser le logiciel faire par lui-même un choix au niveau des paramètres. La plupart des méthodes d'installation automatiques fonctionnent bien, mais il s'avère que, dans certains cas, celles-ci ne conviennent pas. Dans ce cas, vous devrez vous reporter à la section ''les outils IPX'' que vous trouverez par la suite, afin de configurer ces logiciels correctement. Voici donc la procédure à adopter lors d'une installation automatique :
# ipx_configure --auto_interface=on --auto_primary=on
Maintenant votre réseau IPX est configuré. Vous pouvez le tester avec la commande slist. Si tout fonctionne correctement, elle vous renverra la liste de tous les serveurs de fichiers Novell de votre réseau:
# slistSi la commande slist affiche un message du type :
ncp_connect: Invalid argument
, cela signifie que votre noyau ne supporte pas IPX. Vérifiez que vous
avez démarré votre ordinateur avec le noyau approprié.
Si la commande slist ne
renvoie pas la liste de tous les serveurs de fichiers, vous devrez utiliser la
méthode de configuration manuelle.
Si votre logiciel réseau IPX fonctionne correctement, vous devriez pouvoir monter un volume du serveur de fichiers dans votre système de fichiers Linux. La commande ncpmount est utilisée à ces fins et nécessite que vous spécifiez au moins les informations suivantes:
guest
du serveur de
fichiers ACCT_FS01
et que ce compte ne possède pas de mot de passe, dans le
répertoire /mnt/Accounts
, la commande ressemblera à :
# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -nNotez que l'utilisation de l'option
-n
indique qu'aucun mot de passe
n'est nécessaire pour se loger. Le même login avec le mot de
passe secret
ressemblera à :
# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secretSi vous ne spécifiez ni l'option
-n
ni l'option -P
,
le système vous demandera un mot de passe.
Si le montage est réussi, vous pourrez accéder aux volumes auxquels l'utilisateur que vous avez spécifié a accès. Cet accès se fait de manière transparente comme si le volume se trouvait directement dans le répertoire spécifié lors du montage. Vous devez être capable de naviguer au travers de répertoire de ce volume et d'y trouver des fichiers. Comme NCP ne fournit pas d'identificateur d'utilisateur (uid) ni d'identificateur de groupe (gid) pour les fichiers, tous les fichiers auront les permissions données au répertoire de montage. Vous devrez garder ce point à l'esprit lorsque vous partagerez le volume monté avec des utilisateurs de votre système Linux.
Vous pouvez maintenant procéder à un test d'impression en utilisant la commande nprint. Celle-ci vous permet d'imprimer un fichier dans une queue d'impression Netware. La commande pqlist vous permet de lister les queues d'impression disponibles sur le serveur Netware. Ces deux commandes nécessitent que vous fournissiez un nom de compte ainsi que la mot de passe qui lui est associé. Ainsi pour plus de facilité il est conseillé de créer des fichiers shell-script afin de vous rendre la tache plus simple. Ainsi on peut formuler l'exemple suivant pour l'utilisation de ces deux commandes :
# pqlist -S ACCT_FS01 -U guest -n
# nprint -S ACCT_FS01 -q LASER -U guest -n filename.txt
La procédure de login est similaire à celle utilisée pour la commande
ncpmount. Cet exemple sous-entend que le serveur de fichiers
ACCT_FS01 possède
un compte guest
pour lequel il n'y a pas de mot de passe, une file
d'impression appelée LASER et que guest
a le droit d'imprimer sur cette file d'attente.
Si vous avez besoin de monter de manière permanente vos partitions
ncp, vous aurez à mettre les commandes de configuration ci-dessus dans vos
fichiers rc de manière à ce que le montage soit opéré à chaque démarrage de Linux.
Je vous recommande de les placer dans le fichier /etc/rc.local
en
l'occurrence. Pour ma part je les ai placés dans le fichier
nommé NetWare
de mon répertoire /etc/init.d
et j'ai créé le lien symbolique approprié dans
mon répertoire /etc/rc2.d
afin qu'il soit lancé. Vous devrez utiliser un script
du type suivant :
#
# Demarrer le systeme de fichier NCP
/sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o
# Configurer le reseau IPX
ipx_configure --auto_interface=on --auto_primary=on
# Acceder au volume reserve a l'utilisateur guest sur le serveur de fichier
ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
Il existe un autre moyen de configurer les montages NCP. Cela se
fait au moyen du fichier $HOME/.nwclient
. Ce fichier
contient les informations spécifiques à l'utilisateur ou temporaires qui seront
appliquées lors d'un montage NCP. Vous pourrez
ainsi les monter sans avoir à spécifier les paramètres à chaque fois.
Le format de ce fichier est similaire au suivant :
# Le premier parametre est le 'serveur prefere'
# utilise meme si vous ne specifie pas de serveur lors du
# lancement du script.
#
# L'utilisateur TERRY se logeant sur le serveur de fichiers DOCS_FS01
# avec le mode de passe 'password'
DOCS_FS01/TERRY password
#
# Login Guest sur le serveur de fichiers ACCT_FS01 sans mode de passe.
ACCT_FS01/GUEST -
Vous pourrez, par la suite, utiliser :
$ ncpmount /home/terry/docs
afin de monter la partition DOCS_FS1
avec le login de
TERRY
sous le répertoire /home/terry/docs
.
Vous remarquerez que cette commande a été
choisie car aucun serveur de fichiers n'a été spécifié dans la commande de
montage. Si la commande suivante avait été utilisée :
$ ncpmount -S ACCT_FS01 /home/terry/docs
vous seriez entré sur le serveur de fichiers ACCT_FS01
avec le compte
GUEST
.
Note : Pour que ce mécanisme fonctionne, il faut que la permission de
$HOME/.nwclient
soit de 0600
, vous devrez utiliser la commande suivante :
$ chmod 0600 $HOME/.nwclient
Si des utilisateurs non-administrateurs ont la permission d'utiliser ce mécanisme, la commande ncpmount doit utiliser un Set Userid Root, vous aurez donc à donner ces permissions :
# chmod 4755 ncpmount
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre