Mise en place d'imprimantes
réseau sous Samba
Par Régis Gras et Marc Villegas
Regis.Gras@hmg.inpg.fr
Admettons que la machine qui supporte samba se nomme SAMBAPDC et soit
une machine Linux.
1) Pre requis
1-1) Avoir installe les imprimantes sur la machine SAMBAPDC
On aura donc un fichier /etc/printcap contenant par exemple
........................
#/etc/printcap
#
# Please don't edit this file directly unless you know what you are
doing!
# Be warned that the control-panel printtool requires a very strict
format!
# Look at the printcap(5) man page for more info.
#
# This file can be edited with the printtool in the control-panel.
#
# Imprimante hp4050
#
hp4050:\
:sd=/var/spool/lpd/hp4050:\
:lp=:\
:mx#0:\
:sh=:\
:rm=autre_machine:\
:rp=hp4050:
#
# hp4050 en mode raw, pour Samba
#
rawhp4050:\
:sd=/var/spool/lpd/rawhp4050:\
:lp=:\
:mx#0:\
:sh=:\
:rm=autre_machine:\
:rp=rawhp4050:
Signification:
*) L'imprimante hp4050 est geree, au final, par une machine nommee
"autre_machine"
*) "autre_machine" met en place des filtres qui, outre des
verifications sur "l'imprimabilite" du fichier, font la transformation:
Fichier_a_imprimer ====> Fichier de type Postscript
C'est le role de la queue hp4050
*) Dans son role de gestionnaire d'impression, pour Windows, les
fichiers qui vont arriver a SAMBAPDC, seront deja passes par les
drivers WINDOWS. Ils sont en Postcript avec une en tete PCL ou en
n'importe quel autre langage, dependant de l'imprimante. Ils sont prets
a etre imprimes, et ce n'est PAS la peine de les repasser a travers un
filtre. D'ou la creation d'une seconde queue "rawhp4050" pour la meme
imprimante hp4050, queue "raw", c'est a dire qui va transferer a la
hp4050 les informations telles qu'elles proviennent du driver Windows.
1-2) Avoir mis en place quelques preliminaires.
Admettons que samba est ete installe dans /usr/local/samba
1-2-1) Avoir cree une entree root dans smbpasswd, root etant le compte
de l'administrateur de la machine linux.
cd /usr/local/samba/bin
./smbpasswd -a root
Password a rentrer 2 fois.
Note 1: Ce n'est pas forcement le meme que le password root de la
machine linux qui execute samba.
Note 2: Ce n'est pas forcement utile pour la gestion des imprimantes
mais plutot pour le fonctionnement general de samba, au moins en ce
concerne la version 2-2.0x, objet de ce document.
1-2-2) Avoir cree un nouveau groupe sambaadm
Ce groupe est destine a contenir les administrateurs du domaine.
/usr/sbin/groupadd -g 1100 sambaadm
Evidement le GID 1100 est completement arbitraire.
1-2-3) Avoir fait "adherer" root a ce groupe
Comment ? En editant le fichier /etc/group "a la main" avec un editeur
de texte quelconque.
Pourquoi ? Ca peut servir dans le cas ou Samba verifierait que root
fait partie du groupe des administrateurs du domaine
1-2-4) Avoir cree un utilisateur ntadmin, qui sera l'administrateur du
domaine
/usr/sbin/useradd -g 1100 -c "Administrateur du domaine" ntadmin
1-2-5) Avoir cree une entree ntadmin dans smbpasswd
cd /usr/local/samba/bin; ./smbpasswd -a ntadmin
Passwd a rentrer deux fois.
1-2-6) Avoir cree un compte unix (linux dans notre cas) pour CHAQUE
machine du domaine.
/usr/sbin/useradd -d /dev/null -s /bin/false pc_wnt1$
Note: Repertoire de login /dev/null
Shell de login /bin/false
Ne pas oublier le "$" en fin de nom
1-2-7) Avoir cree une entree dans smbpasswd pour CHAQUE machine du
domaine
cd /usr/local/samba/bin;./smbpasswd -a -m pc_wnt1
Note: Ne pas mettre de "$" en fin de nom, ca sera fait automatiquement.
1-2-8) Creer un repertoire /usr/local/samba/printers
1-2-9) Creer un repertoire /usr/local/samba/printers/W32X86
Note: Le repertoire W32X86 est specifique a Windows NT4
Pour Windows95/98, il faudrait creer un repertoire WIN40
A noter que lors de la premiere utilisation, Samba creera
/usr/local/samba/printers/W32X86/2
1-2-10) Mettre les "bons droits" sur ces repertoires.
cd /usr/local/samba
chmod 755 printers
chown root.sambaadm printers
cd printers
chmod -R 750 *
chgrp -R ntadmin.sambaadm *
1-2-11) Declarer "ntadmin" et "root" qui sont dans le groupe unix
"sambaadm" comme administrateurs du domaine et administrateur des
imprimantes.
Ce qui se traduit dans smb.conf par:
domain admin group = @sambaadm
printer admin = @sambaadm
et
[print$]
path = /usr/local/samba/printers
browseable = yes
read only = yes
write list = @sambaadm
2) Gestion des imprimantes en tant qu'administrateur.
2-1) Philosophie generale.
Pour pouvoitr etre utilisee, il faut que le drivers de l'imprimante
soit installe LOCALEMENT. C'est a dire sur toute les machines du
domaine.
Les drivers des imprimantes sont sur la machine SAMBAPDC dans le
repertoire W32X86/2 (ou WIN40)
Un mecanisme est prevu pour les y installer quand ils n'y sont pas (Ne
serait ce que la premiere fois)
2-2) Pour installer une imprimante, dans tous les cas, on se loguera
sur la machine WNT
*) En tant qu'administrateur du domaine ou administrateur des
imprimantes ("ntadmin")
ou
*) En tant qu'administrateur local de la machine WNT.
2-3) Voisinage reseau
2-4) Clic sur SAMBAPDC
*) Si on s'est logue "administrateur local de la machine" Windows
demandera alors de donner un nom et un password pour acceder a la
machine SAMBAPDC
repondre root et donner le paswd declare dans smbpasswd
*) Si on s'est logue "administrateur du domaine" RIEN n'est demande.
c'est la facon la plus simple de faire la manip.
2-5) clic sur Imprimantes
Samba montre alors toutes les imprimantes qu'il connait.
2-6) clic DROIT sur l'imprimante a installer.
2-7) Proprietes
2-7-1) L'imprimante a DEJA un driver sur SAMBAPDC
Dans l'onglet "general" on a alors un choix de drivers, presents sur le
SAMBAPDC. Il ne reste plus qu'a en choisir un qui sera associe a
l'imprimante precedement selectionnee.
2-7-2) L'imprimante n'a PAS un driver sur SAMBAPDC
*) On a droit alors a un message d'erreur disant:
<< Device setting cannot be displayed. The driver for the
specified printer is not installed, only spooler properties will be
displayed. Do you want to install driver now ? >>
Ou le meme en francais ....
Aussi bizarre que cela puisse paraitre repondre NON. Bizarre, parce que
c'est bien finalement ce que l'on veut faire.
*) On a alors acces a la fenetre "Proprietes" de l'imprimante avec le
message
NO PRINTER DRIVER AVAILABLE FOR THIS PRINTER
*) Cliquer alors sur le bouton NEW DRIVER.
*) Installer alors le driver de l'imprimante comme on le fait de
maniere traditionnelle sous WNT4. ATTENTION, cependant:
C'est cette manip, qui, outre le fait qu'elle installera le driver de
l'imprimante sur la station locale, recopira le driver sur SAMBAPDC.
Les drivers sont ranges dans: /usr/local/samba/printers/W32X86/2
Il faut donc lui dire toujours, "Disquette fournie", car si on
selectionne un drivers dans la liste des drivers proposes, le driver
etant deja present sur la machine WNT, n'est pas recopie sur SAMBAPDC
2-8) L'installation est finie, se deloguer du compte adminstrateur.
3) Les imprimantes, vues de l'utilisateur.
Se loguer, en tant qu'utilisateur du domaine sur une WNT.
Pour acceder aux imprimantes, il suffit de faire (Une seule fois)
3-1) Voisnnage reseau
3-2) Cliquer sur SAMBAPDC
3-3) Cliquer sur une imprimante.
Windows demandera <<Voulez vous l'installer ?>>
Repondre OUI.
Et c'est tout ......