Ce billet fait suite à une demande que j’ai effectué sur Mathrice (réseau d’informaticiens des laboratoires de mathématiques) dans le but de monter un serveur d’impression multi-plateforme (WIndows, MAC OS X et Linux). Ce serveur a été monté sur un LVM dans une domU Xen sour Debian Etch.
La première chose à faire est d’installer les packages qui vont bien :
apt-get install samba samba-common cupsys cups-pdf cupsys-client cupsys-common libcupsimage2 libcupsys2 libcupsys2-dev
La configuration de cups et samba sont largement couverts par des howto très bien fait. Nous allons considérer que vous avez déclaré les imprimantes dans cups et que samba tourne.
Dans le cupsd.conf :
mime.convs:
application/octet-stream application/vnd.cups-raw 0 -
mime.types:
application/octet-stream
Dans le smb.conf, il faut créer les partages suivants :
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
public = yes
printable = yes
writable = no
guest ok = yes
printer admin = root
[print$]
comment = Printer Drivers
path = /usr/share/cups/drivers
public = yes
browseable = yes
read only = yes
guest ok = yes
write list = root
Au niveau sécurité, je souhaite que ce serveur soit accessible anonymement.
Dans le smb.conf :
[global]
netbios name = cups
server string = %h server
load printers = yes
printing = cups
printcap = cups
printcap name = cups
cups server = fqdn serveur cups
encrypt passwords = true
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
security = share
guest account = nobody
La touche finale est de rendre les imprimantes installables en direct depuis n’importe quel OS en passant par le driver générique PS des différents systèmes.
Récupération et compilation du driver PS compatible CUPS pour Windows :
wget _url_/cups-windows-6.0-source.tar.gz
tar -xvzf cups-windows-6.0-source.tar.gz
Ensuite “make install” dans le répertoire décompressée.
On va installer les drivers dans “/usr/share/cups/drivers” (section [print$] du smb.conf) en y copiant le contenu du répertoire “i386″ de l’archive.
Enfin, on peut exporter les imprimantes depuis cups vers samba :
cupsaddsmb -H localhost -U root -a -v
Note : il faut positionner le paramètre security à user dans la section [global] du smb.conf, sinon on ne pourra pas authentifier l’utilisateur administrateur (ici root) de samba.
A ce moment tout est OK côté serveur. Pour les clients windows un clic droit puis connexion sur l’imprimante suffit. Pour les divers cliquodromes Linux / Mac il faut effectuer une connexion anonyme sur le serveur et utiliser le driver PS Generic.
Pour tester l’accès anonyme au serveur samba : smbclient -NL fqdn_du_serveur doit lister les imprimantes partagées.