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 proposé 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
fichiers 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 sur votre
serveur de fichiers.
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).
Ce logiciel permet à Linux d'émuler une station de travail Novell normale pour ce qui concerne la partie fichiers. Un petit utilitaire d'impression est également inclus pour vous permettre d'imprimer dans les queues d'impression Novell (ceci est documenté plus loin dans la section client d'impression). Le paquetage ncpfs fonctionne avec les serveurs de fichier Novell version 3.x et supérieurs, il ne fonctionne pas avec les serveurs de fichier Novell version 2.x . Le client ncpfs ne fonctionne qu'avec les produits réellement compatibles Novell, mais malheureusement, certains produits qui se disent compatibles ne le sont pas suffisamment. Pour utiliser ncpfs avec Novell 4.x, il est préférable d'utiliser le serveur Novell en mode d'emulation de bindery. Le support de la NDS est un ajout très récent de ncpfs et est toujours en version bêta. De plus son utilisation peut être interdite dans votre pays en raison de l'inclusion de technologie soumise à brevet.
L'ensemble ncpfs a été développé afin d'être compilé avec les noyaux de
Linux version 1.2.13
ou plus récents que 1.3.71
(ce qui
inclut 2.x.x
). Si vous n'utilisez pas
un de ces noyaux vous devrez vous en procurer et l'utiliser.
Le
Kernel-HOWTO décrit comment faire cela en détail.
Vous pouvez vous procurer l'ensemble ncpfs par ftp anonyme sur le site
de Volker,
ftp.gwdg.de,
sur
metalab.unc.edu
ou sur un site miroir. La version à jour au moment où j'écris ces lignes est
ncpfs-2.0.11.tgz
ou ncpfs-2.2.0.tgz
pour le support de la NDS.
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 illustré :
... ... 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 terminée.
# cd /usr/src # tar xvfz ncpfs-2.0.11.tgz # cd ncpfs
Si vous avez l'intention d'utiliser kerneld pour charger automatiquement
le module noyau ncpfs, alors vous devez décommenter la ligne du
Makefile
qui fait référence à KERNELD
. Si vous n'êtes pas
certain de comprendre tout ce que cela signifie, vous devriez lire le
Kernel-HOWTO pour vous familiariser avec la configuration des
modules noyau.
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
.
Vous pouvez utiliser
# make install
pour installer les outils dans le choix de répertoires de Volker.
Si votre système est basé sur ELF, alors vous devrez taper ldconfig -v
pour vous assurer que la bibliothèque partagée est accessible.
Après la compilation d'un noyau 1.2.x
, vous trouverez aussi dans le
répertoire ncpfs/bin
le fichier ncpfs.o
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 ajouté ncpfs dans
le fichier /etc/modules
de manière à ce qu'il soit automatiquement
chargé lors du démarrage de Linux. Si vous utilisez d'autres distributions,
vous devrez 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
module en mémoire manuellement :
# insmod ncpfs.o
Pour la dernière version de ncpfs, vous devez utiliser un noyau 1.3.71 ou supérieur, ce qui inclut les noyaux 2.0.* .
Le code noyau de ncpfs a été inclus dans la distribution noyau standard,
ainsi vous n'aurez qu'à répondre oui (Y
)
à la question suivante
lors de la configuration de la compilation :
Networking options --->
...
...
<*> The IPX protocol
...
Filesystems --->
...
...
<*> NCP filesystem support (to mount NetWare volumes)
...
Vous devez suivre les instructions pour la compilation des noyaux 1.2.*
afin de créer les outils IPX, mais il n'y aura pas de module à installer.
Deux moyens sont possibles pour configurer ceux-ci. Vous pouvez tout faire manuellement ou vous pouvez laisser le logiciel déterminer lui-même ses paramètres en utilisant
# ipx_configure --auto_interface=on --auto_primary=onCela devrait fonctionner dans la plupart des situations, mais si ce n'est pas votre cas, lisez la section "les outils IPX" située plus loin dans ce document pour configurer manuellement les logiciels. Des problèmes ont été rapportés concernant cette utilisation au sein de réseaux contenant des clients Windows95.
Maintenant que votre réseau IPX est configuré, vous devriez être capable d'exécuter la commande slist qui 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é.
Au démarrage du système, vous devriez voir des messages concernant
"IPX" et "ncpfs".
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 :
Par exemple si l'on veut monter le serveur de fichiers ACCT_FS01
sous
l'identifiant guest
qui ne possède pas de mot de passe, dans le
répertoire /mnt/Accounts
, la commande devrait ressembler à :
# 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 loguer. 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 à tous les
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 des répertoires de ce volume et d'y trouver des fichiers.
Vous pouvez également utiliser l'option -V
pour monter un seul volume.
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, restreints par les droits de permissions sur le serveur Novell. Gardez ce point à l'esprit lorsque vous partagerez des montages avec des utilisateurs Linux.
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.
Si votre distribution ne fournit pas déjà un moyen de configurer IPX comme
le propose Debian, alors je vous recommande de les placer dans le fichier
/etc/rc.local
si vous en avez un.
Vous devrez utiliser un script du type suivant :
#
# Démarrer le systéme de fichiers NCP
/sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o
# Configurer le reseau IPX
ipx_configure --auto_interface=on --auto_primary=on
# Accéder au volume réservé à l'utilisateur guest sur le serveur de fichiers
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 qui seront
appliquées sur des montages NCP réguliers. Vous pourrez
ainsi les monter sans avoir à spécifier tous les paramètres à chaque fois.
Le format de ce fichier est assez simple :
# Le premier paramètre est le 'serveur préféré'
# utilisé même si vous ne spécifiez pas de serveur lors du
# lancement du script.
#
# L'utilisateur TERRY se loguant sur le serveur de fichiers DOCS_FS01
# avec le mot de passe 'password'
DOCS_FS01/TERRY password
#
# Login Guest sur le serveur de fichiers ACCT_FS01 sans mot 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
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-root 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
nsend est un utilitaire pour envoyer des messages à des utilisateurs Novell qui est également inclus dans le paquetage. Il s'utilise de la manière suivante :
# nsend pierre coucou ici
qui va envoyer le message "coucou ici" à un utilisateur "pierre" déjà logué
sur votre serveur de fichiers "primaire" (le premier qui apparaît dans votre
fichier .nwclient
). Vous pouvez spécifier un autre serveur de
fichiers avec la même syntaxe que la commande ncpumount.