Association Bordelaise des Utilisateurs de Logiciels libres

Accueil ›› Utilisation de logiciels libres ›› Réseau ›› Un client Linux sur un réseau Novell

Un client Linux sur un réseau Novell

Posté le mardi 30 septembre 2003 par MIB

Longtemps je me suis levé de bonne heure pour essayer d’éviter d’avoir à rebooter sous Windows pour accéder aux fichiers d’un serveur Novell. Finalement, même en ne connaissant rien à Novell, ce n’est pas très compliqué.

Petite doc pour intégrer un client Linux sur un serveur Novell

A priori mon problème avec Novell, c’est que je ne sais pas du tout comment ça marche, et encore moins comment est organisé le réseau Novell auquel je veux me raccorder. Tout ce que je sais, c’est que ça marche avec Windows. On va y arriver quand même.

Sommaire :

1. Novell, dis-moi qui je suis ?

2. Que faut-il installer sur mon poste Linux ?

3. Comment faire un montage "à la main" ?

4. Avec mount

5. Utiliser /etc/fstab

*****************

1. Novell, dis-moi qui je suis ?

Pour se connecter au réseau Novell depuis Windows, il faut lui présenter un nom d’utilisateur et un mot de passe dans une bannière. On voit alors s’afficher des tas de trucs dans une fenêtre, qui disparait bien vite. Dommage, parce qu’il y a des choses utiles à voir dedans.

Première chose à faire : revenir au niveau de la bannière Novell, passer dans les options avancées, et cliquer sur la case qui indique qu’on ne veut pas que la fenêtre se ferme.

On donne son nom et son mot de passe, et là on voit
- qu’on s’est vu attribuer un nom à rallonge, genre billaud.machin.truc.chose
- que les "partages" auxquels j’ai accès sont sur un serveur que j’appellerais "pernovel"
- que l’interface fonctionne en 802.2

(j’ai changé les noms, pour protéger l’anonymat des innocents)

C’est tout ce dont on a besoin de savoir.

2. Que faut-il installer sur mon poste Linux ?

- un noyau qui supporte IPX, eventuellement sous forme de modules
- sur Debian, packages ipx et ncpfs

Je ne me rappelle plus ce que j’ai bien pu répondre à l’installation lors de la configuration des packages. Probablement que je souhaitais qu’IPX s’installe sur la première interface que ça marche en 802.2, et que je ne souhaitais pas avoir de "réseau interne IPX". A vérifier.

En tout cas, dans le fichier /etc/ipx.conf, il y a ceci

# this attempts auto-configuration
IPX_AUTO_PRIMARY=on
IPX_AUTO_INTERFACE=on
IPX_CONFIGURED=yes
# for manual configuration, set IPX_CONFIGURED=yes,
# and set the options below for your system
IPX_DEVICE=eth0
IPX_FRAME=802.2                 # either 802.2, 802.3 or EtherII
IPX_INTERNAL_NET=no
IPX_NETNUM=0                    # your internal network number
# routing options
IPX_SERVER_ROUTE=no             # setup route to external server?
IPX_SERVER_NETNUM=0             # your server's internal network number
IPX_SERVER_NODENUM=000000000000         # your server's node number

Et on voit par ifconfig qu’IPX plait bien à l’interface eth0 :

# /sbin/ifconfig eth0
eth0      Lien encap:Ethernet  HWaddr 00:01:02:F2:01:37  
         inet adr:172.17.21.5  Bcast:172.17.255.255  Masque:255.255.0.0
         adr IPX/Ethernet II:00000003:000102F20137
         adr IPX/Ethernet SNAP:FFFF0452:000102F20137
         adr IPX/Ethernet 802.2:00000002:000102F20137
         adr IPX/Ethernet 802.3:8137FFFF:000102F20137
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          ...

3. Comment faire un montage "à la main" ?

Pas besoin d’être root pour faire un montage. Je me crée un répertoire point de montage :

       mkdir ~/novell

Et j’y monte l’arborescence Novell (version longue)

ncpmount -S pernovel  -A pernovel -U billaud.machin.truc.chose ~/novell

et puisqu’on me demande mon mot de passe Novell, je le donne. Pas de protestations, ça a l’air de marcher. On regarde dans /novell :

billaud@benoit:~$ ls -l novell
total 1
drwxr-xr-x    1 billaud  billaud       512 jan  1  1986 USERS
drwxr-xr-x    1 billaud  billaud       512 jan  1  1986 SYS

et on y voit deux "volumes" USERS et SYS. Ce sont des répertoires, en vous baladant un peu vous retrouverez vos fichiers perso.

Les options de ncpmount :

- S : le serveur de fichiers = pernovel
- U : mon "descripteur" perso sur ce serveur
- A : le serveur de noms novell  /novell le point de montage

