8. Configurer votre machine Linux en client NCP

Contenu de cette section

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>.

8.1 Comment récupérer ncpfs

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

8.2 Compiler ncpfs pour les noyaux 1.2.*

Compiler un noyau Linux avec les supports d'Ethernet et IPX.

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.

Décompresser les programmes ncpfs :

        # cd /usr/src
        # tar xvfz ncpfs-0.9.tgz

Compiler les outils ncpfs :

Le logiciel doit se compiler proprement sans qu'une configuration ne soit nécessaire. :

        # make

Copier les outils IPX à un endroit utile de votre arborescence :

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

Copier le module npfs.o à un endroit aproprié :

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
        

8.3 Compiler ncpfs pour des noyaux 1.3.54 et supérieurs

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.*.

8.4 Configurer et utiliser ncpfs

Configurer les logiciels de réseau IPX

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

Tester la configuration

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:

        # slist
Si 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.

Monter un volume Novell(tm)

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:

  1. Le nom du serveur de fichiers
  2. L'identificateur de login du serveur de fichiers. Dans le cas où il a un mot de passe, vous devrez aussi le donner à cette commande.
  3. L'endroit où vous voulez que le système de fichiers du serveur Novell soit monté dans votre système de fichiers.
Par exemple si on veut monter le volume du compte 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 -n
Notez 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 secret
Si vous ne spécifiez ni l'option -n ni l'option -P, le système vous demandera un mot de passe.

Vérifier un montage de volume.

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.

Test d'impression

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.

Configurer le montage automatique des volumes ncp

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