Ce
tutoriel développe la mise en place d'un serveur d'impression
CUPS.
Ainsi que l'utilisation des imprimantes depuis des clients
Linux et Window$ par l'intermédiaire de Samba.
Installation
des packages
|
Sur
le serveur : |
Configuration
de CUPS
ATTENTION :
si vous voulez configurer des transactions CUPS sécurisées
(SSL) :
vous ne devez pas avoir Apache d'installé sur le
serveur CUPS à cause du port 443 (https) partagé
!
Sinon changez le port d'écoute de CUPS en 632 par
exemple. Pour accéder à l'interface web, il suffira
d'entrer l'adresse https://localhost:632
CUPS possède sont
propre serveur HTTP, voir la doc sur votre serveur pour plus d'info :
http://localhost:631/
Modifiez le fichier
/etc/cups/cupsd.conf :
#
#
Sample configuration file for the Common UNIX Printing System
(CUPS)
# scheduler.
#
# Copyright 1997-2005 by Easy Software
Products, all rights reserved.
#
# These coded instructions,
statements, and computer programs are the
# property of Easy
Software Products and are protected by Federal
# copyright law.
Distribution and use rights are outlined in the file
#
"LICENSE.txt" which should have been included with this
file. If
# this file is missing or damaged please contact Easy
Software Products
# at:
#
# Attn: CUPS Licensing
Information
# Easy Software Products
# 44141 Airport View
Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
#
Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW:
http://www.cups.org
#
###########################################################
#
#
This is the CUPS configuration file. If you are familiar with
#
Apache or any of the other popular web servers, we've followed the
#
same format. Any configuration variable used here has the same
#
semantics as the corresponding variable in Apache. If we need
#
different functionality then a different name is used to avoid
#
confusion...
#
###########################################################
########
########
Server Identity
########
#
# ServerName:
# La
directive ServerName indique le nom d'hôte qui doit être
envoyé
# aux clients. En standard, le nom du serveur est le
nom d'hôte.
#
# To set the default server used by
clients, see the client.conf file.
#
ServerName
srv7.alex.fr
#
# ServerAdmin:
# La directive
ServerAdmin identifie l'adresse de courriel de
# l'administrateur
du système. La valeur implicite est root@serveur,
# où
server est le nom du serveur.
#
ServerAdmin
root@alex.fr
########
######## Server
Options
########
#
# AccessLog:
# La directive
AccessLog donne le nom du fichier de suivi d'accès
#
("access log"). Si le chemin d'accès au fichier
n'est pas absolu,
# il est considéré comme relatif
au répertoire ServerRoot.
# Le fichier "access log"
est stocké dans le format "log" habituel
# et
peut aisément être utilisé par tout outil
d'analyse d'accès "web"
# pour générer
un rapport sur l'activité du serveur CUPS.
#
# Le nom du
serveur peut être inclus dans le nom du fichier en
#
utilisant %s dans le nom.
# AccessLog
/var/log/cups/access_log-%s
#
# Le nom spécial "syslog"
peut être utilisé pour envoyer les informations
#
d'accès au fichier de suivi système au lieu d'un simple
fichier texte.
# AccessLog syslog
#
# Le fichier de suivi
d'accès implicite est /var/log/cups/access_log.
#
AccessLog
/var/log/cups/access_log
#
# Classification:
# La
directive Classification fixe le niveau de classification sur le
#
serveur. Lorsque cette option est activée au moins une des
pages de
# garde est forcée à ce niveau et
l'information de classification est
# placée sur chaque
page imprimée. La valeur implicite est de n'avoir
# aucun
niveau de classification.
#
# The default is the empty
string.
#
#Classification classified
#Classification
confidential
#Classification secret
#Classification
topsecret
#Classification unclassified
#
#
ClassifyOverride:
# La directive ClassifyOverride indique si les
utilisateurs peuvent
# outrepasser le niveau de classification du
serveur ou non.
# Lorsque la classification du serveur est
activée, les utilisateurs
# peuvent changer la
classification en employant l'option job-sheets
# et peuvent
choisir de n'imprimer qu'une seule page de garde de
# sécurité
avant ou après le travail d'impression.
# Si l'option
job-sheets est positionnée à la valeur none alors le
#
niveau de classification implicite du serveur est utilisé.
#
#
The default is off.
#
ClassifyOverride off
#
#
DataDir:
# La directive DataDir fixe le répertoire à
employer pour les fichiers de données.
# By default
"/usr/share/cups".
#
DataDir /usr/share/cups
#
#
DefaultCharset:
# La directive DefaultCharset définit le
jeu de caractères à utiliser
# pour les connexions
avec les clients. Le jeu de caractère implicite
# est le
jeu utf-8 mais il est outrepassé par le jeu de caractères
#
associé à la langue indiquée par le client ou
par la directive
# DefaultLanguage.
#
# DefaultCharset
utf-8
# DefaultCharset iso-8859-1
# DefaultCharset
windows-1251
#
DefaultCharset notused
#
#
DefaultLanguage:
# La directive DefaultLanguage définit le
langage à utiliser pour les
# connexions avec les
clients.
# Régler la langue règle également
le jeu de caractères si un fichier
# de localisation existe
pour celle-ci.
# La valeur implicite est "en"
c'est-à-dire "anglais".
#
DefaultLanguage
fr
#
# DocumentRoot:
# La directive DocumentRoot
indique l'emplacement du contenu que le
# serveur HTTP de CUPS
doit publier. Si un chemin absolu n'est pas
# indiqué,
celui-ci est considéré comme relatif au répertoire
ServerRoot.
# La valeur implicite est
/usr/share/cups/doc-root.
#
# Les documents sont d'abord
recherchés dans un sous-répertoire
# correspondant à
la langue demandée par le client
# (par exemple
/usr/share/cups/doc-root/fr/...) et ensuite directement
# dans le
répertoire DocumentRoot.
# ainsi il est possible de
localiser le contenu "web" en fournissant
# des
sous-répertoires pour chaque langue
nécessaire.
#
DocumentRoot
/usr/share/cups/doc-root
#
# ErrorLog:
# La directive
ErrorLog définit le nom du fichier de suivi d'erreurs
#
("error log").
# Si le nom de fichier n'est pas un
chemin absolu, il est considéré
# comme un chemin
relatif au répertoire ServerRoot.
# Le fichier standard est
/var/log/cups/error_log.
#
# Le nom du serveur peut être
inclus dans le nom du fichier en utilisant
# le nom %s. ErrorLog
/var/log/cups/error_log-%s
# Le nom spécial "syslog"
peut être utilisé pour envoyer les
# informations de
suivi d'erreurs vers le fichier de suivi d'erreur
# système
au lieu d'un fichier texte simple. ErrorLog syslog
#
ErrorLog
/var/log/cups/error_log
#
# FileDevice: determines whether
the scheduler will allow new printers
# to be added using device
URIs of the form "file:/foo/bar". The default
# is not
to allow file devices due to the potential security
#
vulnerability and due to the fact that file devices do not
#
support raw printing.
#
FileDevice No
#
#
FontPath:
# La directive FontPath définit le chemin de
recherche des polices de
# caractères à utiliser. La
valeur implicite est /usr/share/cups/fonts.
#
FontPath
/usr/share/cups/fonts
#
# LogLevel:
# La directive
LogLevel indique la quantité d'informations à
consigner
# dans le fichier ErrorLog . Les valeurs suivantes sont
reconnues
# (chaque niveau inclut tout ce qui l'est dans les
niveaux inférieurs):
#
# none - Ne consigne rien.
#
emerg - Consigne les conditions d'urgence qui empêchent le
serveur
# de fonctionner.
# alert - Consigne les alertes qui
doivent être traitées immédiatement.
# crit -
Consigne les erreurs critiques qui n'empêchent pas le serveur
#
de fonctionner.
# error - Consigne les erreurs générales.
#
warn - Consigne les erreurs et les avertissements.
# notice -
Consigne les conditions d'erreurs temporaires.
# info - Consigne
toutes les requêtes de modifications et de changement
#
d'état (valeur implicite).
# debug - Consigne des
informations basiques de débogage.
# debug2 - Consigne
toutes les informations de débogage.
#
LogLevel
info
#
# MaxLogSize:
# La directive MaxLogSize contrôle
la taille maximum de chaque fichier
# de suivi ("log").
Dès qu'un fichier atteint ou dépasse la limite il
#
est fermé ou renommé en filename.O. Cela vous permet de
mettre en place
# automatiquement une rotation des fichiers de
suivi.
# La taille implicite est de 1048576 octets (1Mo).
#
#
Régler le maximum sur 0 désactive la rotation de
fichier de suivi.
# MaxLogSize 0
# MaxLogSize 1048576
#
MaxLogSize 1m
#
MaxLogSize 5m
#
# PageLog:
#
La directive PageLog définit le nom du fichier "page
log".
# Si le nom du fichier n'est pas absolu, il est
considéré comme étant
# relatif au répertoire
ServerRoot. Le fichier standard "page log"
# est
/var/log/cups/page_log.
#
# Le nom du serveur peut être
inclus dans le nom de fichier en
# utilisant le nom %s. PageLog
/var/log/cups/page_log-%s
# Le nom spécial "syslog"
peut être utilisé pour envoyer les
# informations de
page vers le fichier de suivi système au lieu
# d'un simple
fichier texte. PageLog syslog
#
PageLog
/var/log/cups/page_log
#
# PreserveJobHistory:
# La
directive PreserveJobHistory contrôle si l'historique des
travaux
# complétés, annulés ou abandonnés
est conservé sur disque ou non.
# Une valeur On (valeur
implicite) conserve les informations concernant
# les travaux
jusqu'à ce que l'administrateur les purge avec la
#
commande cancel.
#
# Une valeur Off retire les informations
concernant les travaux dès
# que ceux-ci sont complétés,
annulés ou abandonnés.
#
PreserveJobHistory
Off
#
# PreserveJobFiles:
# La directive
PreserveJobFiles contrôle si les fichiers des documents
#
complétés, annulés ou abandonnés sont
stockés sur disque.
# La valeur On conserve les fichiers
des travaux jusqu'à ce que
# l'administrateur les purge au
moyen de la commande cancel.
# Les travaux peuvent être
resoumis (réimprimés) jusqu'à ce qu'ils
#
soient purgés.
#
# La valeur Off (valeur implicite)
retire les fichiers des travaux
# dès ceux-ci sont
complétés, annulés ou
abandonnés.
#
PreserveJobFiles No
#
#
AutoPurgeJobs:
# La directive AutoPurgeJobs indique si oui ou non
il faut purger
# les travaux d'impression lorsqu'ils ne sont plus
nécessaires au
# vu des quotas. Cet option n'a aucun effet
si les quotas ne sont
# pas activés. La valeur implicite
est No.
#
AutoPurgeJobs No
#
# MaxCopies: maximum
number of copies that a user can request.
# Default is
100.
#
MaxCopies 100
#
# MaxJobs:
# La
directive MaxJobs contrôle le nombre maximum de travaux
#
d'impression qui sont conservés en mémoire. Dès
que le nombre de
# travaux atteint la limite, le plus ancien
travail complété est
# automatiquement purgé
du système pour libérer de l'espace pour
# le
nouveau travail. Si tous les travaux connus sont toujours en
#
attente de traitement ou actifs, alors le nouveau travail sera
rejeté.
#
# the value 0 is used for no limit.
#
MaxJobs
500
#
# MaxJobsPerPrinter:
# La directive
MaxJobsPerPrinter contrôle le nombre maximum de travaux
#
actifs qui sont autorisés pour chaque imprimante ou classe
#
d'imprimantes. Dès que le nombre est atteint pour une
imprimante
# ou une classe, les nouveaux travaux sont rejetés
tant que l'un des
# travaux actifs n'est pas complété,
arrêté, annulé ou abandonné.
# Régler
la valeur à 0 pour aucune limite (valeur
implicite).
#
#MaxJobsPerPrinter 0
#
#
MaxJobsPerUser:
# La directive MaxJobsPerUser contrôle le
nombre maximum de travaux
# d'impression qui sont autorisés
pour chaque utilisateur. Dès qu'un
# utilsateur atteint le
maximum autorisé, tout nouveau travail sera
# rejeté
avant qu'un des travaux actifs soit complété, arrêté,
#
annulé ou abandonné.
# Régler la valeur à
0 pour aucune limite (valeur implicite).
#
#MaxJobsPerUser
0
#
# MaxPrinterHistory: controls the maximum number of
history collections
# in the printer-state-history attribute.
#
Set to 0 to disable history data.
#
#MaxPrinterHistory
10
#
# Printcap:
# La directive Printcap contrôle
si le fichier printcap est
# automatiquement généré
et mis à jour ou non avec une liste des
# imprimantes
disponibles. Si la directive est utilisée sans valeur,
#
alors aucun fichier printcap ne sera généré. La
valeur implicite
# est de générer un fichier nommé
/etc/printcap.
#
# Quand un nom de fichier est indiqué
(par exemple /etc/printcap ),
# le fichier printcap est écrit
dès qu'une imprimante est ajoutée
# ou supprimée.
Le fichier printcap peut alors être utilisé par les
#
applications dont l'utilisation du fichier printcap comme
#
référence des imprimantes disponibles est codée
en dur.
#
Printcap /var/run/cups/printcap
#
#
PrintcapFormat:
# La directive PrintcapFormat contrôle le
format de sortie du
# fichier printcap. Le comportement implicite
est de générer un
# fichier printcap de type
BSD.
#
PrintcapFormat BSD
#PrintcapFormat Solaris
#
#
PrintcapGUI:
# La directive PrintcapGUI indique le programme à
utiliser pour
# afficher le panneau d'options à partir
d'une application IRIX
# qui utiliser l'API d'impression
Impressario. Le programme
# implicite est le programme graphique
"glpoptions" d'ESP Print Pro.
#
# Le programme doit
accepter l'option -d pour indiquer l'imprimante
# et l'option -o
pour indiquer une ou plusieurs options. Après avoir
#
autorisé l'utilisateur à sélectionner/changer
les options,
# le programme doit écrire la liste des
options d'impression sans
# le -o sur la sortie
standard.
#
#PrintcapGUI /usr/bin/glpoptions
#
#
RequestRoot:
# La directive RequestRoot définit le
répertoire pour les requêtes
# entrantes IPP et les
formulaires HTML. Si un chemin absolu n'est
# pas fourni alors il
est considéré comme relatif au répertoire
#
ServerRoot. Le répertoire implicite est
/var/spool/cups.
#
RequestRoot /var/spool/cups
#
#
RemoteRoot:
# La directive RemoteRoot fixe le nom d'utilisateur à
utiliser pour
# les requêtes root non authentifiées
depuis des hôtes distants.
# Le nom d'utilisateur standard
est remroot. Régler RemoteRoot sur
# root désactive
effectivement ce mécanisme de sécurité.
#
#
RemoteRoot root
# By default "remroot".
#
#RemoteRoot
remroot
#
# ServerBin:
# La directive ServerBin définit
le répertoire contenant les
# fichiers exécutables
du serveur. Si un chemin absolu n'est pas
# indiqué, il est
considéré comme relatif au répertoire
ServerRoot.
# Le répertoire implicite est
/usr/lib/cups.
#
ServerBin /usr/lib/cups
#
#
ServerRoot:
# La directive ServerRoot indique un chemin absolu
pour les
# fichiers de configuration et d'état du serveur.
Il est également
# utilisé pour interpréter
les chemins relatifs présents dans le
# fichier cupsd.conf
file. Le répertoire standard est /etc/cups.
#
ServerRoot
/etc/cups
#
# ServerTokens: specifies what information in
provided in the Server
# header of HTTP responses. The default is
Minor.
#
# ServerTokens None
# ServerTokens
ProductOnly CUPS
#
ServerTokens Major CUPS/1
#
ServerTokens Minor CUPS/1.1
#
ServerTokens Minimal CUPS/1.1.23
#
ServerTokens OS CUPS/1.1.23
(uname)
# ServerTokens Full CUPS/1.1.23
(uname) IPP/1.1
#
#ServerTokens Minor
########
########
Fax Support
########
#
# FaxRetryLimit: the number of
times a fax job is retried.
# The default is 5
times.
#
#FaxRetryLimit 5
#
# FaxRetryInterval:
the number of seconds between fax job retries.
# The default is
300 seconds/5 minutes.
#
#FaxRetryInterval
300
########
######## Encryption Support
########
#
#
ServerCertificate:
# La directive ServerCertificate définit
l'emplacement du fichier
# de certificat SSL utilisé par le
serveur lors de la négociation
# des connexions encryptées.
Le certificat ne doit pas être encrypté
# (protégé
par un mot de passe) car l'ordonnanceur fonctionne
# normalement
en arrière-plan et et ne sera pas en mesure de
# demander
un mot de passe.
# Le fichier standard de certificat est
/etc/cups/ssl/server.crt
#
ServerCertificate
/etc/cups/ssl/server.crt
#
# ServerKey:
# La
directive ServerKey indique l'emplacement du fichier de clé
#
privée SSL utilisé par le serveur pour négocier
les connexions
# encryptées. Le fichier standard de clé
est /etc/cups/ssl/server.crt
#
ServerKey
/etc/cups/ssl/server.key
########
########
Filter Options
########
#
# User/Group:
# La
directive Group définit le groupe UNIX sous l'identité
duquel
# les programmes CGI et de filtrage fonctionnent. Le
groupe
# implicite est sys, system, ou root selon l'OS.
#
#
La directive User indique l'utilisateur UNIX sous l'identité
#
duquel les programmes CGI et les filtres doivent fonctionner.
# La
valeur implicite est lp.
#
# Note: the server must be run
initially as root to support the
# default IPP port of 631. It
changes users whenever an external
# program is run, or if the
RunAsUser directive is specified...
#
User lp
Group
lpadmin
#
# RIPCache:
# La directive RIPCache définit
la quantité de mémoire utilisée
# par les
filtres RIP ("Raster Images Processor") tels que
#
imagetoraster et pstoraster.
# La taille peut être suffixée
par "k" pour kilo-octets,
# "m" pour
méga-octets, "g" pour giga-octets ou "t"
pour tiles
# (1 tile = 256x256 pixels.)
# La taille implicite
est de "8m", ou 8 méga-octets.
#
RIPCache
8m
#
# TempDir:
# La directive TempDir indique un chemin
absolu pour le répertoire
# à employer pour les
fichiers temporaires. Le répertoire standard
# est
/var/tmp.
#
# Les répertoires temporaires doivent être
inscriptibles pour tous
# et devraient avoir le "sticky"
bit activé de sorte que les
# utilisateurs ne puissent pas
supprimer les fichiers temporaires
# de filtres.
# Les
commandes suivantes créerons un répertoire temporaire
approprié
# appelé /foo/bar/tmp:
# mkdir
/foo/bar/tmp ENTREE
# chmod a+rwxt /foo/bar/tmp ENTREE
#
TempDir
/var/spool/cups/tmp
#
# FilterLimit:
# La directive
FilterLimit définit le coût maximal de tous les
filtres
# appliqués au travaux en cours de traitement. Elle
peut être utilisée
# pour limiter le nombre de
programmes de filtres qui son exécutés
# dans un
serveur pour minimiser les problèmes de ressources disque,
#
mémoire ou CPU. Une limite de 0 désactive la limitation
des filtres.
#
# Le coût moyen d'une impression vers une
imprimante non-PostScript
# nécessite une limitation# de
filtre aux alentours de 200.
# Une imprimante PostScript nécessite
une limite d'environ la
# moitié (100). Positionner la
limite en dessous de ces seuils va
# effectivement limiter
l'ordonnanceur à l'impression d'un travail
# à la
fois. La valeur implicite est 0.
#
FilterLimit
1000
########
######## Network Options
########
#
#
Ports/addresses that we listen to. The default port 631 is reserved
#
for the Internet Printing Protocol (IPP) and is what we use here.
#
#
La directive Port indique un port sur lequel CUPS sera en attente
#
de connexions. Plusieurs lignes de Port peuvent être indiquées
pour
# écouter sur plusieurs ports.
#
# Port 80
#
Port 631
# Listen hostname
# Listen hostname:80
# Listen
hostname:631
# Listen 1.2.3.4
# Listen 1.2.3.4:631
#
#
NOTE: Unfortunately, most web browsers don't support TLS or HTTP
#
Upgrades for encryption. If you want to support web-based
#
encryption you'll probably need to listen on port 443
# (the
"https" port...)
#
# NOTE 2: In order for the
command-line and web interfaces to work, you
# must have at least
one Port or Listen line that allows access from the
# local
loopback address (localhost).
#
#Port 80
#Port 443
Port
631
#
# La directive SSLPort
indique le port écouté pour les connexions
#
sécurisées. Plusieurs lignes SSLPort
peuvent être indiquées
#
pour écouter les connexions sur plusieurs ports.
SSLPort
443
#
# HostNameLookups:
# La directive
HostNameLookups indique si CUPS doit ou non
# rechercher le nom
d'hôte des clients qui se connectent.
# La clause Double
force CUPS à vérifier que le nom d'hôte
#
trouvé à partir de l'adresse correspond bien à
l'une des adresses
# retournées pour ce nom d'hôte.
Les recherches Double empêchent
# également
que des clients ayant des adresses non enregistrées
# ne se
connectent au serveur.
# La valeur implicite est Off pour
éviter tout problème potentiel
# de performance du
serveur du fait des résolutions de nom.
# Positionnez cette
directive à la valeur On ou Double
#
uniquement si nécessaire.
#
HostNameLookups Off
#
#
KeepAlive:
# La directive KeepAlive contrôle la prise en
charge ou non des
# connexions HTTP persitantes. La valeur
implicite est On .
# Les clients HTTP/1.1 prennent automatiquement
en charge les
# connexions persistantes, tandis que clients
HTTP/1.0 doivent
# spécifiquement les demander en utiliser
l'attribut
# Keep-Alive attribute dans le champ Connection: de
chaque requête.
#
KeepAlive On
#
#
KeepAliveTimeout:
# La directive KeepAliveTimeout contrôle
combien de temps une
# connexion HTTP persistante restera ouverte
après la dernière requête.
# La valeur
implicite est de 60 secondes.
#
KeepAliveTimeout 60
#
#
MaxClients:
# La directive MaxClients contrôle le nombre
maximum de clients
# simultanés qui seront autorisés
par le serveur. La valeur
# implicite ("par défaut")
est de 100 clients.
#
MaxClients 100
#
#
MaxClientsPerHost:
# La directive MaxClientsPerHost contrôle
le nombre maximum de
# clients connectés silmutanéments
par Host.
# Defaults to 10 or 1/10th of the MaxClients setting,
whichever
# is larger. A value of 0 specifies the automatic(10 or
1/10th)setting.
#
MaxClientsPerHost 0
#
#
MaxRequestSize:
# La directive MaxRequestSize contrôle la
taille maximum des fichiers
# d'impression, des requêtes
IPP, et des données des formulaires
# HTML contenus dans
les requêtes HTTP POST. La valeur implicite
# est 0, ce qui
désactive cette vérification de limite.
#
MaxRequestSize 0
#
#MaxRequestSize 10m
#
#
Timeout:
# La directive Timeout définit le délai à
attendre avant qu'une
# requête HTTP ou IPP active ne soit
hors délai.
# La valeur implicite est de 300
secondes.
#
Timeout 300
########
########
Browsing Options
########
#
#
Browsing:
# La directive Browsing contrôle l'activation ou
non de
# l'exploration réseau des imprimantes. La valeur
implicite est On .
#
Browsing On
#
#
BrowseProtocols:
# La directive BrowseProtocols indique les
protocoles à employer
# pour collecter et distribuer les
informations sur les imprimantes
# partagées sur le réseau
local. Le protocole implicite est CUPS,
# c'est un protocole basé
sur la diffusion réseau ("broadcast").
#
# all
- Use all supported protocols.
# cups - Use the CUPS browse
protocol.
# slp - Use the SLPv2 protocol.
#
# NOTE: If you
choose to use SLPv2, it is *strongly* recommended that
# you have
at least one SLP Directory Agent (DA) on your
# network.
Otherwise, browse updates can take several seconds,
# during which
the scheduler will not response to client
#
requests.
#
BrowseProtocols cups
#
#
BrowseAddress:
# La directive BrowseAddress indique une adresse à
laquelle il faut
# envoyer les informations d'exploration.
Plusieurs directives
# BrowseAddress peuvent être indiquées
pour envoyer les informations
# d'exploration à différents
systèmes ou réseaux.
# La valeur implicite de
l'adresse est 255.255.255.255:631 ce qui
# diffusera les
informations à tous les réseaux auxquels le serveur
#
est connecté.
#
# Note: HP-UX does not properly handle
broadcast unless you have a
# Class A, B, C, or D netmask (i.e. no
CIDR support).
#
# Note: Using the "global" broadcast
address (255.255.255.255) will
# activate a Linux demand-dial link
with the default configuration.
# If you have a LAN as well as the
dial-up link, use the LAN's
# broadcast address.
#
# The
@LOCAL address broadcasts to all non point-to-point interfaces.
#
For example, if you have a LAN and a dial-up link, @LOCAL would
#
send printer updates to the LAN but not to the dial-up link.
#
Similarly, the @IF(name) address sends to the named network
#
interface, e.g. @IF(eth0) under Linux. Interfaces are refreshed
#
automatically (no more than once every 60 seconds), so they can
#
be used on dynamically-configured interfaces, e.g. PPP, 802.11,
etc.
#
#BrowseAddress x.y.z.255
#BrowseAddress
x.y.255.255
#BrowseAddress x.255.255.255
#BrowseAddress
255.255.255.255
BrowseAddress @LOCAL
#BrowseAddress
@IF(name)
#
# BrowseShortNames:
# La directive
BrowseShortNames indique s'il faut ou non utiliser
# les noms
courts pour les imprimantes à distance. Les noms courts
#
sont simplement composés du nom de l'imprimante, sans celui
du
# serveur ("imprimante"). Si le système
détecte plus d'une imprimante
# à distance portant
le même nom, les imprimantes seront affichées
# avec
les noms longs ("imprimante@erveur1",
"imprimante@erveur2")
#
# Enabled by
default.
#
BrowseShortNames Yes
#
#
BrowseAllow:
# La directive BrowseAllow indique un masque réseau
dont on accepte de
# recevoir des paquets. Le comportement
implicite est
# d'accepter des paquets de n'importe quel hôte.
#
#
Le contrôle sur la base du nom d'hôte et de domaine
impose que
# vous activiez la directive HostNameLookups.
#
#
Le contrôle sur la base de l'adresse IP prend en charge les
#
correspondances exactes, les adresses partielles qui correspondent
#
à des réseaux dont le masque est 255.0.0.0,
255.255.0.0, et
# 255.255.255.0, ou des adresses réseau
utilisant le masque indiqué.
#
# BrowseDeny:
# La
directive BrowseDeny indique que l'on refuse les paquets
# d'un
masque réseau. Le comportement implicite
# est de ne
refuser aucun paquet.
#
# Both "BrowseAllow" and
"BrowseDeny" accept the following notations
# for
addresses:
#
# All
# None
# *.domain.com
#
.domain.com
# host.domain.com
# nnn.*
# nnn.nnn.*
#
nnn.nnn.nnn.*
# nnn.nnn.nnn.nnn
# nnn.nnn.nnn.nnn/mm
#
nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
# @LOCAL
# @IF(name)
#
#
The hostname/domainname restrictions only work if you have
#
turned hostname lookups on!
#
#BrowseDeny
address
BrowseDeny All
#
#BrowseAllow
address
#BrowseAllow none
#BrowseAllow 192.0.2
#BrowseAllow
*.domain.com
BrowseAllow
192.168.0.0/24
BrowseAllow 127.0.0.1
BrowseAllow @LOCAL
#
#
BrowseInterval:
# La directive BrowseInterval indique le délai
maximum entre deux
# mises à jour de l'exploration. Le fait
d'indiquer une valeur
# de 0 interdit de diffuser des mises à
jour mais autorise
# néanmoins un serveur à recevoir
des mises à jour en provenance
# d'autres hôtes.
#
La valeur BrowseInterval devrait toujours être inférieure
à la
# valeur BrowseTimeout. Sinon des imprimantes et des
classes
# pourraient disparaître des système clients
entre les mises à jour.
#
BrowseInterval 30
#
#
BrowseOrder:
# La directive BrowseOrder indique l'ordre de
traitement accord/refus.
# L'ordre implicite est deny,allow:
#
allow,deny - Les paquets d'exploration sont acceptés à
moins qu'ils
# ne soient explicitement refusés.
#
deny,allow - Les paquets d'exploration sont rejetés à
moins qu'ils
# ne soient explicitement acceptés.
#
#BrowseOrder
allow,deny
BrowseOrder deny,allow
#
# BrowsePoll:
#
La directive BrowsePoll collecte la liste des imprimantes
disponibles
# sur un serveur une fois toutes les BrowseInterval
secondes.
# Plusieurs directives BrowsePoll peuvent être
indiquées pour surveiller
# plusieurs serveurs. Si
BrowseInterval est mis à 0 alors le serveur est
# surveillé
une fois toutes les 30 secondes.
#
#BrowsePoll
secondprintsrv.alex.fr:443
#
# BrowsePort:
# La
directive BrowsePort indique un numéro de port UDP à
employer
# pour les échanges de paquets d'exploration.
#
La valeur implicite est 631.
#
#BrowsePort 631
BrowsePort
443
#
# BrowseRelay:
#
la directive indique des adresses source et destination pour
#
relayer les informations d'exploration en provenance d'un hôte
#
ou d'un réseau vers un autre. Plusieurs directives
BrowseRelay
# peuvent être indiquées si
nécessaire.
#
# BrowseRelay est généralement
utilisé sur des systèmes qui assurent
# la
passerelle entre des réseaux multiples au moyen d'une ou
#
plusieurs interfaces réseau. Elle peut également être
utilisée
# pour relayer des informations sur les
imprimantes provenant de
# serveurs surveillés, au moyen de
la ligne:
# BrowseRelay 127.0.0.1 255.255.255.255
# Cela
fournit un accès effectif aux imprimantes d'un WAN pour
#
tous les clients d'un LAN.
#
#BrowseRelay source-address
destination-address
#BrowseRelay @IF(src) @IF(dst)
#
#
BrowseTimeout:
# La directive BrowseTimeout fixe la durée
de vie des informations
# reçues sous forme de paquets
d'exploration et concernant les
# imprimantese et les classes. Une
fois que les informations
# concernant une imprimante ou une
classe dépassent ce délai,
# elles sont retirées
de la liste des destinations disponibles.
#
# La valeur
BrowseTimeout devrait toujours être supérieure à
la
# valeur BrowseInterval.
# Sinon des imprimantes et des
classes pourraient disparaîtres
# des systèmes
clients entre les mises à jour.
#
BrowseTimeout
300
#
# ImplicitClasses:
# La directive ImplicitClasses
contrôle si les classes implicites
# sont créées
sur la base des imprimantes et classes disponibles
# sur le
réseau. La valeur implicite est On mais est automatiquement
#
positionnée sur Off si Browsing est à la valeur
Off.
#
# Printer classes can be specified explicitly in the
classes.conf
# file, implicitly based upon the printers available
on the LAN, or both.
#
# When ImplicitClasses is On, printers
on the LAN with the same name
# (e.g. Acme-LaserPrint-1000) will
be put into a class with the same
# name. This allows you to setup
multiple redundant queues on a LAN
# without a lot of
administrative difficulties. If a user sends a
# job to
Acme-LaserPrint-1000, the job will go to the first available
#
queue.
#
ImplicitClasses On
#
#
ImplicitAnyClasses:
# La directive ImplicitAnyClasses contrôle
si oui ou non les classes
# implicites pour les imprimantes
locales et à distance sont crées
# avec le nom
AnyPrinter. La valeur implicite est Off.
# ImplicitClasses doit
être activée pour que cette directive ait
# un
quelconque effet.
#
# When ImplicitAnyClasses is On and a local
queue of the same name
# exists, e.g. "printer",
"printer@server1", "printer@server1", then
#
an implicit class called "Anyprinter" is created
instead.
#
# When ImplicitAnyClasses is Off, implicit classes
are not created
# when there is a local queue of the same
name.
#
ImplicitAnyCLasses Off
#
#
HideImplicitMembers:
# La directive HideImplicitMembers contrôle
l'appartenance ou non
# d'imprimantes individuelles aux classes
implicites qui sont
# montrées à l'utilisateur. La
valeur standard est No.
# ImplicitClasses doit être activée
pour que cette directive ait
# un quelconque
effet.
#
HideImplicitMembers On
########
########
Security Options
########
#
# SystemGroup:
# La
directive SystemGroup indique le groupe système
d'aministration
# pour l'authentification de type System.
#
#
The default varies depending on the operating system, but
# will
be "sys", "system", or "root" (checked
for in that order.)
#
SystemGroup lpadmin
#
#
RootCertDuration: How frequently the root certificate is
regenerated.
# Defaults to 300 seconds.
#
RootCertDuration
300
#
# Access permissions for each directory served by the
scheduler.
# Locations are relative to DocumentRoot...
#
#
AuthType: the authorization to use:
#
# None - Perform no
authentication
# Basic - Perform authentication using the HTTP
Basic method.
# Digest - Perform authentication using the HTTP
Digest method.
#
# (Note: local certificate authentication can
be substituted by
# the client for Basic or Digest when connecting
to the
# localhost interface)
#
# AuthClass: the
authorization class; currently only "Anonymous", "User",
#
"System" (valid user belonging to group SystemGroup), and
"Group"
# (valid user belonging to the specified group)
are supported.
#
# AuthGroupName: the group name for "Group"
authorization.
#
# Order: the order of Allow/Deny
processing.
#
# Allow: allows access from the specified
hostname, domain, IP address,
# network, or interface.
#
#
Deny: denies access from the specified hostname, domain, IP
address,
# network, or interface.
#
# Both "Allow"
and "Deny" accept the following notations for
addresses:
#
# All
# None
# *.domain.com
#
.domain.com
# host.domain.com
# nnn.*
# nnn.nnn.*
#
nnn.nnn.nnn.*
# nnn.nnn.nnn.nnn
# nnn.nnn.nnn.nnn/mm
#
nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
# @LOCAL
# @IF(name)
#
#
The host and domain address require that you enable hostname
lookups
# with "HostNameLookups On" above.
#
# The
@LOCAL address allows or denies from all non point-to-point
#
interfaces. For example, if you have a LAN and a dial-up link,
#
@LOCAL could allow connections from the LAN but not from the
dial-up
# link. Similarly, the @IF(name) address allows or denies
from the
# named network interface, e.g. @IF(eth0) under Linux.
Interfaces are
# refreshed automatically (no more than once every
60 seconds), so
# they can be used on dynamically-configured
interfaces, e.g. PPP,
# 802.11, etc.
#
# Encryption: whether
or not to use encryption; this depends on having
# the OpenSSL
library linked into the CUPS library and scheduler.
#
#
Possible values:
#
# Always - Always use encryption (SSL)
#
Never - Never use encryption
# Required - Use TLS encryption
upgrade
# IfRequested - Use encryption if the server requests
it
#
# The default value is "IfRequested".
#
<Location
/>
Order Deny,Allow
Deny From All
Allow From
127.0.0.1
Allow From @LOCAL
</Location>
#<Location
/classes>
#
# You may wish to limit access to printers and
classes, either with
# Allow and Deny lines, or by requiring a
username and password.
#
## Authorise l'accés à
/classes sur la boucle locale et depuis
# le serveur srv1.alex.fr
par exemple mais pas pour le réseau local !
#Order
Deny,Allow
#Deny From All
#Allow From 127.0.0.1
#Allow From
srv1.alex.fr
#</Location>
#<Location
/classes/name>
#
# You may wish to limit access to printers
and classes, either
# with Allow and Deny lines, or by requiring a
username and password.
#
#</Location>
<Location
/jobs>
#
# Authorise l'accés aux /jobs depuis
127.0.0.1 et @LOCAL puisqu'il
# est l'héritier de <Location
/>
#
# You may wish to limit access to job operations,
either with Allow
# and Deny lines, or by requiring a username and
password.
#
AuthType Basic
AuthClass
User
</Location>
#<Location /printers>
#
#
You may wish to limit access to printers and classes, either with
Allow
# and Deny lines, or by requiring a username and
password.
#
## Authorise l'accés à /printers sur
la boucle locale et
# le serveur srv1.alex.fr par exemple mais pas
pour le réseau local !
#Order Deny,Allow
#Deny From
All
#Allow From 127.0.0.1
#Allow From
srv1.alex.fr
#</Location>
#<Location
/printers/name>
#
# You may wish to limit access to printers
and classes, either with Allow
# and Deny lines, or by requiring a
username and password.
#
#
# Anonymous access
(default)
#AuthType None
#
# Require a username and password
(Basic authentication)
#AuthType Basic
#AuthClass User
#
#
Require a username and password (Digest/MD5 authentication)
#AuthType
Digest
#AuthClass User
## Restrict access to local
domain
#Order Deny,Allow
#Deny From All
#Allow From
.mydomain.com
#</Location>
<Location
/admin>
#
# You definitely will
want to limit access to the
# administration functions.
# The
default configuration requires a local connection from a user who
#
is a member of the system group to do any admin tasks. You can
change
# the group name using the SystemGroup
directive.
#
#AuthType Basic
AuthType
Digest
AuthClass System
##
Restrict access to local domain
Order
Deny,Allow
Deny From All
#
Authorise l'administration CUPS par interface Web depuis la
#
boucle locale et depuis le serveur srv1.alex.fr par exemple.
#
Mais refuse les autres machine du réseau local.
Allow
From 127.0.0.1
Allow From srv1.alex.fr
Encryption
Required
</Location>
#
# End of
cupsd.conf
#
Configuration
du mot de passe Digest/MD5 pour l'Admin
CUPS
Ajoutez
un utilisateur (existant ou non sur le serveur)
Le mot de passe
doit faire 6 caractères et contenir au moins 1
chiffre.
srv7:~#
lppasswd -a printadmin
Enter password: my3password
Enter
password again: my3password
srv7:~#
Génération
du certificat et de la clef SSL pour CUPS
Créez
un répertoire /etc/cups/ssl/ et copiez le fichier
/etc/ssl/openssl.cnf vers
/etc/cups/ssl/openssl-cups.cnf
Tapez ces commandes
pour générer votre clef et certificat SSL :
srv7:~#
cd /etc/cups/ssl/
srv7:/etc/cups/ssl# openssl req -new -x509
-config /etc/cups/ssl/openssl-cups.cnf -keyout
/etc/cups/ssl/server.key -out /etc/cups/ssl/server.crt -days 365
-nodes
L'option
-nodes permet de ne pas crypter le certificat et la clef SSL.
sinon
CUPS ne sera pas capable de les charger.
Changez les droits de
ces fichiers :
srv7:/etc/cups/ssl#
chmod 600 /etc/cups/ssl/server.*
Relancez
le serveur CUPS
srv7:/etc/cups/ssl#
/etc/init.d/cupsys restart
Attribution
des IP pour vos imprimantes réseau
Trois
méthodes sont décrites dans l'aide :
(https://localhost/sam.html#COMMON_NETWORK)
en utilisant ARP
en utilisant RARP
en utilisant BOOTP
La
méthode la plus simple pour installer l'adresse IP d'un
matériel réseau est d'utiliser la commande arp
.
Elle
envoie un paquet ARP ("Address Resolution Protocol") à
l'adresse MAC indiquée tout en lui indiquant son adresse IP :
arp -s adresseIP adresseMAC
arp -s printx.alex.fr 08:00:F9:00:12:3D
arp -s 192.168.0.20 08:00:F9:00:12:3D
Sinon
vous pouvez saisir dans votre serveur DHCP
(dhcpd.conf) les coordonnées de vos imprimantes puisque leur
adresse MAC est connue :
host
laserjet20 {
hardware ethernet 08:00:F9:00:12:3D;
fixed-address
192.168.0.20;
option host-name
"laserjet20.alex.fr";
}
Connexion
et Administration du serveur CUPS
Tapez
l'adresse suivante dans votre navigateur : https://localhost/
ou https://localhost:632
si vous avez changez le port sécurisé.
Vous
arrivez sur la page principale qui vous propose différents
menus.
Selon les actions que vous allez exécuter, le mot de
passe "printadmin" vous sera demandé.
Cliquez
sur
Administration
des
imprimantes du serveur CUPS :
Cliquez sur Administrer imprimantes
Cliquez
sur
Ajouter
imprimante
pour
ajouter une nouvelle imprimante.
Saisissez
les informations selon la technologie de votre imprimante
Selon
le modèle d'imprimante adaptez l'URI
(https://localhost/sam.html#10_3)
Il y a plusieurs formes d'URI
selon le périphérique (HP, Epson, Lexmark ...)
Choisissez
le type de Pilote
Choisissez
le modèle d'imprimante (s'il n'est pas dans la liste voir sur
le site CUPS
pour ajouter des drivers ou choisissez un modèle similaire)
Rejeter
travaux
permet de mettre hors service une imprimante.
Modifiez le
fichier
/etc/services
sur chaque clients ainsi que sur le serveur CUPS, pour remplacer le
port du service "ipp" (impression) qui est par défaut
631 (non sécurisé) par 443 (https) ou
632 :
...
ipp 443/tcp #
Internet Printing Protocol
ipp 443/udp
...
Configuration
des clients Linux pour utiliser CUPS
Modifiez
le fichier /etc/cups/client.conf sur chaque clients Linux,
ainsi que sur le serveur CUPS :
#
#
ServerName:
# le nom de votre serveur CUPS.
#
ServerName
srv7.alex.fr
#
# Encryption:
# Pour utiliser ou non
encryption SSL, les valeurs possible :
#
# Always - Always use
encryption (SSL)
# Never - Never use encryption
# Required -
Use TLS encryption upgrade
# IfRequested - Use encryption if the
server requests it
#
# Par defaut la valeur est
"IfRequested".
# Vous pouvez régler ce parametre
dans la variable
# d'environment CUPS_ENCRYPTION
#
Encryption
Always
#
# Indique que les requetes doivent etre faites sur
le port 443 ou 632 ...
#
SSLPort 443
Configuration
de Samba pour les clients Window$
1er
Solution
: Vous utilisez OpenLDAP pour authentifier l'accès à
votre serveur d'impression Samba => CUPS
Il faut alors
mapper les modules d'authentification Posix avec LDAP :
Se
reporter au chapitre "Mappage
de l'annuaire LDAP avec les modules d'authentification Posix"
du tutoriel "Authentification des utilisateurs avec OpenLDAP"
pour realiser cette opération.
Appliquez une configuration
client OpenLDAP pour votre machine CUPS/Samba
2em
Solution
: Vous utilisez une authentification locale pour accéder à
votre serveur d'impression Samba => CUPS
Modifiez le
fichier /etc/samba/smb.conf :
Configuration
avec la
1er
solution authentification LDAP
:
#==================
Global Settings ===================
[global]
# Server
Naming Options:
#
# workgroup = NT-Domain-Name or
Workgroup-Name
workgroup
= ALEX
# netbios name, but defaults to your hostname.
netbios
name = PRINT-LINUX
# server string is the equivalent of the NT
Description field
server
string = Samba Server %v
# Security :
#
# On demande une
authentification pour se connecter au serveur.
security
= user
encrypt passwords = yes
#
LDAP configuration for Domain Controlling:
#
Lancez cette commande pour que Samba puisse lire et écrire
#
dans l'annuaire : smbpasswd -w mypassword
ldap
admin dn = "cn=Manager,dc=alex,dc=fr"
ldap suffix =
dc=alex,dc=fr
ldap passwd sync = yes
ldap user suffix =
ou=People
ldap group suffix = ou=Group
ldap machine suffix =
ou=People
ldap idmap suffix = ou=People,dc=alex,dc=fr
#
Nous indiquons les noms FQDN des
deux serveurs OpenLDAP, car
# la vérification du certificat
risque d'échouer s'il y a une
# adresse IP à la
place.
# La connexion à l'annuaire se fera par ldaps, car
le mot de passe
# du Manager OpenLDAP circule en clair lors d'une
requête standard.
# Reportez vous au chapitre "SSL/TLS"
pour mettre en place ldaps.
passdb
backend = ldapsam:"ldaps://srv2.alex.fr
ldaps://srv6.alex.fr"
idmap backend =
ldapsam:"ldaps://srv2.alex.fr ldaps://srv6.alex.fr"
#
Si malgré tout vous souhaitez utiliser ldap non sécurisé
:
# passdb backend =
ldapsam:"ldap://srv2.alex.fr ldap://srv6.alex.fr"
#
idmap backend = ldapsam:"ldap://srv2.alex.fr
ldap://srv6.alex.fr"
# On
active SSL (option par défaut)
ldap
ssl = on
# Printing Options:
#
On charge les imprimantes
load
printers = yes
# Définition
du style d'impression
printing
= cups
printcap = cups
#
Définit les droits d'administration (@group)
printer
admin = root, @lpadmin
show add printer wizard = yes
#
Logging Options:
log
file = /usr/local/samba/var/log.%m
# Put a capping on the size
of the log files (in Kb).
max
log size = 5
# Security and Domain Membership Options:
#
#
hosts allow = 192.168.1. 192.168.2. 127. EXCEPT 192.168.2.1
hosts
allow = 127.0.0.1 192.168.0.0/24
hosts deny = 0.0.0.0/0
interfaces
= eth* lo
bind interfaces only = yes
socket options =
TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy =
no
#================== Print Definitions
==================
[printers]
comment
= Spool d'impression
path
= /tmp
browseable = no
public = no
writable = no
printable
= yes
create mode = 0700
[print$]
comment
= Pilotes d'imprimantes
path = /var/lib/samba/printers
browseable
= yes
guest ok = no
read only = yes
write list = root,
@lpadmin
Configuration
avec la
2em
solution authentification
locale :
#==================
Global Settings ===================
[global]
#
Server Naming Options:
#
# workgroup = NT-Domain-Name or
Workgroup-Name
workgroup
= ALEX
# netbios name, but defaults to your hostname
netbios
name = PRINT-LINUX
# server string is the equivalent of the NT
Description field
server
string = Samba Server %v
# Security :
#
# On demande une
authentification pour se connecter au serveur.
security
= user
encrypt passwords =
yes
passdb backend = tdbsam guest
# Printing Options:
#
On charge les imprimantes
load
printers = yes
# Définition
du style d'impression
printing
= cups
printcap = cups
#
Définit les droits d'administration (@group)
printer
admin = root, @lpadmin
show add printer wizard = yes
#
Logging Options:
log
file = /usr/local/samba/var/log.%m
# Put a capping on the size
of the log files (in Kb).
max
log size = 5
# Security and Domain Membership Options:
#
#
hosts allow = 192.168.1. 192.168.2. 127. EXCEPT 192.168.2.1
hosts
allow = 127.0.0.1 192.168.0.0/24
hosts deny =
0.0.0.0/0
interfaces = eth* lo
bind interfaces only =
yes
socket options = TCP_NODELAY SO_RCVBUF=8192
SO_SNDBUF=8192
dns proxy = no
#================== Print
Definitions ==================
[printers]
comment = Spool
d'impression
path = /tmp
browseable = no
public =
no
writable = no
printable = yes
create mode =
0700
[print$]
comment = Pilotes d'imprimantes
path =
/var/lib/samba/printers
browseable = yes
guest ok = no
read
only = yes
write list = root, @lpadmin
Installation
des pilotes d'imprimantes pour les workstation$
La
section [print$]
permet
d'indiquer ou son stockés les drivers de vos imprimantes.
Il
y a plusieurs méthodes pour les installer (voir l'aide Samba
en PDF)
Assurez-vous que le répertoire indiqué
dans le partage Samba [print$] est accessible
en écriture aux
utilisateurs indiqués par la directive write
list :
srv7:~#
chgrp -R lpadmin /var/lib/samba/printers/
srv7:~# chmod -R g+w
/var/lib/samba/printers/
Assurez-vous
également que chaque utilisateurs de la liste write
list
possède un mot de passe Samba en utilisant la commande
smbpasswd
sinon vous ne pourrez pas vous authentifier.
Les pilotes de
vos imprimantes seront répartis dans les sous répertoires
suivants. Ils correspondent chacun à une architecture. Contenu
du répertoire
/var/lib/samba/printers/ :
W32X86
pour winNT x86
WIN40
pour win95/98
W32ALPHA
pour win NT alpha_AXP
W32MIPS
pour win NT R4000
W32PPC
pour win NT powerPC
Pour exporter les pilotes
d'imprimantes, vous disposez de 2 méthodes :
-
A) L'utilitaire cupsaddsmb fournit dans le package cupsys-client, qui
réalise automatiquement l'ajout des pilotes CUPS dans
Samba.
- B) Les commandes Samba qui ajoutent les pilotes
Windows fournis dans le CD d'installation de votre imprimante.
A)
Méthode cupsaddsmb
Pour
les versions de Windows 2000 et supérieur :
vous devez télécharger les pilotes d'imprimantes PostScript CUPS (cups-windows)
récupérer les pilotes PostScript Microsoft :
Installez sur un poste Windows XP n'importe quelle imprimante réseau en utilisant les pilotes Génériques MS Publisher Color Printer.
Copiez
les fichiers PSCRIPT.HLP,
PSCRIPT.NTF,
PSCRIPT5.DLL et
PS5UI.DLL situés dans le répertoire
C:\WINDOWS\system32\spool\drivers\w32x86\3\ vers
/usr/share/cups/drivers/ de votre serveur.
Renommez-les en
minuscule, car cupsaddsmb est sensible à la case !
Pour
les versions antérieur à Windows 2000 :
il
faut télécharger uniquement les pilotes
PostScript Adobe (winstfre.exe)
et les placer dans /usr/share/cups/drivers/ de votre
serveur.
NOTE : Nous
traiterons, dans ce qui suit, uniquement les postes Windows 2000 et
XP.
Convertissez le package .RPM téléchargé
sur le site de CUPS en .DEB avec la commande alien et
installez-le.
srv7:~#
ls /usr/share/cups/drivers/
cups6.inf
cups6.ini cupsps6.dll cupsui6.dll ps5ui.dll pscript5.dll
pscript.hlp pscript.ntf
Pour
lister les imprimantes CUPS détectées par Samba,
utilisez la commande :
srv7:~#
rpcclient PRINT-LINUX -N
-U'root%mypassword' -c 'enumprinters
1'
flags:[0x800000]
name:[\\print-linux\hplaser1]
description:[\\print-linux\hplaser1,,]
comment:[hplaser1]
Enfin,
exécutez la commande cupsaddsmb pour exporter les pilotes
d'imprimantes pour une ou plusieurs files d'impression. l'argument -a
exportera toutes les imprimantes :
srv7:~#
cupsaddsmb -H PRINT-LINUX -U root -a
-v
Password for root required to access PRINT-LINUX via
SAMBA:
Running command: smbclient //PRINT-LINUX/print\$ -N
-U'root%mypassword' -c 'mkdir W32X86;put
/var/spool/cups/tmp/44f1d7b23ce31 W32X86/hplaserjet1.ppd;put
/usr/share/cups/drivers/ps5ui.dll W32X86/ps5ui.dll;put
/usr/share/cups/drivers/pscript.hlp W32X86/pscript.hlp;put
/usr/share/cups/drivers/pscript.ntf W32X86/pscript.ntf;put
/usr/share/cups/drivers/pscript5.dll
W32X86/pscript5.dll'
Domain=[PRINT-LINUX] OS=[Unix]
Server=[Samba 3.0.14a-Debian]
NT_STATUS_OBJECT_NAME_COLLISION
making remote directory \W32X86
putting file
/var/spool/cups/tmp/44f1d7b23ce31 as \W32X86/hplaserjet1.ppd (1735.1
kb/s) (average 1735.1 kb/s)
putting file
/usr/share/cups/drivers/ps5ui.dll as \W32X86/ps5ui.dll (1384.2 kb/s)
(average 1411.5 kb/s)
putting file
/usr/share/cups/drivers/pscript.hlp as \W32X86/pscript.hlp (593.9
kb/s) (average 1166.8 kb/s)
putting file
/usr/share/cups/drivers/pscript.ntf as \W32X86/pscript.ntf (1252.5
kb/s) (average 1236.1 kb/s)
putting file
/usr/share/cups/drivers/pscript5.dll as \W32X86/pscript5.dll (1439.7
kb/s) (average 1295.4 kb/s)
Running command: rpcclient
PRINT-LINUX -N -U'root%mypassword' -c 'adddriver "Windows NT
x86"
"hplaserjet1:pscript5.dll:hplaserjet1.ppd:ps5ui.dll:pscript.hlp:NULL:RAW:pscript.ntf"'
Printer
Driver hplaserjet1 successfully installed.
Running command:
rpcclient PRINT-LINUX -N -U'root%mypassword' -c 'setdriver
hplaserjet1 hplaserjet1'
Succesfully set hplaserjet1 to driver
hplaserjet1.
Le
répertoire "3" contient maintenant le pilote pour
l'imprimante nommé hplaserjet1 :
srv7:~#
ls -R
/var/lib/samba/printers/W32X86/
/var/lib/samba/printers/W32X86/:
3
/var/lib/samba/printers/W32X86/3:
hplaserjet1.ppd
ps5ui.dll pscript5.dll pscript.hlp pscript.ntf
Pour
lister les pilotes d'imprimantes dans Samba, utilisez la
commande :
srv7:~#
rpcclient PRINT-LINUX -N -U'root%mypassword' -c
'enumdrivers'
[Windows NT x86]
Printer
Driver Info 1:
Driver
Name: [hplaserjet1]
B)
Méthode manuelle avec les commandes Samba :
Liste
des imprimantes CUPS détectées par Samba :
srv7:~#
rpcclient PRINT-LINUX -N
-U'root%mypassword' -c 'enumprinters
1'
flags:[0x800000]
name:[\\print-linux\hplaser1]
description:[\\print-linux\hplaser1,,]
comment:[hplaser1]
flags:[0x800000]
name:[\\print-linux\brotherhl2030]
description:[\\print-linux\brotherhl2030,,]
comment:[]
Installez
sur un poste Windows (2000 ou XP) vos imprimantes réseau en
utilisant les pilotes fournis dans leur CD d'installation.
Lister
les pilotes installés sur cette station depuis votre
serveur :
srv7:~#
rpcclient STATIONXP -N -U'root%mypassword' -c 'enumdrivers
3'
Printer Driver Info 3:
Version:
[3]
Driver Name:
[Brother HL-2030 series]
Architecture:
[Windows NT x86]
Driver
Path: [\\STATIONXP\print$\W32X86\3\BROHL04B.DLL]
Datafile:
[\\STATIONXP\print$\W32X86\3\BH2030.PPD]
Configfile:
[\\STATIONXP\print$\W32X86\3\BRUHL04B.DLL]
Helpfile:
[\\STATIONXP\print$\W32X86\3\BROHL04B.HLP]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BH2030.INI]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BH2030.DAT]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BW2030.INI]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BE2030.DAT]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRLHL04B.DLL]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRSP104B.DLL]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRSP204B.DLL]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRQIKMON.EXE]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRQIKMON.HLP]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRMD04.EXE]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRBUL04B.DLL]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRBHL04B.DLL]
Dependentfiles:
[\\STATIONXP\print$\W32X86\3\BRBNL04B.DLL]
Monitorname:
[] (Mettre
RAW si ce champs est vide)
Defaultdatatype:
[]
Server does not support environment [Windows NT
R4000]
Server does not support environment [Windows NT
PowerPC]
Installation
du pilote dans Samba (suivre la syntaxe en couleur) :
srv7:~#
rpcclient PRINT-LINUX -N -U'root%mypassword' -c 'adddriver "Windows
NT x86"
"brotherhl2030:BROHL04B.DLL:BH2030.PPD:BRUHL04B.DLL:BROHL04B.HLP:RAW:NULL:NULL"'
Printer
Driver brotherhl2030 successfully installed.
Mettez
NULL quand vous n'avez pas d'informations ou que vous ne
voulez rien saisir.
Vérifiez la liste des pilotes
installés dans Samba :
srv7:~#
rpcclient PRINT-LINUX -N -U'root%mypassword' -c
'enumdrivers'
[Windows NT x86]
Printer
Driver Info 1:
Driver
Name: [hplaserjet1]
Printer Driver Info
1:
Driver
Name: [brotherhl2030]
Association
du pilote avec l'imprimante :
srv7:~#
rpcclient PRINT-LINUX -N -U'root%mypassword' -c 'setdriver
brotherhl2030 brotherhl2030'
Succesfully
set brotherhl2030 to driver brotherhl2030.
Pour
effacer un pilote d'imprimante de Samba :
srv7:~#
rpcclient PRINT-LINUX -N -U'root%mypassword' -c 'deldriverex
hplaserjet1 "Windows NT x86"'
Driver hplaserjet1 and
files removed for arch [Windows NT x86] (version:
3).
Configuration
des Imprimantes sur les clients Window$
Sur
vos Workstation$ avec un utilisateur sans droits, explorez votre
domaine depuis Favoris réseau.
Explorez les imprimantes
disponibles sur votre serveur PRINT-LINUX. Faites un clic droit sur
celle que vous souhaitez installer puis choisissez "Se
connecter".
L'imprimante a été installée
automatiquement, elle est fonctionnelle.
Source : http://www.cups.org/
Copyright © 04/02/2004, Arnofear
![]() |
Ce document est publié sous licence Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique : http://creativecommons.org/licenses/by-nc-sa/3.0/deed.fr |