Page suivante Page précédente Table des matières
3. Encore plus d'aventures avec SAMBA
Par Dave Nelson
Si vous n'avez pas mis en réseau vos ordinateurs d'entreprises/privés, les prix éthernet sont maintenant si bas que vous ne pouvez plus vous permettre de ne pas le faire! J'ai récemment installé un réseau local de trois postes, comprenant mon ordinateur avec double démarrage Linux/win95 (de nom Dave), l'ordinateur de ma femme sous WfW 3.11 (appelé Kathy) et mon portable sous Linux/Win95. Nous partageons des fichiers entre les trois et imprimons sur la laser connectée à Dave par windows.
Le protocole SMB (Server Message Blocks) fais tout cela par IP. SMB/IP est inclu dans Win95 et WfW; Linux utilise le programme Samba pour parler le SMB. Que Dave soit démarré en Linux ou Win95 et apparaisse identique pour Kathy, constituait un défi particulier. Cette technique pourrait aussi être utile si vous passez d'un serveur Windows à un serveur Linux, et que vous ne vouliez pas refaire la configuration sur chaque poste client. Tous les logiciels sont gratuits, une fois que vous avez le système d'exploitation. Le coût total de mon matériel était inférieur à 100 dollars, incluant un hub 10 base T 5 ports, les cartes réseau, et les câbles en paire torsadée.
L'article de John Fisk sur Samba dans le numéro 20 de LG était une excellente introduction à Samba. Je m'en suis servi pour commencer. Puis j'ai ajouté les impressions de windows vers linux, résolu quelques problèmes de permissions, et imaginé comment faire paraître, de manière identique, Dave à Kathy, que Dave soit démarré en Linux ou en Win95. Je suis sûr que ce que j'ai fait peut être amélioré -- je suis novice en Samba et simplement un pratiquant en Linux, mais ça marche. Si vous vous inquiétez pour la sécurité, vous pouvez ajouter des mots de passe. Entre ma femme et moi, la sécurité n'est pas un problème ;-)
Un exemple de la puissance de Samba : ma femme utilise Quicken sur Kathy sous Windows. Elle utilise de façon transparente les fichiers de données Quicken stockés sur une partition DOS sur Dave qui est sous Linux. Elle imprime, de façon transparente, sous Quicken sur l'imprimante laser de Dave. Elle n'a pas à changer de configuration sur Kathy quand je bascule de Linux à Win95. Et les paramètres de configuration sur Dave sont pris en compte automatiquement au démarrage. La vraie vie !
Voici comment j'ai fait :
J'utilise System Commander pour choisir au démarrage (sur Dave) soit Linux, soit Win95. J'ai installé la partie réseau sur chacun des systèmes d'exploitation, en utilisant la même adresse IP. J'ai donné comme nom de groupe SMB "home". L'article de Fisk montre comment faire la majeure partie de tout cela. Ma version de Linux (Caldera) inclue l'installation de Samba. Il se peut que votre version le fasse aussi. Samba s'exécute avec deux démons : smbd et nmbd. Vous pouvez les trouver en tapant :
which smbd; which nmbdS'ils sont installés, ils seront probablement dans /usr/sbin. Sinon les installer. Linux de Caldera les lance au démarrage du système en exécutant le script /etc/rc.d/init.d/smb. Il est à noter que si vous changez le fichier de configuration de Samba, il n'est pas nécessaire de redémarrer (au moins avec Caldera ou Red Hat). Simplement utiliser la commande :
/etc/rc.d/init.d/smb stop /etc/rc.d/init.d/smb startet Samba sera reconfiguré. L'article de Fisk nous fait remarquer que Samba peut être démarré par init.d. Vous ne voulez pas démarrer Samba deux fois, alors vérifier vos configurations après avoir lu Fisk.
J'ai créé le fichier /etc/smb.conf suivant sur Dave :
[global] workgroup = home printing = bsd printcap name = /etc/printcap load printers = yes guest account = dos [printers] comment = All Printers ; print command = cp %s /tmp/tmp.print print command = lpr -Pepson -b %s browseable = yes printable = yes public = yes writable = no create mode = 0700 [d] comment = DOS Disk d: path = /mnt/diskd/ public = yes writable = yes printable = no guest ok = yes
La section [global] de smb.conf indique à Samba que mon groupe de travail est "home", le fichier de description de l'imprimante est /etc/printcap, et l'utilisateur (ou le compte invité guest) pour les services dos est "dos". Pour créer l'utilisateur "dos" lancer le programme "adduser dos" ou éditez simplement le fichier /etc/passwd. J'ai eu à éditer /etc/passwd après avoir exécuté adduser pour que cela marche bien. Mon fichier /etc/passwd a la ligne suivante pour l'utilisateur dos:
dos::501:500:fichiers DOS:/home/dos:/bin/falseDans l'ordre des champs cette ligne indique que l'utilisateur est dos; dos n'a pas besoin de mot de passe; son numéro utilisateur est 501; son numéro de groupe est 500; il est appelé fichiers DOS (ce champ est juste un commentaire); son répertoire personnel est /home/dos; et il n'a aucun privilège shell. Le numéro utilisateur et de groupe a été donné par adduser; ils n'ont pas à être 501,500. Pour tester que l'utilisateur dos est bien mis en place, changer /bin/false pour /bin/bash et connectez vous en tant que dos. Vous ne devriez pas avoir besoin de mot de passe et devriez avoir un prompt du shell bash. Puis remettez /bin/false pour fermer le trou de sécurité. Quand j'ai lancé adduser, j'ai dit que dos appartenait au groupe DOS, et qu'il avait ajouté le groupe DOS dans le fichier /etc/group avec la ligne :
DOS::500:La section [printer] configure l'impression pour DOS. La ligne commentée "print command = cp %s /tmp/tmp.print" est une excellente manière de débugger les impressions Samba. J'ai trouvé cela dans le fichier d'aide "Printing.txt" qui est fourni avec le logiciel Samba. Si cette ligne n'est plus commentée et que la suivante l'est, le fichier d'impression de Kathy apparaît sur Dave dans /tmp/tmp.print plutôt que d'être envoyé à l'imprimante. Vous pouvez vérifier s'il est bien arrivé et essayer de l'imprimer en utilisant lpr. La ligne "print command = lpr -Pepson -b %s" fait la véritable impression. L'option "-Pepson" indique d'utiliser la description d'imprimante "epson" dans /etc/printcap. Mon imprimante laser sur Dave s'appelle "epson" sous Win95, et Kathy s'attend à trouver le même nom sous Linux. L'option "-b" indique à lpr d'accepter le fichier binaire que Windows produit. Sinon lpr se bloque parce que par défaut il s'attend à des fichiers ASCII, et l'imprimante ne fais rien. (Il est possible que cette solution soit la même que celle appelée impression en mode brut (raw mode printing) ?) Le paramètre "%s" représente le nom du fichier envoyé à Samba.
J'ai créé une section dans /etc/printcap pour l'imprimante epson :
epson:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :lp=/dev/lp1:\ :sh:
A noter, il n'y a pas de ligne "if=", c-à-d pas de filtre d'entrée qui traiterait le fichier d'impression binaire. Mon imprimante est une Epson 7000, un simple clone de HPIIp, donc elle s'attend à la convention du DOS des CRLF en fin de ligne. Si j'essayais d'utiliser cette description d'imprimante lors d'impression sous linux , qui n'envoie que le standard Unix LF, je verrais l'ennuyeux effet d'escalier.
La section [d] de smb.conf décrit les partages de disques dont Kathy s'attend à ce qu'ils s'appellent "d", le même que le disque D: sous DOS. Je le monte en /mnt/diskd sous Linux.
Je suis tombé sur un problème énigmatique avec les permissions utilisateurs (probablement aussi bien à cause de mon ignorance sur les pratiques Unix standards que quelque chose de bizarre à propos des type de fichiers msdos.) L'utilisateur dos a besoin des privilèges écriture sur le répertoire /mnt/diskd et tous ses fichiers. Mais je n'ai pu le faire en utilisant chmod, chown et chgrp. Dès que j'ai voulu redémarrer et monter les systèmes de fichiers, /mnt/diskd revient aux privilèges suivant:
drwxr-xr-x 44 root root 18432 Dec 31 1969 diskd/Le "w" manquant pour "le groupe" et "les autres" m'a bloqué puisque le répertoire appartenait à root.
J'ai corrigé cela en éditant la ligne /etc/fstab pour que /mnt/diskd soit:
/dev/hda5 /mnt/diskd msdos user,noauto 0 0Le champ important est user,noauto, qui signifie : peut être monté par un utilisateur et ne se monte pas automatiquement au démarrage. Puis j'ai ajouté une ligne dans /etc/rc.d/rc.local pour monter diskd en tant qu'utilisateur dos:
mount -ouid=501,gid=500 /mnt/diskd
Cela dit de monter /mnt/diskd avec l'option (-o) de l'utilisateur d'id 501 et de groupe id 500, qui correspond à l'utilisateur dos. Si votre adduser a donné à dos un uid et un gid différent, simplement changer la ligne de façon appropriée. Si vous avez des problèmes pour monter diskd au démarrage, essayez de vous connecter dos (après avoir changé la ligne pour dos en /bin/bash dans /etc/passwd) et monter le disque à la main. Lorsque cela fonctionne, revenez au point précédent et adaptez la ligne dans rc.local.
Comme l'écrit John Frisk à propos de Linux, il aiguise votre aptitude à résoudre les problèmes. si vous avez des problèmes, regardez dans les fichiers de traces et messages de Samba. Sur mon système les fichiers de traces sont dans /var/log/smbd et /var/log/nmbd. Les fichiers de messages sont dans le répertoire var/samba.
C'est tout ce que j'ai eu à faire pour configurer Samba. La documentation Samba montre bon nombre de configurations différentes. Au départ je les trouvais toutes intimidantes, mais petit à petit, un problème à la fois, les choses devinrent plus facile. J'espère que cet article vous aidera à commencer. Qui a besoin de serveurs NT de toute façon ?
----------------------------------------------------------------
Copyright © 1998, Dave Nelson Publié dans le numéro 24 de la Linux Gazette, janvier 1998 Adaptation française : Frédéric Gacquer (Neuronnexion gacquer@neuronnexion.fr)
Page suivante Page précédente Table des matières