L’option -A est obligatoire ici, le manuel en dit :

When you are mounting volumes from NetWare 5 server over UDP, you must specify dns name of server here and logical server name in -S. This name is used to switch ncpmount into UDP mode and to specify server to connect.

Peut-être que sur votre réseau l’option -A n’est pas nécessaire, ou que c’est une autre machine qui joue le rôle de serveur de noms Novell. Le mieux est de demander à votre administrateur Novell, si vous n’y arrivez pas.

Pour démonter :

       ncpumount ~/novell

Un petit peu mieux :

Dans mon fichier .nwclient, je mets la ligne

pernovel/billaud.truc.machin.chose xyz123

et je le protège par chmod 600 billaud/.nwclient, d’une part parce qu’il y a mon mot de passe en clair dedans, d’autre part parce que le fichier est ignoré si il n’est pas correctement protégé.

Maintenant je peux faire

       ncpmount -A pernovel  ~/novell

sans donner le mot de passe, et meme

       ncpmount -A pernovel -V USERS ~/novell

pour ne monter que le "volume" USERS

4. Avec mount

Au lieu de "ncpmount", on peut utiliser "mount -t ncp". Vous me voyez venir, c’est un pas vers l’utilisation de /etc/fstab

Je me suis fait un petit script de montage, parce qu’il y a des options utiles à ajouter :
- le mot de passe est stocké dans un fichier
- le montage, fait par root, monte le volume novell à mon nom
- les noms de fichiers accentués sont convertis

En utilisant la commande mount :

#
# script de montage Novell
# m billaud, sept 2003
#
NWSERVER=pernovel                     # le serveur
NWUSER=billaud.truc.machin.chose      # l'utilisateur Novell
NWDNS=pernovel                        # serveur DNS novell
NWPASSWORD=/home/billaud/.nwpassword  # contient mot de passe
MOUNTPOINT=/home/billaud/novell       # point de montage

OPTIONS=ipserver=$NWDNS
OPTIONS=$OPTIONS,volume=USERS              # on ne veut que ce volume
OPTIONS=$OPTIONS,uid=billaud,gid=billaud   # utilisateur unix
OPTIONS=$OPTIONS,iocharset=iso8859-1       # conversion de caractères
OPTIONS=$OPTIONS,passwdfile=$NWPASSWORD

mount -t ncp $NWSERVER/$NWUSER $MOUNTPOINT -o $OPTIONS

# fin

Le fichier mot de passe billaud/.nwpassword contient une ligne avec l’indication de ce qu’on veur monter, le mot de passe et des commentaires.

pernovel/billaud.truc.machin.chose:xyz123:des commentaires

5. Utiliser /etc/fstab

Pour /etc/fstab, des petites complications

** on pouvait bêtement penser qu’il suffisait d’ajouter la ligne suivante dans /etc/fstab

pernovel/billaud.truc.machin.chose /home/billaud/novell ncp
defaults,ipserver=pernovel,volume=users,uid=billaud,gid=billaud,
iocharset=iso8859-1,passwdfile=/hoe/billaud/.nwpassword

(je l’ai coupée en 3 pour que ça rentre)

Mais ca marche pas, au moment du montage :

- la couche réseau TCP/IP n’est pas là donc on ne peut pas contacter le DNS pour connaître l’adresse IP de pernovel (contournable en l’ajoutant à /etc/hosts)
- la couche IPX n’est pas chargée.

Damned !

** Seconde idée : on ajoute les options user,noauto pour que l’utilisateur se le monte lui-même quand il veut. Mais les farceurs qui ont écrit ncpfs n’ont pas fait attention et ont aussi une option user= pour le montage.

Gasp !

** troisième idée : On ne met que noauto, et on ajoute un script S26ncp dans /etc/rc2.d contenant

#!/bin/sh -e
#
# ncp

case "$1" in
start)
       printf "Mounting Novell:"
       mount /home/billaud/novell
       printf ".\n"
       ;;
stop)
       printf "Unmounting novell"
       umount /home/billaud/novell
       printf ".\n"
       ;;
restart)
       $0 stop
       sleep 1
       $0 start
       ;;
*)
       printf "Usage: $0 {start|stop|restart)\n" >&2
       exit 1
       ;;
esac

Le S26 est après le démarrage d’IPX (du coté du démarrage du serveur NFS)

Pour faire bien, il faudrait faire un truc avec des grep et des cut pour aller chercher dans /etc/fstab les lignes qui concernent ncp, mais bon, le jour où on en aura besoin.

Une autre solution, pour faire les choses en grand :

On confie le montage des trucs NCP à un automonteur, par exemple avec point de montage /novell. Comme ça la couche IPX est démarrée avant qu’on tente de faire des montages NCP.

Michel Billaud

Répondre à cet article