Ce manuel de l'administrateur fournit les informations d'administration pour le système d'impression CUPSTM (Common UNIX Printing SystemTM) version 1.1.14.
CUPS fournit une couche d'impression portable pour les systèmes d'exploitation de type UNIX®. Il a été développé par Easy Software Products pour promouvoir une solution d'impression standard pour tous les vendeurs et utilisateurs d'UNIX. CUPS fournit des interfaces en ligne de commande de type System V et Berkeley.
CUPS utilise le protocol IPP (Internet Printing Protocol) comme base de l'administration des travaux et files d'impression. Les protocoles LPD ("Line Printer Daemon"), SMB ("Server Message Block"), et AppSocket (JetDirect) sont également pris en charge avec des fontionnalités réduites. CUPS ajoute l'exploration réseau des imprimantes ("network printer browsing") et des options d'impression basées sur PPD ("PostScript Printer Definition") pour prendre en charge l'impression "dans le monde réel" sous UNIX.
CUPS inclut également une version adaptée de GNU/Ghostscript (actuellement basée sur la version 5.50) et un module de rendu (RIP - Raster Image Processor) pour fichier image qui sont utilisés pour prendre en charge les imprimantes non-PostScript. Des pilotes d'exemple (incluant ces filtres) pour imprimantes HP et EPSON sont également inclus.
Ce manuel de l'administrateur est organisé de la manière suivante:
Ce chapitre fournit un aperçu de la manière dont CUPS fonctionne.
Depuis des années le problème d'impression a empoisonné le monde UNIX. Contrairement à Microsoft® Windows® ou Mac OS, UNIX n'a pas d'interface standard ou de système en place pour prendre en charge les imprimantes. Parmi les solutions actuellement disponibles, les systèmes Berkeley et System V sont prédominants.
Ces systèmes d'impressions prennent en charge les imprimantes de type matriciel texte ou les imprimantes PostScript (texte et graphique), et avec quelques ajustements il peuvent prendre en charge un grand nombre d'imprimantes et de formats de fichiers. Cependant, puisque chaque version de système d'exploitation UNIX utilise un système d'impression différent de celui de son voisin, il est extrêmement difficile de développer des pilotes d'imprimantes pour une vaste gamme d'imprimantes et de systèmes d'exploitation. Ceci, combiné au faible nombre de clients pour chaque variante d'UNIX, a poussé les fabricants d'imprimantes à abandonner la prise en charge globale de tous les UNIX.
CUPS est conçu pour éliminer le problème d'impression. Un système d'impression commun peut être utilisé par toutes les variantes d'UNIX pour prendre en charge les capacités d'impression dont les utilisateurs ont besoin. Les fabricants d'imprimantes peuvent utiliser l'interface modulaire des filtres pour développer un unique pilote qui prend en charge une large gamme de formats de fichiers et ce, sans presque aucun effort. Etant donné que CUPS fournit une interface compatible avec les commandes Berkeley et System V, les utilisateurs (et les applications) peuvent tirer bénéfice de cette nouvelle technologie sans avoir à faire de changements.
CUPS est basé sur un standard émergeant d'Internet appelé IPP (Internet Printing Protocol). IPP a été adopté par des douzaines de fabricants d'imprimantes et de serveurs d'impression et est pris en charge par Microsoft Windows 2000.
IPP définit un protocole standard pour imprimer ainsi qu'administrer les travaux d'impression et les options des imprimantes telles que la taille du support d'impression, la résolution, etc. Comme tout protocole de la pile TCP/IP, IPP peut être utilisé localement ou à travers Internet pour atteindre des imprimantes éloignées de centaines ou de milliers de kilomètres. Contrairement à d'autres protocoles de la pile TCP/IP, IPP prend en charge le contrôle d'accès, l'authentification et l'encryptage, ce qui fait de lui une solution d'impression bien plus efficace et sécurisée que ses ancêtres.
IPP est une surcouche ajoutée au-dessus du protocole HTTP (HyperText Transport Protocol) qui est à la base des serveurs "web" sur l'Internet. Ceci permet aux utilisateurs de lire la documentation, vérifier les informations sur l'état des imprimantes ou du serveur, administrer les imprimantes, les classes d'imprimantes et les travaux d'impression en utilisant leur navigateur "web".
CUPS fournit un système d'impression complet basé sur IPP/1.1 prenant en charge l'authentification "Basic", "Digest" et par certificats locaux ainsi qu'un contrôle d'accès basé sur l'utilisateur, le domaine ou l'adresse IP. L'encryptage TLS sera disponible dans une future version de CUPS.
Tout fichier ou groupe de fichiers soumis à l'impression est appelé un travail d'impression. Les travaux d'impression sont identifiés par un nombre unique en commençant à 1 et sont affectés à une destination particulière, généralement une imprimante. Les travaux d'impression peuvent également inclure des options associées telles que la taille du support d'impression, le nombre de copies et la priorité dans la file d'impression.
CUPS prend en charge des collections d'imprimantes connues sous le nom de classes. Les travaux d'impression transmis à une classe d'imprimantes sont envoyés à la première imprimante disponible dans la classe.
Les filtres permettent à un utilisateur ou une application d'imprimer de nombreux types de documents sans effort supplémentaire. Les travaux d'impressions envoyés au serveur CUPS sont filtrés avant d'être envoyés à l'imprimante. Certains filtres convertissent les fichiers de travaux d'impression dans différents formats que l'imprimante peut comprendre. D'autres ne font que des sélections de page et des tris.
CUPS fournit des filtres pour imprimer de nombreux types de fichiers image, des fichier HP-GL/2, fichiers PDF et texte. CUPS fournit également des filtres PostScript et RIP (Raster Image Processor) qui convertissent les fichiers PostScript ou image en format "bitmap" qui peut être envoyé à une imprimante de type "matriciel" (NdT : il s'agit ici, des imprimantes dont l'impression est générée au moyen d'une grille de points comme l'étaient les vénérables imprimantes à aiguilles de notre enfance, mais pas seulement elles puisque les imprimantes à jet d'encre actuelles sont également de type matriciel... par opposition aux imprimantes laser dont la méthode de génération d'impression est différente.)
Les programmes d'arrière-plan effectuent le travail le plus important : ils envoient les données d'impression à l'imprimante.
CUPS fournit des programmes d'arrière-plan pour imprimer via des ports de type parallèle, série, USB et à travers un réseau au moyen des protocoles IPP, JetDirect (AppSocket) et LPD (Line Printer Daemon). Des programmes d'arrière-plan additionnels sont disponibles sous forme de paquetage de service réseau comme le programme d'arrière_plan SMB inclus dans le célèbre logiciel SAMBA.
Les programmes d'arrière-plan sont également utilisés pour déterminer les périphériques disponibles. Au démarrage, chaque programme d'arrière-plan est interrogé afin de déterminer la liste des périphériques qu'il prend en charge, ainsi que toute information disponible. Cela permet au programme d'arrière-plan de gestion du port parallère d'indiquer à CUPS qu'une imprimante EPSON Stylus Color 600 est branchée sur le port parallèle 1, par exemple.
Les pilotes d'imprimantes de CUPS consistent en un ou plusieurs filtres spécifiques à une imprimante. CUPS inclut des pilotes d'imprimantes d'exemple pour les imprimantes Deskjet et LaserJet Hewlett-Packard et les imprimantes EPSON jet d'encre couleur Stylus Color, Stylus Photo et les modèles 9 et 24 aiguilles matricielles. Bien que ces pilotes ne produisent pas des impressions de qualité optimale pour les différents modèles d'imprimantes, ils fournissent une impression de base et démontrent comment vous pouvez écrire vos propres pilotes d'imprimantes et les incorporer dans CUPS.
Les imprimantes et classes d'imprimantes sur le système local sont automatiquement partagées avec les autres systèmes sur le réseau. Cela vous permet de configurer un système hôte pour tous les autres. Les utilisateurs pourront sélectionner une imprimante locale par son nom ou une imprimante à distance en utilisant la syntaxe "nom_imprimante@serveur".
CUPS fournit également des classes d'imprimantes implicites (NdT : le terme "implicite" est ici la traduction litérale du même mot anglais "implicit" et non celle de l'expression "default". cf. ma remarque dans la préface du présent manuel. De toute façon, CUPS ne prévoit pas de "default class" c'est-à-dire de "classe de base", donc aucune ambiguïté possible ici.), qui sont des collections d'imprimantes ou de classes d'imprimantes qui portent le même nom. Cela vous permet de configurer de multiples serveurs pointant vers la même imprimante réseau physique, par exemple, de sorte que vous ne dépendez pas d'un seul serveur pour pouvoir imprimer. Etant donné que cette méthode vous permet de travailler avec des classes d'imprimantes, vous pouvez configurer de multiples serveurs et imprimantes sans jamais vous soucier d'un simple point en panne tant que tous les autres serveurs ne tombent pas en panne en même temps.
Ce chapitre décrit comment construire et installer CUPS. Si vous installez une distribution binaire (précompilée) du produit, veuillez vous reporter à la section, Installer une distribution binaire.
Cette section décrit comment compiler et installer CUPS sur votre système à partir du code source du produit.
Vous aurez besoin d'un compilateur C et C++ conforme à la norme ANSI pour construire CUPS sur votre système. Comme son nom l'indique, CUPS est conçu pour fonctionner sur le système d'exploitation UNIX, cependant la plupart des librairies, des filtres et des programmes d'arrière-plan devraient également se compiler et fonctionner sous Microsoft Windows.
Pour les filtres de fichiers image et PostScript, vous aurez besoin des librairies JPEG, PNG, TIFF et ZLIB. CUPS se construira sans elles mais avec des fonctionnalités singulièrement réduites. Easy Software Products maintient un miroir des versions actuelles de ces librairies à l'adresse:
ftp://ftp.easysw.com/pub/libraries
Si vous faîtes des changements dans les pages de manuel vous aurez besoin de GNU groff ou d'un autre paquetage compatible nroff. GNU groff est disponible à l'adresse:
ftp://ftp.gnu.org/pub/groff
La documentation est formatée en utilisant le programme HTMLDOC. Si vous voulez faire des changements, vous pouvez obtenir le programme HTMLDOC à l'adresse:
http://www.easysw.com/htmldoc
Enfin, vous aurez besoin d'un programme make
qui
comprend les directives include
- les développeurs
FreeBSD, NetBSD et OpenBSD devraient utiliser le programme gmake
.
CUPS utilise GNU autoconf pour configurer les "makefiles" et le code source pour votre système. Tapez simplement la commande suivante pour configurer CUPS pour votre système:
./configure ENTREE
L'installation standard installera CUPS dans les répertoires
/etc, /usr, et /var de votre système, ce
qui écrasera toute commande d'impression existant déjà dans votre
système. Utilisez l'option --prefix
pour installer CUPS à
un autre emplacement:
./configure --prefix=/autre/répertoire ENTREE
Si les librairies PNG, JPEG, TIFF, et ZLIB ne sont pas installées à
un emplacement habituel du système (généralement il s'agit de
/usr/include et /usr/lib) vous devrez définir les
variables d'environnement CFLAGS
, CXXFLAGS
,
et LDFLAGS
avant d'exécuter la commande configure:
setenv CFLAGS "-I/some/directory" ENTREE setenv CXXFLAGS "-I/some/directory" ENTREE setenv LDFLAGS "-L/some/directory" ENTREE setenv DSOFLAGS "-L/some/directory" ENTREE ./configure ... ENTREE
ou:
CFLAGS="-I/some/directory"; export CFLAGS ENTREE CXXFLAGS="-I/some/directory"; export CXXFLAGS ENTREE LDFLAGS="-L/some/directory"; export LDFLAGS ENTREE DSOFLAGS="-L/some/directory"; export DSOFLAGS ENTREE ./configure ... ENTREE
Pour activer le support de l'encryptage, vous devrez également activer l'option "--enable-ssl":
./configure --enable-ssl
La prise en charge SSL et TLS nécessite la librairie OpenSSL, disponible à l'adresse:
http://www.openssl.org
Si les en-têtes et les librairies OpenSSL ne sont pas installées dans
les répertoires standards, utilisez les options
--with-openssl-includes
et --with-openssl-libs
:
./configure --enable-ssl \ --with-openssl-includes=/foo/bar/include \ --with-openssl-libs=/foo/bar/lib
Une fois que vous avez configuré toutes ces choses, tapez simplement:
make ENTER
pour compiler le logiciel.
Utilisez la cible "install" pour installer le logiciel:
make install ENTREE
AVERTISSEMENT:
Installer CUPS écrasera votre système d'impression précédent. Si vous rencontrez des difficultés avec le logiciel CUPS et devez revenir à votre ancien système d'impression, vous devrez réinstaller celui-ci à partir de CD originaux de votre système d'exploitation. |
Une fois que vous avez installé le logiciel vous pouvez démarrer le serveur CUPS en tapant:
/usr/sbin/cupsd ENTREE
CUPS est fourni dans une variété de formats binaires. Easy Software Products fournit des binaires sous forme d'archives au format TAR avec des scripts d'installation et de désinstallation (distributiond dites "portables"), sous forme de format RPM et DPKG pour les distributions RedHat et Debian. Les distributions portables sont disponibles pour toutes les plateformes tandis que les distributions RPM et DPKG ne le sont que pour GNU/Linux
AVERTISSEMENT:
Installer CUPS écrasera votre système d'impression précédent. Si vous rencontrez des difficultés avec le logiciel CUPS et devez revenir à votre ancien système d'impression, vous devrez réinstaller celui-ci à partir de CD originaux de votre système d'exploitation. |
Pour installer le logiciel CUPS à partir d'une distribution portable
vous devrez ouvrir une session en tant qu'utilisateur root; utiliser la
commande su
est suffisant. Une fois que vous êtes
utilisateur root, lancer le script d'installation avec la commande:
./cups.install ENTREE
Après vous avoir posé quelques questions de type oui/non, le logiciel CUPS va s'installer et l'ordonnanceur sera démarré automatiquement.
Pour installer le logiciel CUPS à partir d'une distribution RPM vous
devez ouvrir une session en tant qu'utilisateur root; utiliser la
commande su
est suffisant. Une fois connecté en tant
qu'utilisateur root, lancez simplement RPM au moyen de la commande:
rpm -e lpr rpm -i cups-1.1-linux-M.m.n-intel.rpm ENTREE
Après un petit délai, le logiciel CUPS sera installé et l'ordonnanceur sera démarré automatiquement.
Pour installer le logiciel CUPS à partir d'une distribution DEBIAN
vous devez ouvrir une session en tant qu'utilisateur root; utiliser la
commande su
est suffisant. Une fois connecté en tant
qu'utilisateur root, lancez simplement dpkg au moyen de la commande:
dpkg -i cups-1.1-linux-M.m.n-intel.deb ENTREE
Après un court délai, le logiciel CUPS sera installé et l'ordonnanceur sera automatiquement démarré.
Ce chapitre décrit comment ajouter votre première imprimante et comment administrer vos imprimantes.
Chaque file d'impression a un nom associé; le nom de l'imprimante doit commencer avec une lettre et peut comporter jusqu'à 127 lettres, des chiffres ou un caractère de soulignement "_" ("underscore"). La casse des caractères n'est pas significative, par exemple les chaînes de caractères "IMPRIMANTE", "Imprimante" et "imprimante" sont considérées comme le même nom.
Les files d'impression ont également un périphérique associé. Ce
périphérique peut être un port parallèle, une interface réseau, etc.
Les périphériques dans CUPS utilisent des URI (Uniform Resource
Identifiers) qui sont une forme plus générale des URL (Uniform Resource
Locator) qui sont utilisés par votre noavigateur "web". Par exemple, le
premier port parallèle dans GNU/Linux est habituellement désigné par
l'URI de périphérique parallel:/dev/lp1
.
Vous pouvez voir une liste complète des périphériques pris en charge
en lançant la commande lpinfo(8)
:
lpinfo -v ENTREE file file network socket network http network ipp network lpd direct parallel:/dev/lp1 serial serial:/dev/ttyS1?baud=115200 serial serial:/dev/ttyS2?baud=115200 direct usb:/dev/usb/lp0 network smb
L'option -v
indique que vous voulez la liste de tous les
périphériques disponibles. Le premier mot de chaque ligne est le type
de périphérique (direct, fichier, réseau, série) et est suivi par l'URI
du périphérique ou le nom de la méthode d'accès à ce périphérique. Les
périphériques de type fichier ont des URI de périphérique de la forme
file:/répertoire/nom_fichier
tandis que les périphériques réseau
utilisent la forme plus familière methode://serveur
ou
méthode://serveur/chemin
.
Enfin, les files d'impression ont généralement un fichier PPD (PostScript Printer Definition) associé. Les fichiers PPD décrivent les capacités de chaque imprimante, les tailles de support prises en charge, etc., et sont utilisés pour les imprimantes PostScript et non-PostScript. CUPS inclut des fichiers PPD pour les imprimantes HP LaserJet et Deskjet, EPSON Stylus, et EPSON 9 et 24 aiguilles.
CUPS fournit deux méthodes pour ajouter des imprimantes : un
programme en ligne de commande nommé lpadmin(8)
et une
inteface "web". La commande lpadmin
vous permet
d'effectuer la plupart des tâches d'administration d'imprimantes à
partir de la ligne de commande, elle est située dans le répertoire
/usr/sbin. L'interface "web" est disponible à l'adresse:
http://localhost:631/admin
et vous quide pas à pas au travers des étapes de configuration d'imprimante. Si vous n'aimez pas les interfaces en ligne de commande, essayez plutôt l'interface web.
Exécutez la commande lpadmin
avec l'option -p
pour ajouter une imprimante à CUPS:
/usr/sbin/lpadmin -p imprimante -E -v périphérique -m ppd ENTREE
Pour une imprimante HP DeskJet connectée au port parallèle, la commande serait:
/usr/sbin/lpadmin -p DeskJet -E -v parallel:/dev/lp1 -m deskjet.ppd ENTREE
De la même manière, une imprimante HP LaserJet utilisant une interface réseau de type JetDirect à l'adresse IP 11.22.33.44 serait ajoutée avec la commande:
/usr/sbin/lpadmin -p LaserJet -E -v socket://11.22.33.44 -m laserjet.ppd ENTREE
Comme vous pouvez le voir, deskjet.ppd
et
laserjet.ppd
sont les fichiers PPD pour les pilotes HP DeskJet et
HP LaserJet inclus dans CUPS. Vous trouverez une liste complète des
fichiers PPD ainsi que celle des imprimantes avec lesquelles ils
fonctionnent dans l'Annexe C, "Pilotes
d'imprimantes".
Pour une imprimante matricielle à aiguilles connectée au port série, la commande serait:
/usr/sbin/lpadmin -p DotMatrix -E -v serial:/dev/ttyS0?baud=9600+size=8+parity=none+flow=soft deskjet.ppd ENTREE
Ici, vous indiquez le port série (par exemple S0, S1, d0, s1), le taux de transfert en bauds (par exemple 9600, 19200, 38400, 115200, etc.), le nombre de bits de partié, et le contrôle de flux. Si vous n'avez pas besoin de contrôle de flux, supprimez la partie "+flow=soft".
Le serveur CUPS fournit une interface ergonomique sous forme d'un assistant ("wizard") pour ajouter les imprimantes. Plutôt que devoir déterminer quel URI de périphérique et quel fichier PPD utiliser, vous cliquez simplement sur l'option adéquate de la liste et vous remplissez quelques champs de formulaires avec des informations simples. Entrez l'adresse suivante dans votre navigateur "web" pour commencer:
http://localhost:631/admin
Cliquez sur le bouton Ajouter imprimante pour en ajouter une.
La commande lpadmin
vous permet d'effectuer la plupart
des tâches d'administration d'imprimantes depuis la ligne de commande.
Vous trouverez lpadmin
dans le répertoire /usr/bin
.
Exécutez la commande lpadmin
avec l'option -p
pour ajouter ou modifier une imprimante.
/usr/sbin/lpadmin -p imprimante options ENTREE
Les arguments options peuvent être n'importe lesquels parmi:
-m
. Une liste de tous les
pilotes d'imprimantes inclus dans CUPS peut être consultée dans l'
Annexe C, "Pilotes d'imprimantes".enable(1)
et
accept(8)
.Exécutez la commande lpadmin
avec l'option -x
pour supprimer une imprimante:
/usr/sbin/lpadmin -x printer ENTREE
Exécutez la commande lpadmin
avec l'option -d
pour définir l'imprimante standard:
/usr/sbin/lpadmin -d printer ENTREE
L'imprimante standard peut-être outrepassée par l'utilisateur au
moyen de la commande lpoptions(1)
.
Les commandes enable
et disable
démarrent
et arrêtent les files d'impression, avec les syntaxes respectives
suivantes :
/usr/bin/enable imrimante ENTREE /usr/bin/disable imprimante ENTREE
Note du traducteur : utilisateurs du shell BASH attention !
enable
est une commande interne de celui-ci. Si vous tapez
simplement enable
vous obtiendrez un message d'erreur car
c'est la version interne de BASH qui sera utilisée en standard. Pour
effectivement utiliser la commande enable
de CUPS vous
devez faire précéder son nom du chemin d'accès complet :
/usr/bin/enable
.
Les imprimantes qui sont désactivées peuvent toujours accepter les travaux d'impression mais n'en imprimeront effectivement aucun tant qu'elle ne seront pas réactivées. Cela est utile si une imprimante fonctionne mal et que vous avez besoin de corriger le problème (bourrage). Tout travail d'impression mis en file d'attente est imprimé dès que la l'imprimante est réactivée.
Les commandes accept
et reject
permettent
respectivement d'indiquer à une imprimante qu'elle doit accepter ou
rejeter les nouveaux travaux d'impression:
/usr/sbin/accept imprimante ENTREE /usr/sbin/reject imprimante ENTREE
Comme indiqué ci-dessus, une imprimante peut être configurée pour ne plus accepter de nouveaux travaux d'impression. Une imprimante peut aussi rejeter les nouveaux travaux d'impression bien qu'elle soit en train de terminer le traitement de ceux qui ont été mis en file d'attente avant que celle-ci soit désactivée. Ceci est utile si vous avez besoin d'effectuer des opérations de maintenance sur l'imprimante et que vous ne voulez pas qu'elle soit disponible pour les utilisateurs pendante une longue période.
L'interface "web" est disponible à l'adresse:
http://localhost:631/admin
Depuis celle-ci vous pouvez effectuer toutes les tâches d'administrations sur les imprimantes au moyen de quelques clics de souris.
Ce chapitre décrit ce que sont les classes d'imprimantes et comment les administrer.
CUPS fournit des collections d'imprimantes appelées classes d'imprimantes. Les travaux soumis à une classe sont transmis à la première imprimante disponible de la classe. Les classes peuvent elles auusi être membres d'autres classes, ainsi il est possible que vous définissiez de grandes classes réparties afin de fournir un système d'impression à haute disponibilité.
CUPS prend également en charge les classe implicites. Les classes implicites fonctionnent comme les classes d'imprimantes, mais elles sont créées automatiquement à partir des classes et imprimantes disponibles sur le réseau. Cela vous permet de configurer de multiples serveurs d'impression avec des configurations d'imprimantes identiques de sorte que les systèmes clients envoient des travaux d'impression au premier serveur disponible. Si un ou plusieurs serveurs deviennent indisponibles, les travaux d'impressions sont automatiquement redirigés vers les serveurs encore en fonctionnement, fournissant ainsi un système d'impression résistant aux pannes.
Exécutez la commande lpadmin
avec les options -p
et -c
pour ajouter une classe d'imprimantes:
/usr/sbin/lpadmin -p imprimante -c classe ENTREE
La classe est créée automatiquement si elle n'existe pas. Pour
retirer une imprimante d'une classe, utilisez l'option -r
:
/usr/sbin/lpadmin -p imprimante -r classe ENTREE
Pour enlever toute la classe, utilisez l'option -x
:
/usr/sbin/lpadmin -x classe ENTREE
L'interface "web" est disponible à l'adresse:
http://localhost:631/admin
Les pages Ajouter classe et Modifier classe fournissent une liste des imprimantes disponibles. Cliquez sur la ou les imprimantes de votre choix pour les ajouter à la classe.
Comme indiqué auparavant, les classes implicites sont automatiquement
créées à partir des imprimantes et des classes disponibles sur le
réseau. Pour désactiver cette fonctionnalité, réglez la valeur de la
directive ImplicitClasses
sur Off
dans le fichier cupsd.conf
. Vous
trouverez plus d'information sur la manière de faire cela dans le
Chapitre 6, "Administration du système d'impression".
Ce chapitre expose diverses manières de configurer les clients CUPS pour pouvoir imprimer.
Un client est toute machine qui envoie des travaux d'impression à une autre machine pour édition finale. Les clients peuvent également être des serveurs s'il communiquent directement avec des imprimantes qui leur appartiennent.
CUPS prend en charge plusieurs méthodes pour configurer les machines clientes:
La méthode la plus fastidieuse pour configurer les machines clientes
est de configurer chaque file d'impression à distance à la main au
moyen de la commande lpadmin
:
lpadmin -p imprimante -E -v ipp://serveur/printers/imprimante ENTREE
Le nom imprimante est le nom de l'imprimante sur la machine
serveur. Le nom serveur
est le nom d'hôte ou l'adresse IP
de la machine serveur. Répètez la commande lpadmin
pour
chaque imprimante distante que vous désirez utilser.
CUPS peut être configuré pour fonctionnner sans file d'attente locale et envoyer tous les travaux d'impression à un serveur unique. Cependant, si ce serveur vient à tomber en panne, toute possibilité d'imprimer sera supprimée. Utilisez cette configuration uniquement lorsque c'est absolument nécessaire.
Le serveur implicite est normalement "localhost". Pour outrepasser ce réglage de base, créez un fichier nommé /etc/cups/client.conf et ajoutez une ligne:
ServerName serveur
au fichier. Le nom serveur peut être le nom d'hôte ou l'adresse IP du serveur implicite.
Le serveur implicite peut également être adapté en fonction de l'utilisateur. Pour créer un réglage spécifique à l'utilisateur, créez un fichier nommé ~/.cupsrc et ajoutez une ligne:
ServerName serveur
au fichier. Le nom serveur peut être le nom d'hôte ou l'adresse IP du serveur implicite.
CUPS prend en charge la configuration automatique des clients pour les imprimantes sur le même sous-réseau. Pour configurer des imprimantes présentes sur le même sous-réseau, ne faîtes rien. Chaque client devrait voir automatiquement les imprimantes disponibles dans un délai de 30 secondes. Les listes des classes et des imprimantes sont automatiquement mises à jour chaque fois que des imprimantes et des serveurs sont ajoutés ou retirés.
Si vous désirez également voir les imprimantes sur d'autres
sous-réseau, utilisez la directive
BrowsePoll
comme indiqué ci-après.
Si vous disposez de plusieurs serveurs CUPS sur plusieurs sous-réseaux, vous devriez configurer CUPS pour surveiller ces serveurs. La surveillance fournit l'avantage d'automatiser singulièrement la configuration sur les clients, et plusieurs clients sur le même sous-réseau peuvent partager les mêmes informations de configuration.
La surveillance est activée en indiquant une ou plusieurs directives BrowsePoll
dans le fichier
/etc/cups/cupsd.conf. Pour savoir comment faire ces changements,
veuillez vous reporter au Chapitre 6,
"Administration du système d'impression".
Ce chapitre montre comment configurer le serveur CUPS.
Plusieurs fichiers texte sont utilisés pour configurer CUPS. Tous les fichiers de configuration du serveur sont placés dans le répertoire /etc/cups:
lpadmin
ou l'interface "web".
lpadmin
ou l'interface "web".
Une fois que vous avez fait des changements au fichier de
configuration, vous devez redémarrer le serveur CUPS en lui envoyant un
signal HUP
ou en utilisant le script d'initialisation
adéquat. Les distributions de CUPS installent le script dans le
répertoire init.d sous le nom cups. L'emplacement
varie selon le système d'exploitation:
/etc/rc.d/init.d/cups restart ENTREE /etc/init.d/cups restart ENTREE /sbin/init.d/cups restart ENTREE
Le fichier /etc/cups/cupsd.conf contient des directives de configuration qui contrôlent le fonctionnement du serveur. Chaque directive suivie de sa valeur est disposée seule sur une ligne. Les commentaires sont ouverts par le signe dièse ("#") au début de la ligne. Etant donné que le fichier de configuration du serveur est un fichier texte, vous pouvez le modifier au moyen de votre éditeur de texte préféré.
Le fichier cupsd.conf contient de nombreuses directives qui déterminent le comportement du serveur:
AccessLog /var/log/cups/access_log AccessLog /var/log/cups/access_log-%s AccessLog syslog
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.
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.
Le fichier de suivi d'accès implicite est /var/log/cups/access_log.
Allow from All Allow from None Allow from *.domain.com Allow from .domain.com Allow from host.domain.com Allow from nnn.* Allow from nnn.nnn.* Allow from nnn.nnn.nnn.* Allow from nnn.nnn.nnn.nnn Allow from nnn.nnn.nnn.nnn/mm Allow from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
La directive Allow
indique un nom d'hôte, une adresse IP
ou un réseau qui est autorisé à accéder au serveur. Les directives
Allow
se cumulent, ainsi plusieurs directives Allow
peuvent être utilisées pour autoriser l'accès à de multiples hôtes
et/ou réseaux. La notation /mm
indique une notation de
sous-réseau CIDR:
mm | netmask | mm | netmask |
---|---|---|---|
0 | 0.0.0.0 | 8 | 255.0.0.0 |
1 | 128.0.0.0 | 16 | 255.255.0.0 |
2 | 192.0.0.0 | 24 | 255.255.255.0 |
... | ... | 32 | 255.255.255.255 |
La directive Allow
doit apparaître à l'intérieur d'une
directive Location
.
AuthClass Anonymous AuthClass User AuthClass System AuthClass Group
La directive AuthClass
définit le niveau
d'authentification requis:
Anonymous
- Pas d'authentification nécessaire. C'est la
valeur impliciteUser
- Un nom d'utilisateur et un mot de passe valides
sont requis.System
- Un nom d'utilisateur et un mot de passe
valides sont requis, et cet utilisateur doit être membre du groupe
"sys"; cela peut être changé au moyen de la directive
SystemGroup
.Group
- Un nom d'utilisateur et un mot de passe valides
sont requis, et cet utilisateur doit être membre du groupe indiqué dans
la directive AuthGroupName
.La directive AuthClass
doit apparaître à l'intérieur
d'une directive Location
.
AuthGroupName mygroup AuthGroupName lp
La directive AuthGroupName
définit le groupe à utiliser
pour l'authentification de type Group
.
La directive AuthGroupName
doit apparaître à l'intérieur
d'une directive Location
.
AuthType None AuthType Basic AuthType Digest AuthType BasicDigest
La directive AuthType
définit le type d'authentification
qui doit être effectuée:
None
- Pas d'authentification. C'est la valeur
impliciteBasic
- Une authentification "Basic" doit être
effectuée en utilisant le fichier de mots de passe et de groupe d'UNIX.Digest
- Une authentification "Digest" doit être
effectuée en utilisant le fichier /etc/cups/passwd.md5.BasicDigest
- Une authentification "Basic" doit être
effectuée en utilisant le fichier /etc/cups/passwd.md5. Lorsque vous utilisez Basic
, Digest
, ou
BasicDigest
, les clients se connectant en utilisant l'adresse
localhost
peuvent également le faire en utilisant les
certificats.
La directive AuthType
doit apparaître à l'intérieur
d'une directive Location
.
AutoPurgeJobs Yes AutoPurgeJobs No
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
.
BrowseAddress 255.255.255.255:631 BrowseAddress 192.0.2.255:631 BrowseAddress host.domain.com:631
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é.
NOTA:
Si vous utilisez HP-UX 10.20 sur un sous-réseau dont le masque n'est pas sur 24, 16 ou 8 bits, l'exploration des imprimantes (et en fait toute réception d'information diffusée) ne fonctionnera pas. Ce problème semble résolu dans HP-UX 11.0. |
BrowseAllow from all BrowseAllow from none BrowseAllow from 192.0.2 BrowseAllow from 192.0.2.0/24 BrowseAllow from 192.0.2.0/255.255.255.0 BrowseAllow from *.domain.com
La directive BrowseAllow
indique un système dont on
accepte de recevoir des paquets d'exploration. Le comportement
implicite est d'accepter des paquets d'exploration 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 from all BrowseDeny from none BrowseDeny from 192.0.2 BrowseDeny from 192.0.2.0/24 BrowseDeny from 192.0.2.0/255.255.255.0 BrowseDeny from *.domain.com
La directive BrowseDeny
indique un système dont on
refuse de recevoir des paquets d'exploration. Le comportement implicite
est de ne refuser aucun paquet d'exploration d'aucun 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é.
BrowseOrder allow,deny BrowseOrder deny,allow
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.BrowseInterval 0 BrowseInterval 30
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.
BrowsePoll 192.0.2.2:631 BrowsePoll host.domain.com:631
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.
BrowsePort 631 BrowsePort 9999
La directive BrowsePort
indique un numéro de port UDP à
employer pour les échanges de paquets d'exploration. La valeur
implicite est 631.
NOTE:
Vous devez choisir une valeur identique pour la directive |
BrowseProtocols CUPS BrowseProtocols SLP BrowseProtocols CUPS SLP BrowseProtocols all
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").
NOTE:
Lorsque vous utilisez le protocole |
BrowseRelay 193.0.2.1 192.0.2.255 BrowseRelay 193.0.2.0/255.255.255.0 192.0.2.255 BrowseRelay 193.0.2.0/24 192.0.2.255 BrowseRelay *.domain.com 192.0.2.255 BrowseRelay host.domain.com 192.0.2.255
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.
BrowseShortNames Yes BrowseShortNames No
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")
La valeur implicite de cette option est Yes
.
BrowseTimeout 300 BrowseTimeout 60
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.
Browsing On Browsing Off
La directive Browsing
contrôle l'activation ou non de
l'exploration réseau des imprimantes. La valeur implicite est On
.
NOTE:
Si vous utilisez HP-UX 10.20 sur un sous-réseau dont le masque n'est pas sur 24, 16 ou 8 bits, l'exploration des imprimantes (et en fait toute réception d'information diffusée) ne fonctionnera pas. Ce problème semble résolu dans HP-UX 11.0. |
Classification Classification classified Classification confidential Classification secret Classification topsecret Classification unclassified
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.
ClassifyOverride Yes ClassifyOverride No
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é.
La valeur implicite est de ne pas autoriser les utilisateurs à outrepasser la classification.
DataDir /usr/share/cups
La directive DataDir
fixe le répertoire à employer pour
les fichiers de données.
DefaultCharset utf-8 DefaultCharset iso-8859-1 DefaultCharset windows-1251
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
.
DefaultLanguage de DefaultLanguage en DefaultLanguage es DefaultLanguage fr DefaultLanguage it
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".
Deny from All Deny from None Deny from *.domain.com Deny from .domain.com Deny from host.domain.com Deny from nnn.* Deny from nnn.nnn.* Deny from nnn.nnn.nnn.* Deny from nnn.nnn.nnn.nnn Deny from nnn.nnn.nnn.nnn/mm Deny from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
La directive Deny
indique un nom d'hôte, une adresse IP
ou un réseau qui n'est pas autorisé à accéder au serveur. Les
directives Deny
se cumulent, ainsi plusieurs directives
Deny
peuvent être utilisées pour interdire l'accès à de multiples
hôtes et/ou réseaux. La notation /mm
indique une notation
de sous-réseau CIDR:
mm | netmask | mm | netmask |
---|---|---|---|
0 | 0.0.0.0 | 8 | 255.0.0.0 |
1 | 128.0.0.0 | 16 | 255.255.0.0 |
2 | 192.0.0.0 | 24 | 255.255.255.0 |
... | ... | 32 | 255.255.255.255 |
La directive Deny
doit apparaître à l'intérieur d'une
directive Location
.
DocumentRoot /usr/share/doc/cups DocumentRoot /foo/bar/doc/cups
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/doc/cups.
Les documents sont d'abord recherchés dans un sous-répertoire
correspondant à la langue demandée par le client (par exemple
/usr/share/doc/cups/fr/...) et ensuite directement dans le
répertoire DocumentRoot
(par exemple
/usr/share/doc/cups/...), ainsi il est possible de localiser le
contenu "web" en fournissant des sous-répertoires pour chaque langue
nécessaire.
Encryption Never Encryption IfRequested Encryption Required Encryption Always
La directive Encryption
doit apparaître à l'intérieur
d'une section Location
et définit
les réglages d'encryptage pour cet emplacement. Le réglage implicite
est IfRequested
pour tous les emplacements.
ErrorLog /var/log/cups/error_log ErrorLog /var/log/cups/error_log-%s ErrorLog syslog
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
.
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.
FilterLimit 0 FilterLimit 200 FilterLimit 1000
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.
FontPath /foo/bar/fonts FontPath /usr/share/cups/fonts:/foo/bar/fonts
La directive FontPath
définit le chemin de recherche des
polices de caractères à utiliser. La valeur implicite est
/usr/share/cups/fonts
.
Group sys Group system Group root
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 le système d'exploitation.
HideImplicitMembers Yes HideImplicitMembers No
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.
HostNameLookups On HostNameLookups Off HostNameLookups Double
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.
ImplicitClasses On ImplicitClasses Off
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
.
ImplicitAnyClasses On ImplicitAnyClasses Off
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.
Include filename Include /foo/bar/filename
La directive Include
inclut le fichier indiqué dans le
corps du fichier cupsd.conf
. Si aucun chemin n'est
indiqué, le fichier est considéré comme étant relatif au répertoire
ServerRoot
.
KeepAlive On KeepAlive Off
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.
KeepAliveTimeout 60 KeepAliveTimeout 30
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.
<Limit GET POST> ... </Limit> <Limit ALL> ... </Limit>
La directive Limit
groupe les directives de contrôle
d'accès pour certains types spécifiques de requêtes HTTP et doit
apparaître à l'intérieur d'une section
Location
. L'accès peut être limité à des types individuels de
requêtes (DELETE
, GET
, HEAD
,
OPTIONS
, POST
, PUT
, et TRACE
) ou pour tous les types de requêtes (ALL
). Les noms de
types de requêtes sont dépendants de la casse pour des raisons de
compatibilité avec Apache.
<LimitExcept GET POST> ... </LimitExcept>
La directive LimitExcept
groupe les directives de
contrôle d'accès pour certains types spécifiques de requêtes HTTP et
doit apparaître à l'intérieur d'une section
Location
. Contrairement à la directive
Limit
, LimitExcept
restreint l'accès pour toutes
les requêtes à l'exception de celles listées dans la ligne
LimitExcept
.
LimitRequestBody 10485760 LimitRequestBody 10m LimitRequestBody 0
La directive LimitRequestBody
contrôle la taille
maximale des fichiers d'impression, des requêtes IPP, et des données
des formulaires HTML dans les requêtes HTTP POST. La limite implicite
est de 0 ce qui désactive la vérification de la limite.
Reportez-vous également à la directive similaire
MaxRequestSize
.
Listen 127.0.0.1:631 Listen 192.0.2.1:631
La directive Listen
indique une adresse réseau et un
port sur lequel écouter en attente de connexions. Plusieurs directives
Listen
peuvent être indiquées pour écouter sur de multiples
adresses.
La directive Listen
est similaire à la directive
Port
mais vous permet de restreindre l'accès à des
interfaces ou des réseaux spécifiques.
<Location /> ... </Location> <Location /admin> ... </Location> <Location /printers/name> ... </Location>
La directive Location
indique des options de contrôle
d'accès et d'authentification pour le chemin ou la ressource HTTP
indiquée. Des informations supplémentaires sont disponibles plus loin
dans le chapitre dans la section "Sécurité
du système d'impression".
LogLevel none LogLevel emerg LogLevel alert LogLevel crit LogLevel error LogLevel warn LogLevel notice LogLevel info LogLevel debug LogLevel debug2
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.MaxClients 100 MaxClients 1024
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.
NOTE:
Etant donné que chaque travail d'impression demande un descripteur de
fichier pour le tube de contrôle, le serveur CUPS limite de manière
interne la valeur |
MaxJobs 100 MaxJobs 9999 MaxJobs 0
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é.
Régler cette valeur sur 0 (valeur implicite) désactive cette fonctionnalité.
MaxJobsPerPrinter 100 MaxJobsPerPrinter 9999 MaxJobsPerPrinter 0
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 le maximum sur la valeur 0 (valeur implicite) désactive cette fonctionnalité.
MaxJobsPerUser 100 MaxJobsPerUser 9999 MaxJobsPerUser 0
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 le maximum sur 0 (valeur implicite) désactive cette fonctionnalité.
MaxLogSize 1048576 MaxLogSize 1m MaxLogSize 0
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.
MaxRequestSize 10485760 MaxRequestSize 10m MaxRequestSize 0
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.
Reportez-vous également à la directive similaire
LimitRequestBody
.
Order Allow,Deny Order Deny,Allow
La directive Order
définit le type implicite de contrôle
d'accès. Les valeurs suivantes sont prises en charge:
Allow,Deny
- Autorise les requêtes depuis tous les
systèmes à l'exception de ceux listés dans une directive
Deny
.Deny,Allow
- Autorise les requêtes uniquement depuis
les hôtes listés dans une directive Allow
.La directive Order
doit apparaître à l'intérieur d'une
directive Location
.
PageLog /var/log/cups/page_log PageLog /var/log/cups/page_log-%s PageLog syslog
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
.
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.
Port 631 Port 80
La directive Port
indique un port sur lequel écouter en
attente de connexions. Plusieurs lignes Port
peuvent être
indiquées pour écouter sur plusieurs ports. La valeur implicite est
631.
PreserveJobHistory On PreserveJobHistory Off
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.
PreserveJobFiles On PreserveJobFiles Off
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.
Printcap Printcap /etc/printcap Printcap /etc/printers.conf
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.
PrintcapFormat BSD PrintcapFormat Solaris
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.
PrintcapGUI /usr/bin/glpoptions
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.
RemoteRoot remroot RemoteRoot root
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é.
RequestRoot /var/spool/cups RequestRoot /foo/bar/spool/cups
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.
Require group foo bar Require user john mary Require valid-user
La directive Require
indique que l'authentification est
nécessaire pour l'accès à la ressource considérée. Le mot clef
group
indique que l'utilisateur authentifié doit être membre d'un
ou plusieurs des groupes qui suivent.
Le mot clef user
indique que l'utilisateur authentifié
doit être l'un des utilisateurs dont les noms suivent.
Le mot clef valid-user
indique que tout utilisateur
authentifié peut accéder à la ressource.
Le comportement implicite ("par défaut") est de ne faire aucune
authentification. Cette directive doit apparaître à l'intérieur d'une
directive Location
.
RIPCache 8m RIPCache 1g RIPCache 2048k
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, ou "g" pour
giga-octets. La taille implicite est de "8m", ou 8 méga-octets.
RunAsUser Yes RunAsUser No
La directive RunAsUser
contrôle si l'ordonnanceur
fonctionne sous l'identité d'un compte utilisateur non privilégié
(habituellement lp
). La valeur implicite est No
qui laisse l'utilisateur fonctionner en tant qu'utilisateur root
.
Note: Faire fonctionner CUPS en tant qu'utilisateur non
privilégié peut empêcher LPD et les imprimantes connectées localement
de fonctionner correctement en raison de problèmes de permissions. Le
programme d'arrière-plan lpd
utilisera automatiquement le
mode non privilégié ce qui est 100% conforme à la RFC 1179. Les
programmes d'arrière-plan parallel
, serial
,
et usb
auront besoin d'accès en écriture aux fichiers de
périphériques correspondants.
Satisfy all Satisfy any
La directive Satisfy
indique si toutes les conditions
doivent être satisfaites pour ouvrir l'accès à la ressource. Si la
valeur est all
alors toutes les conditions
d'authentification et de contrôle d'accès doivent être satisfaites pour
que l'accès soit autorisé.
Régler Satisfy
à la valeur any
autorise un
utilisateur à obtenir l'accès si l'authentification ou le contrôle
d'accès est satisfait. Par exemple, vous pourriez exiger
l'authentifiation pour l'accès à distance mais autoriser l'accès local
sans elle.
La valeur implicite est all
. Cette directive doit
apparaître à l'intérieur d'une directive
Location
.
ServerAdmin user@host ServerAdmin root@foo.bar.com
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.
ServerBin /usr/lib/cups ServerBin /foo/bar/lib/cups
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.
ServerCertificate /etc/cups/ssl/server.crt
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.
ServerKey /etc/cups/ssl/server.key
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 .
ServerName foo.domain.com ServerName myserver.domain.com
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.
ServerRoot /etc/cups ServerRoot /foo/bar/cups
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.
SSLListen 127.0.0.1:443 SSLListen 192.0.2.1:443
La directive SSLListen
indique une adresse réseau et un
port sur lequel écouter les tentatives de connexion sécurisées.
Plusieurs directives SSLListen
peuvent être fournies pour
indiquer plusieurs adresses sur lesquelles écouter.
La directive SSLListen
est similaire à la directive
SSLPort
mais vous permet de restreindre l'accès à
certaines interfaces ou réseaux.
SSLPort 443
La directive SSLPort
indique le port sur lequel écouter
les tentatives de connexions sécurisées. Plusieurs lignes SSLPort
peuvent être indiquées pour écouter les connexions sur plusieurs ports.
SystemGroup sys SystemGroup system SystemGroup root
La directive SystemGroup
indique le groupe système
d'aministration pour l'authentification de type System
.
Plus d'information peut être trouvée plus loin dans ce chapitre dans la
section "Sécurité du système d'impression"
.
TempDir /var/tmp TempDir /foo/bar/tmp
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
Timeout 300 Timeout 90
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.
User lp User guest
La directive User
indique l'utilisateur UNIX sous
l'identité duquel les programmes CGI et les filtres doivent
fonctionner. La valeur implicite est lp
.
CUPS prend en charge le contrôle d'accès et l'authentification basée sur l'adresse, un certificat ou un mot de passe (mode "Basic" et "Digest"). Les authentifications par mot de passe et certificat fournissent des moyens de limiter l'accès à certaines personnes ou certains groupes.
Le contrôle d'accès basé sur l'adresse vous permet de limiter l'accès à certains systèmes, réseaux ou domaines particuliers. Bien que cela ne soit pas de l'authentification, cela vous permet de restreindre efficacement le nombre potentiel d'utilisateurs de votre système.
CUPS maintient à jour une liste des emplacements dont
l'authentification et/ou le contrôle d'accès est/sont activé(e)(s). Ces
emplacements sont indiqués en utilisant la directive
Location
:
<Location /ressource> AuthClass ... AuthGroupName ... AuthType ... Order ... Allow from ... Deny from ... </Location>
Les emplacements suivent généralement la structure arborescente du
contenu du répertoire DocumentRoot
, cependant CUPS possède de nombreux emplacements virtuels pour
l'administration, les classes, les travaux d'impression et les
imprimantes:
Emplacement | Description |
---|---|
/admin | Le chemin pour toutes les opérations d'administration. |
/classes | Le chemin pour toutes les classes d'imprimantes. |
/classes/nom_classe | Les ressources pour la classe nommée
nom_classe . |
/jobs | Le chemin pour tous les travaux d'impression. |
/jobs/id | Les ressources pour le travail d'impression n°
id . |
/printers | Le chemin pour toutes les imprimantes. |
/printers/nom_imprimante | Le chemin pour l'imprimante
nommée nom_imprimante . |
/printers/nom_imprimante.ppd | Le chemin du fichier PPD
pour l'imprimante nom_imprimante . |
CUPS prend en charge une authentification locale basée sur les
certificats qui peut être utilisée à la place des authentifications
"Basic" et "Digest" pour les clients se connectant à l'interface
localhost
. L'authentification par certificats n'est ni prise en
charge, ni permise pour les clients se connectant par le biais de toute
autre interface.
Les certificats sont des nombres aléatoires codés sur 128 bits qui
font référence à un enregistrement interne d'authentification sur le
serveur. Un client se connectant via l'interface localhost
envoie une requête avec un en-tête d'autorisation:
Authorization: Local 0123456789ABCDEF0123456789ABCDEF
Le serveur vérifie alors le certificat local correspondant et authentifie le nom d'utilisateur qui y est associé.
Les certificats sont automatiquement générés par le serveur et
stockés dans le répertoire /etc/cups/certs en utilisant le
n° de processus du programme CGI ("process ID") exécuté par le serveur.
Les fichiers de certificats sont en lecture seule pour les utilisateurs
User
et groupes
Group
définis dans le fichier cupsd.conf. Quand le
programme CGI se termine, le certificat est retiré et rendu
automatiquement invalide.
Le fichier spécial /etc/cups/certs/0 définit le
certificat de root qui peut être utilisé par tout client
fonctionnant sous l'identité du super-utilisateur et qui appartient au
group défini par la directive SystemGroup
. Le certificat de root est automatiquement régénéré toutes les 5
minutes.
L'authentification "Basic" utilise les utilisateurs et mots de passe UNIX pour authentifier l'accès à des ressources telles que les imprimantes ou les classes et pour limiter l'accès aux fonctions d'administration.
NOTE:
L'authentification "Basic" transmet le nom d'utilisateur et le mot de passe en clair (encodage Base64) du client vers le serveur, donc elle n'offre aucune protection contre l'espionnage. Cela signifie qu'une utilisateur mal intentionné peut écouter les paquets réseau et découvrir ces informations. Il peut en résulter une sérieuse compromission de la sécurité de votre réseau. Utilisez l'authentification avec la plus grande prudence. |
L'implémentation de l'authentification "Basic" dans CUPS ne permet pas l'accès en utilisant des comptes sans mot de passe. Si vous tentez d'authentifier un tel compte, l'accès sera immédiatement bloqué.
Une fois le nom d'utilisateur et le mot de passe authentifiés par CUPS, les contraintes supplémentaires d'appartenance à des groupes sont vérifiées
NOTE:
Pour CUPS, l'utilisateur root est considéré comme membre de tous les groupes. |
Utilisez la directive AuthType
pour activer
l'authentification "Basic":
AuthType Basic
L'authentification "Digest" utilise des utilisateurs et mots de passe définis dans le fichier /etc/cups/passwd.md5 pour authentifier l'accès aux ressources telles que les imprimantes et les classes et pour limiter l'accès aux fonctions d'administration.
NOTE:
Contrairement à l'authentification "Basic", "Digest" transmet une version codée du nom d'utilisateur et du mot de passe en utilisant le codage MD5 (en résumé, une somme de contrôle compliquée) au lieu de leur version en clair. De plus, l'authentification "Digest" n'utilise pas les utilisateurs et mots de passe UNIX, ainsi si un attaquant découvre le mot de passe original il est moins probable qu'il en résulte un problème de sécurité, pour peu que vous utilisiez un mot de passe "Digest" différent de celui stocké par UNIX. L'implémentation actuelle de l'authenfication "Digest" dans CUPS utilise le nom d'hôte du client ou son adresse IP comme valeur "nonce". La valeur "nonce" est une chaîne de caractères additionnelle ajoutée au nom d'utilisateur et au mot de passe pour rendre la découverte de ce dernier plus difficile. Le serveur vérifie que la valeur "nonce" correspond au nom d'hôte ou l'adresse IP du client et, si tel n'est pas le cas, rejette la somme MD5 proposée par celui-ci. Les prochaines versions de CUPS prendront en charge l'authentification "Digest" par "session" qui ajoutera les données de la requête à la somme MD5, fournissant ainsi une sécurité et une authentification encore meilleures. L'authentification "Digest" ne garantit pas qu'un attaquant ne peut pas obtenir un accès non autorisé mais elle est plus sûre que l'authentification "Basic" et devrait être utilisée à la place de celle-ci chaque fois que c'est possible. La prise en charge de l'authentification "Digest" dans les navigateurs "web" n'est pas encore universellement disponible. |
La commande lppasswd(1)
est utilisée pour ajouter,
changer et retirer des comptes du fichier passwd.md5. Pour
ajouter un utilisateur au groupe système standard, tapez:
lppasswd -a utilisateur ENTREE Password: (mot de passe) ENTREE [le mot de passe n'est pas affiché] Password again: (mot de passe) ENTREE [le mot de passe n'est pas affiché]
Une fois ajouté, un utilisateur peut changer son mot de passe en tapant:
lppasswd ENTREE Old Password: (mot de passe) ENTREE [le mot de passe n'est pas affiché] Password : (mot de passe) ENTREE [le mot de passe n'est pas affiché] Password again: (mot de passe) ENTREE [le mot de passe n'est pas affiché]
Pour retirer un utilisateur du fichier des mots de passe, tapez:
lppasswd -x utilisateur ENTREE
Une fois qu'un utilisateur et un mot de passe valides ont été authentifiés pas CUPS, celui-ci vérifie les contraintes supplémentaires d'appartenance à des groupes.
NOTE:
Pour CUPS, l'utilisateur root est membre de tous les groupes. |
Utilisez la directive AuthType
pour activer
l'authentification "Digest":
AuthType Digest
La directive AuthClass
contrôle
le niveau d'authentification à effectuer. Les authentifications
System
et Group
ajoutent à l'authentification
normale basée sur l'utilisateur une contrainte d'appartenance à un
groupe UNIX. Pour l'authentification System
, chaque
utilisateur doit être membre du groupe sys
, system
, ou root
; le groupe réel dépend du système d'exploitation.
Pour l'authentification Group
l'utilisateur doit être
membre du group indiqué par la directive
AuthGroupName
:
<Location /path> AuthType Digest AuthClass Group AuthGroupName mygroup </Location>
Le groupe indiqué doit être un groupe UNIX valide, habituellement défini dans les fichiers /etc/group ou /etc/netgroup . De plus, lors de l'utilisation de l'authentification "Digest", vous devez créer les comptes utilisateur avec le groupe indiqué:
lppasswd -g mon_groupe -a utilisateur ENTER Password : (mot de passe) ENTREE [le mot de passe n'est pas affiché] Password again: (mot de passe) ENTREE [le mot de passe n'est pas affiché]
ESP Print Pro maintient à jour un suivi ("log") de tous les accès, erreurs et pages qui sont imprimées. Les fichiers de suivi sont normalement stockés dans le répertoire /var/log/cups. Vous pouvez changer cela en éditant le fichier de configuration /etc/cups/cupsd.conf.
Le fichier access_log liste chaque ressource HTTP qui est utilisée par le serveur "web" ou un client CUPS/IPP. Chaque ligne est structurée dans le format habituel utilisé par de nombreux serveurs "web" et outils d'analyse.:
Hôte Groupe Utilisateur Date/heure \"Méthode Ressource Version\" Etat Octets 127.0.0.1 - - [20/May/1999:19:20:29 +0000] "POST /admin/ HTTP/1.1" 401 0 127.0.0.1 - mike [20/May/1999:19:20:31 +0000] "POST /admin/ HTTP/1.1" 200 0
Le champ hôte ne devrait normalement être qu'une adresse IP à
moins que vous n'activiez la directive
HostNameLookups
dans le fichier cupsd.conf.
Le champ groupe contient toujours "-" dans CUPS.
Le champ utilisateur est le nom de l'utilisateur authentifié qui a émis la requête. Si aucun nom d'utilisateur et mot de passe n'est fourni pour la requête, alors ce champ contient "-".
Le champ date/heure contient la date et l'heure de la requête exprimées dans le fuseau horaire local, et est structuré de la manière suivante:
[JJ/MMM/AAAA:HH:MM:SS +ZZZZ]
où ZZZZ est le décalage horaire entre le fuseau horaire local et l'heure Greenwich Mean Time (a.k.a. GMT a.k.a. ZULU.) (NdT : en réalité GMT est un abus de langage, il s'agit du temps UTC...)
Le champ méthode est la méthode HTTP utilisée ("GET", "PUT", "POST", etc.)
Le champ ressource est le nom du fichier de la ressource demandée.
Le champ version est la version du protocole HTTP employé par le client. Pour les clients CUPS, c'est toujours "HTTP/1.1".
Le champ Etat contient l'état du résultat HTTP de la requête. Habituellement, il s'agit de la valeur "200", mais d'autres codes d'état HTTP sont possibles. Par exemple, 401 est le code d'état pour "accès non autorisé" dans l'exemple ci-dessus.
Le champs octets contient le nombre d'octets contenus dans la requête. Pour les requêtes POST, le champ octets contient le nombre d'octets reçus du client.
Le fichier error_log liste les messages provenant de l'ordonnanceur (erreurs, avertissements, etc.):
Niveau Date/Heure Message I [20/May/1999:19:18:28 +0000] Job 1 queued on 'DeskJet' by 'mike'. I [20/May/1999:19:21:02 +0000] Job 2 queued on 'DeskJet' by 'mike'. I [20/May/1999:19:22:24 +0000] Job 2 was cancelled by 'mike'.
Le champ Niveau contient le type du message:
E
- Une erreur est survenue.W
- Le serveur a été incapable d'effectuer une action.I
- Message d'information.D
- Message de débogage.Le champ Date/heure contient la date et l'heure de début d'impression de la page. Le format est identique à celui du champ Date/heure dans le fichier access_log.
Le champ Message contient un message textuel dont la forme est libre.
Le fichier page_log liste chaque page qui est envoyée à une imprimante. Chaque ligne contient les informations suivantes:
Imprimante Utilisateur N°travail Date/heure N°Page Nombre_copies Facturation_travail DeskJet root 2 [20/May/1999:19:21:05 +0000] 1 0 acme-123
Le champ imprimante contient le nom de l'imprimante qui a imprimé la page. Si vous envoyez un travail d'impression à une classe, le champ contient le nom de l'imprimante à laquelle ce travail a été affecté..
Le champ utilisateur contient le nom de l'utilisateur
(l'attribut requesting-user-name
de IPP) qui a envoyé le
fichier à l'impression.
Le champ N°Travail contient le n° du travail correspondant à la page en cours d'impression. Les n° de travaux sont remis à 1 si le serveur CUPS est redémarré, donc ne le considérez pas comme un identifiant unique !
Le champ Date/heure contient la date et l'heure de démarrage de l'impression dans un format identique au champ Date/heure du fichier access_log.
Les champs N°Page et Nombre_copies contiennent le n° de page imprimée et le nombre de copies de cette page. Pour les imprimantes qui ne peuvent pas produire de copies multiples de manière autonome, le champ Nombre_copies est toujours à 1.
Le champ facturation_travail contient une copie de l'attribut
job-billing
fourni dans les requête IPP create-job
ou print-job
. Si aucune valeur n'est fournie dans la
requête, ce champ contient "-".
CUPS fournit un mécanisme de filtrage et de détermination du type de
fichier basé sur MIME, afin de convertir les fichiers dans un format
utilisable par chaque imprimante. Au démarrage, le serveur CUPS lit les
fichiers de la base de données MIME contenus dans le répertoire
/etc/cups (ou un répertoire indiqué au moyen de la directive
ServerRoot
) afin de construire en mémoire une base de
données de conversion et de types de fichiers. Ces fichiers de base de
données sont de simples fichiers texte ASCII et peuvent être modifiés
au moyen de votre éditeur de texte préféré.
Les fichiers mime.types et mime.convs définissent les types de fichiers standards et les filtres qui sont disponibles sur le système.
Le fichier mime.types définit les types de fichiers
connus. Chaque ligne débute par le type MIME et devrait être suivi par
une ou plusieurs règles de reconnaissance de fichier. Par exemple, le
type de fichier text/html
est défini de la manière
suivante:
text/html html htm \ printable(0,1024) + \ (string(0,"<HTML>") string(0,"<!DOCTYPE"))
Les deux premièress règles indiquent que tout fichier portant
l'extension .html ou .htm est un fichier HTML. La
troisième règle précise que tout fichier dont les 1024 premiers
caractères sont des caractères imprimables et commencent par les
chaînes <HTML>
ou <!DOCTYPE
est également un
fichier HTML.
Les deux premières règle traitent simplement du nom du fichier. Cela est utile lorsque le nom du fichier original est connu, cependant pour les fichiers d'impression le serveur ne dispose pas de nom de fichier. La troisième règle prend garde à cette éventualité et détermine automatiquement le type du fichier en se basant plutôt sur son contenu.
Les test applicables sont les suivants:
( expr )
- Parenthèses pour grouper les expressions+
- ET logique,
ou espace vide - OU logique!
- NON logiquematch("pattern")
- Recherche de motif sur le nom de
fichierextension
- Recherche de motif sur "*.extension"ascii(offset,length)
- Vrai si les octets sont des
caractères ASCII imprimables (CR, NL, TAB, BS, 32-126)printable(offset,length)
- Vrai si les octets sont des
caractères 8 bits imprimables (CR, NL, TAB, BS, 32-126, 160-254)string(offset,"chaîne")
- Vrai si les octets sont
identiques à la chaînecontains(offset,range,"chaîne")
- Vrai si la plage
d'octets contient la chaînechar(offset,value)
- Vrai si l'octet correspondshort(offset,value)
- Vrai si l'entier sur 16 bits
correspond (ordre des octets : "network" ou "big-endian")int(offset,value)
- Vrai si l'entier sur 32 bits
correspond (ordre des octets : "network" ou "big-endian")locale("string")
- Vrai si la locale courante
correspond à la chaîneToutes les valeurs numériques peuvent être exprimées en décimal (123), octal (0123), ou hexadécimal (0x123) selon le cas.
Les chaînes de caractères peuvent être délimitées par des quotes, sans quotes, sous forme d'une chaîne de valeurs hexadécimales ou toute combinaison de ces écritures:
"chaîne" 'chaîne' chaîne <737472696e67> <7374>ring
Comme le montre l'exemple text/html
, les règles peuvent
être réparties sur plusieurs lignes en utilisant le caractère
"backslash" ("\"). Un exemple plus complexe est fourni par les règles
de détermination du type image/jpeg
:
image/jpeg jpeg jpg jpe string(0,<FFD8FF>) &&\ (char(3,0xe0) char(3,0xe1) char(3,0xe2) char(3,0xe3)\ char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\ char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\ char(3,0xec) char(3,0xed) char(3,0xee) char(3,0xef))
Cette règle indique que tout fichier avec l'extension .jpeg
, .jpg, ou .jpe est un fichier JPEG. De plus, tout
fichier commençant par la chaîne hexadécimale <FFD8FF>
(JPEG Start-Of-Image) suivie d'un caractère compris entre 0xe0
et 0xef
(JPEG APPn markers) bornes comprises, est
également un fichier JPEG.
Le fichier mime.convs définit tous les programmes de filtrage qui sont connus du système. Chaque ligne est de la forme:
Source Destination Coût Programme text/plain application/postscript 50 texttops application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster image/* application/vnd.cups-postscript 50 imagetops image/* application/vnd.cups-raster 50 imagetoraster
Le champ Source est un type MIME. Il peut éventuellement utiliser des méta caractères ("joker", "wildcard") pour le sur-type ou le sous-type (par exemple "text/plain", "image/*", "*/postscript").
Le champ Destination est un type MIME défini dans le fichier mime.types.
Le champ Coût définit un coût relatif pour l'opération de
filtrage, exprimé sous forme d'une valeur entre 1 et 100. Le coût est
utilisé pour choisir entre deux jeux de filtres lors de la conversion
d'un fichier. Par exemple, pour convertir image/jpeg
en
application/vnd.cups-raster
, vous pourriez utiliser les filtres
imagetops
et pstoraster
pour un coût total de 100,
ou le filtre imagetoraster
pour un coût total de 50.
Le champ Programme définit le programme de filtrage à exécuter; le programme doit accepter les arguments standards de filtrage et les variables d'environnement décrits dans le "Manuel de conception d'interface" ainsi que le "Manuel du programmeur":
Programme Travail Utilisateur Titre Options [nom_fichier]
S'il est indiqué, l'argument nom_fichier définit un fichier à lire lors du filtrage, sinon le filtre doit lire l'entrée standard. Toutes les sorties du programme de filtrage doivent être envoyées à la sortie standard.
Ajouter un nouveau filtre ou type de fichier est relativement simple. Plutôt qu'ajouter le nouveau filtre ou type aux fichiers mime.types et mime.convs qui sont écrasés lorsque vous mettez CUPS à jour avec une nouvelle version, vous devez simplement créer de nouveaux fichiers avec les extensions .types et .convs dans le répertoire /etc/cups. Nous recommandons d'utiliser le nom du format ou du produit, par exemple:
myproduct.types myproduct.convs
Si vous installez un filtre pour un fichier ou une imprimante courants, ajoutez le nom du fabricant ou de l'éditeur:
acme-msword.types acme.msword.convs
Cela aidera à éviter les conflits de noms si vous installez plusieurs types de fichiers ou plusieurs filtres.
Une fois choisis les noms pour ces fichiers, créez-les au moyen de
votre éditeur de texte préféré comme décrit précédemment dans ce
chapitre. Une fois ces fichiers créés, redémarrez le processus
cupsd
comme indiqué précédemment dans
"Redémarrage du serveur CUPS" .
Plusieurs pilotes d'imprimante CUPS utilisent un ou plusieurs filtres
spécifiques et un fichier PPD pour chaque modèle d'imprimante. Les
filtres pilotes d'imprimante sont enregistrés au moyen des attributs du
fichier cupsFilter
:
*cupsFilter: "application/vnd.cups-raster 0 rastertohp"
Le filtre est indiqué en utilisant seulement le type du fichier
source; le type du fichier destination est considéré comme étant du
type imprimante/nom
- convenable pour envoi à
l'imprimante.
CUPS prend en charge un nombre illimité de filtres et de formats de fichiers, et peut traiter avec toute imprimante. Si vous désirez écrire un pilote ou un filtre pour votre imprimante préférée, consultez le "Manuel du programmeur" et suivez pas à pas les instructions qu'il contient.
Ce chapitre décrit comment imprimer depuis des système clients qui utilisent les protocoles d'impression LPD, Mac OS ou Windows.
CUPS est basé sur le protocole IPP, ainsi tout autre système prenant en charge IPP peut automatiquement envoyer ou recevoir des travaux d'impression vers ou depuis un système utilisant CUPS. Cependant, tous les systèmes ne prennent pas encore en charge IPP. Ce chapitre vous montrera comment connecter ces systèmes à votre serveur CUPS, que ce soit pour qu'ils puissent accepter des travaux provenant de celui-ci ou pour lui en envoyer.
CUPS prend en charge un nombre limité des fonctionnalités des clients basés sur LPD. Avec LPD vous pouvez imprimer des fichiers vers des imprimantes déterminées, voir l'état des files d'impression, etc. Cependant, la configuration automatique des clients et des imprimantes n'est pas prise en charge par le protocole LPD, donc vous devez configurer manuellement chaque client pour les imprimantes auxquelles il a besoin d'accéder.
Le programme cups-lpd(8)
fournit la prise en charge pour
les clients LPD. Pour activer la prise en charge LPD sur votre serveur,
éditez le contenu du fichier /etc/inetd.conf et ajoutez une
ligne:
printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd
Le chemin vers le programme cups-lpd
peut varier en
fonction de l'installation de votre serveur.
Une fois cette ligne ajoutée, envoyez un signal HUP
au
processus inetd(8)
ou redémarrez le système (NdT : le
redémarrage du système n'est pas des plus élégants...):
killall -HUP inetd ENTREE [sur IRIX et quelques distributions GNU/Linux] kill -HUP pid ENTREE [Autres systèmes] reboot ENTREE [Pour tous les systèmes si le signal HUP ne fonctionne pas (NdT : ...en DERNIER recours, uniquement...)]
CUPS fournit le programme d'arrière-plan lpd
pour
imprimer vers des serveurs et imprimantes utilisant LPD. Utilisez un
URI de périphérique de la forme lpd://serveur/nom
pour
imprimer ver une imprimante sur un serveur LPD, où serveur
est le nom d'hôte ou l'adresse IP du serveur et nom
est le
nom de la file d'impression.
Microsoft Windows NT fournit un service LPD sous le nom "Serveur d'impression TCP/IP". Pour activer l'impression sur un système Windows NT, ouvrez le panneau de configuration puis "Services", sélectionnez le service "Serveur d'impression TCP/IP" et cliquez sur le bouton "Démarrer". Toute imprimante partagée devient alors accessible via le protocole LPD.
NdT : je ne suis pas spécialiste Mac et je ne dispose pas de ce type de matériel. Il se peut qu'il y ait quelques imprécisions ou erreurs dans ce qui suit, faîtes-moi l'amitié de me les pardonner ET de me les signaler. Merci par avance...
CUPS ne fournit pas de prise en charge directe de Mac OS. Cependant, il existe plusieurs logiciels libres ou commerciaux qui le font.
Etant donné que le serveur CAP LaserWriter (lwsrv(8)
) ne
prend pas en charge les spécifications des fichiers PPD, nous ne
recommandons pas l'utilisation de CAP avec CUPS. Cependant, vous pouvez
exécuter le programme lpsrv
pour une prise en charge
limitée de l'impression au moyen de la syntaxe suivante:
lwsrv -n "Nom" -p Imprimante -a /usr/lib/adicts -f /usr/lib/LW+Fonts
où Nom
est le nom que vous voulez utiliser pour partager
l'imprimante et imprimante
est le nom de la file
d'impression.
Afin d'utiliser votre système comme serveur d'impression pour des
clients Mac OS, configurez chaque imprimante en utilisant
papserver(8)
dans le fichier /usr/adm/appletalk/services
, et en indiquant le fichier PPD correspondant dans le répertoire
/etc/cups/ppd. Pour une imprimante appelée Mon_Imprimante
la syntaxe serait de la forme suivante:
/usr/etc/appletalk/papserver -I -L -P /etc/cups/ppd/Mon_Imprimante.ppd \ "Printer Description" Mon_Imprimante
NOTE:
Entrez le texte ci-dessus sur une seule ligne sans le caractère "\". |
Pour utiliser votre système comme serveur d'impression pour des
clients Mac OS, configurez chaque imprimante dans le fichier
papd.conf, en indiquant le fichier PPD correspondant dans le
répertoire /etc/cups/ppd pour chaque imprimante. Pour une
imprimante nommée Mon_Imprimante
le texte serait de la
forme suivante:
Printer Description:Mon_Imprimante@Mon_Serveur:\ :pr=|/usr/bin/lp -d Mon_Imprimante:\ :op=daemon:\ :pd=/etc/cups/ppd/Mon_Imprimante.ppd:
Actuellement, CUPS ne fournit pas de programme d'arrière-plan pour
communiquer avec un serveur Mac OS. Cependant, vous pouvez écrire et
installer un court script dans le répertoire /usr/lib/cups/backend
qui envoie un fichier d'impression en utilisant la commande appropriée.
Le court script suivant exécutera la commande papif
fournie avec CAP.
Après avoir copié le script dans /usr/lib/cups/backend/cap
, indiquez un URI de périphérique de la forme
cap://serveur/imprimante
pour utiliser ce script avec une file
d'impression.
"/usr/lib/cups/backend/cap" #!/bin/sh # # Usage: cap job user title copies options [filename] # # No arguments means show available devices... if test ${#argv} = 0; then echo "network cap \"Unknown\" \"Mac OS Printer via CAP\"" exit 0 fi # Collect arguments... user=$2 copies=$4 if test ${#argv} = 5; then # Get print file from stdin; copies have already been handled... file=/var/tmp/$$.prn copies=1 cat > $file else # Print file is on command-line... file=$6 fi # Create a dummy cap.printers file for this printer based # upon a device URI of "cap://server/printer"... echo $PRINTER/$DEVICE_URI | \ awk -F/ '{print $1 "=" $5 ":LaserWriter@" $4}' > /var/tmp/$$.cap CAPPRINTERS=/var/tmp/$$.cap; export CAPPRINTERS # Send the file to the printer, once for each copy. This assumes that you # have properly initialized the cap.printers file... while [ $copies -gt 0 ]; do papif -n $user < $file copies=`expr $copies - 1` done # Remove any temporary files... if test ${#argv} = 5; then /bin/rm -f $file fi /bin/rm -f /var/tmp/$$.cap exit 0
Bien que CUPS ne fournisse directement pas de prise en charge de Windows, le logiciel libre SAMBA le fait. La version 2.0.6 de SAMBA est la première qui prenne en charge CUPS. Vous pouvez télécharger SAMBA à l'adresse :
http://www.samba.org
Pour configurer SAMBA pour CUPS, éditez le contenu du fichier smb.conf et remplacez les commandes d'impression existantes par les lignes:
printing = cups printcap name = cups
C'est tout ce qu'il y a à faire! Les utilisateurs distants pourront désormais explorer les imprimantes de votre système et leur envoyer des travaux d'impression.
Vous pouvez éventuellement exporter des pilotes d'imprimantes de
votre serveur CUPS en utilisant la commande cupsaddsmb
et
le logiciel SAMBA 2.2.0 ou supérieur.
Avant de pouvoir exporter les pilotes d'imprimantes, vous devez
télécharger les pilotes d'imprimantes actuels Adobe PostScript à partir
du site "web" Adobe (
http://www.adobe.com/). Utilisez le logiciel libre unzip
pour extraire les fichiers des archives ZIP auto-extractibles contenant
les pilotes; vous aurez besoin des fichiers suivants:
ADFONTS.MFM ADOBEPS4.DRV ADOBEPS4.HLP ADOBEPS5.DLL ADOBEPSU.DLL ADOBEPSU.HLP DEFPRTR2.PPD ICONLIB.DLL PSMON.DLL
Copiez ces fichiers dans le répertoire /usr/share/cups/drivers - vous pourriez avoir à renommer certains fichiers de sorte que tous les noms soient complètement en majuscules.
Ensuite, ajouter un partage d'imprimante print$
pour les
pilotes d'imprimantes à votre fichier smb.conf:
[print$] comment = Pilotes d'imprimantes path = /etc/samba/drivers browseable = yes guest ok = no read only = yes write list = root
Le répertoire de vos pilotes d'imprimantes peut être n'importe où
dans le système; assurez-vous simplement qu'il est accessible en
écriture aux utilisateurs indiqués par la directive write list
. Assurez-vous également que chaque utilisateur de la liste write
list
possède un mot de passe SAMBA en utilisant la commande
smbpasswd(1)
sinon vous ne pourrez pas vous authentifier.
Enfin, exécutez la commande cupsaddsmb
pour exporter les
pilotes d'imprimantes pour une ou plusieurs files d'impression:
cupsaddsmb -U root printer1 ... printerN ENTREE
Exécuter la commande cupsaddsmb
avec l'option -a
exportera les imprimantes:
cupsaddsmb -U root -a ENTREE
CUPS peut imprimer vers des serveurs Windows de deux façons. La première utilise le protocole LPD sur le système CUPS et le service "Serveur d'impression TCP/IP" sur le système Windows NT. Vous pouvez trouver plus d'information au sujet de la première configuration dans la section précédente LPD de ce chapitre.
La seconde méthode utilise le protocole SMB de Microsoft ("Server Message Block"). La prise en charge de ce protocole est fournie par le logiciel libre SAMBA. Vous pouvez télécharger SAMBA à l'adresse suivante:
http://www.samba.org
Pour configurer CUPS pour SAMBA, exécutez la commande suivante:
ln -s `which smbspool` /usr/lib/cups/backend/smb ENTREE
Le programme smbspool(1)
est fourni avec SAMBA depuis la
version 2.0.6. Une fois que vous avez créé le lien vous pouvez
configurer vos imprimantes en utilisant l'un des URI de périphérique
suivants:
smb://groupe_de_travail_ou_domaine/serveur/nom_partage smb://serveur/nom_partage smb://utilisateur:mot_de_passe@groupe_de_travail_ou_domaine/serveur/nom_partage smb://utilisateur:mot_de_passe@serveur/nom_partage
Le nom groupe_de_travai_ou_domaine
doit être indiqué si
votre système utilise un autre nom que la valeur standard de votre
réseau. Les chaînes utilisateur:mot_de_passe
sont
nécessaires si vous imprimez vers des serveurs Windows NT ou des
partages Windows 95/98 dont les mots de passe sont activés.
(NdT : pour des raisons évidentes de droit, j'ai volontairement gardé la licence d'utilisation du logiciel et la licence GPL en anglais car une traduction de celles-ci pourrait donner lieu à des interprétations erronées... et en plus je ne suis pas juriste !)
Copyright 1997-2003 by Easy Software Products
44141 AIRPORT VIEW DR STE 204
HOLLYWOOD, MARYLAND 20636-3111 USA
Voice: +1.301.373.9600
Email: cups-info@cups.org
WWW: http://www.cups.org
The Common UNIX Printing SystemTM, ("CUPSTM"), is provided under the GNU General Public License ("GPL") and GNU Library General Public License ("LGPL"), Version 2. A copy of these licenses follow this introduction.
The GNU LGPL applies to the CUPS API library, located in the "cups" subdirectory of the CUPS source distribution and in the "/usr/include/cups" directory and "libcups.a", "libcups_s.a", "libcups.sl", or "libcups.so" files in the binary distributions.
The GNU GPL applies to the remainder of the CUPS distribution, including the "pstoraster" filter which is based upon GNU Ghostscript 5.50 and the "pdftops" filter which is based upon Xpdf 0.93a.
For those not familiar with the GNU GPL, the license basically allows you to:
What this license does not allow you to do is make changes or add features to CUPS and then sell a binary distribution without source code. You must provide source for any new drivers, changes, or additions to the software, and all code must be provided under the GPL or LGPL as appropriate.
The GNU LGPL relaxes the "link-to" restriction, allowing you to develop applications that use the CUPS API library under other licenses and/or conditions as appropriate for your application.
Easy Software Products has trademarked the Common UNIX Printing System, CUPS, and CUPS logo. These names and logos may be used freely in any direct port or binary distribution of CUPS. To use them in derivative products, please contract Easy Software Products for written permission. Our intention is to protect the value of these trademarks and ensure that any derivative product meets the same high-quality standards as the original.
Easy Software Products also sells rights to the CUPS source code under a binary distribution license for vendors that are unable to release source code for their drivers, additions, and modifications to CUPS under the GNU GPL and LGPL. For information please contact us at the address shown above.
The Common UNIX Printing System provides a "pstoraster" filter that utilizes the GNU GhostScript 5.50 core to convert PostScript files into a stream of raster images. For binary distribution licensing of this software, please contact:
Miles Jones
Director of Marketing
Artifex Software Inc.
454 Las Gallinas Ave., Suite 108
San Rafael, CA 94903 USA
Voice: +1.415.492.9861
Fax: +1.415.492.9862
EMail: info@arsoft.com
The "pdftops" filter is based on the Xpdf 0.93a software. For binary distribution licensing of this software, please contact:
Derek B. Noonburg
Email: derekn@foolabs.com
WWW: http://www.foolabs.com/xpdf/
Easy Software Products sells software support for CUPS as well as a commercial printing product based on CUPS called ESP Print Pro. You can find out more at our web site:
http://www.easysw.com
Version 2, June 1991
Copyright 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.]
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license.
The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such.
Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library.
Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one.
0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.
In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.
If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Cette annexe englobe de nombreux serveurs d'impression et interfaces réseau TCP/IP disponibles actuellement sur le marché.
Lorsque vous installez votre imprimante réseau ou votre serveur d'impression pour la première fois sur votre réseau local (LAN), vous devez configurer son adresse IP ("Internet Protocol"). Sur la plupart des imprimantes réseau pour groupe de travail, vous pouvez le faire directement au moyen du panneau de contrôle. Cependant, dans la plupart des cas, vous préfèrerez assigner l'adresse IP à distance depuis votre station de travail. Cela rend l'administration un peu plus simple et évite d'assigner accidentellement des adresses réseau eu doublons.
Pour configurer votre imprimante ou votre serveur d'impression pour une assignation à distance de l'adresse réseau, vous aurez besoin de son adresse MAC (ethernet Media Access Control), également appelée adresse de noeud ("node address") dans certains cas. Vous aurez également besoin de connaître l'adresse IP que vous voulez utiliser pour ce matériel. L'adresse MAC peut souvent être trouvée sur la page de test de l'imprimante ou sur son panneau arrière.
La méthode la plus simple pour installer l'adresse IP d'un matériel
réseau est d'utiliser la commande arp(8)
. La commande
arp
envoie un paquet ARP ("Address Resolution Protocol") à
l'adresse MAC indiquée tout en lui indiquant son adresse IP:
arp -s adresse-ip adresse-mac ENTREE arp -s hote.domaine.com 08:00:69:00:12:34 ENTREE arp -s 192.0.2.2 08:00:69:00:12:34 ENTREE
La manière la plus souple d'assigner une adresse IP sous UNIX est d'utiliser le protocole RARP ("Reverse Address Resolution Protocol"). RARP permet à un matériel réseau d'émettre une requête d'adresse IP en utilisant sont adresse MAC, un ou plusieurs serveurs RARP sur le réseau répondront à cette requête par un paquet ARP proposant une adresse IP que le matériel réseau peut utiliser.
RARP devrait être utilisé lorsque vous administrez de nombreuses
imprimantes ou serveurs d'impression, ou quand un matériel réseau ne
peut se "souvenir" de son adresse IP après chaque redémarrage. Si vous
n'avez qu'une seule imprimante ou serveur d'impression, la commande
arp
est la plus adaptée.
Certains systèmes d'exploitation UNIX utilisent un programme nommé
rarpd(8)
pour administrer RARP. Les autres, tels que GNU/Linux,
prennent en charge ce protocole à l'intérieur du noyau. Pour les
systèmes qui utilisent le programme rarpd
vous aurez
besoin de le démarrer avant que les requêtes RARP commencent:
rarpd ENTREE
Sous IRIX vous pouvez activer cette fonctionnalité en standard en utilisant la commande suivante:
chkconfig rarpd on ENTREE
Le programme rarpd
et la version noyau de la prise en
charge RARP lisent toutes les deux une liste des adresses MAC et IP à
partir d'un fichier /etc/ethers. Chaque ligne comporte
l'adresse Ethernet suivie de l'adresse IP ou du nom d'hôte:
08:00:69:00:12:34 mon_imprimante.mon_domaine.com 08:00:69:00:12:34 192.0.2.2
Ajoutez une ligne à ce fichier et redémarrez l'imprimante ou le serveur d'impression pour qu'elle/il récupère son adresse IP.
Le protocole BOOTP est utilisé quand vous avez besoin de fournir des
informations supplémentaires à l'interface réseau telles que
l'emplacement du fichier de configuration. En utilisant le programme
standard bootpd(8)
fourni sous UNIX, vous avez simplement
besoin d'ajouter la ligne suivante au fichier /etc/bootptab
pour IRIX:
mon_imprimante 08:00:69:00:12:34 192.0.2.2 mon_imprimante.boot
Les versions plus récentes de bootpd
utilisent un format
différent:
mon_imprimante:ha=080069001234:ip=192.0.2.2:t144=mon_imprimante.boot
Le fichier mon_imprimante.boot est situé en standard dans le répertoire /usr/local/boot Si vous n'avez pas besoin de fournir un fichier de démarrage, vous pouvez laisser vide la fin de la ligne.
NOTE:
Certaines versions d'UNIX n'activent pas le service BOOTP en standard. Le fichier /etc/inetd.conf contient généralement une ligne pour le service BOOTP. ELle peut être décommentée si nécessaire. |
Pour vérifier que l'adresse IP a bien été assignée et que l'imprimante est correctement connectée au réseau local (LAN), tapez:
ping adresse-ip ENTREE
Si la connexion fonctionne correctement vous devriez voir apparaître quelque chose de la forme suivante :
ping mon_imprimante ENTREE PING mon_imprimante (192.0.2.2): 56 data bytes 64 bytes from 192.0.2.2: icmp_seq=0 ttl=15 time=5 ms 64 bytes from 192.0.2.2: icmp_seq=1 ttl=15 time=3 ms 64 bytes from 192.0.2.2: icmp_seq=2 ttl=15 time=3 ms 64 bytes from 192.0.2.2: icmp_seq=3 ttl=15 time=3 ms
Sinon, vérifiez que que l'imprimante ou le serveur d'impression est bien connecté au réseau (NdT : vérifiez ces @#*¤%§ câbles !), qu'elle est sous tension et que l'adresse IP est bonne. Vous pouvez également voir la configuration réseau en imprimant une page de test à partir du panneau de contrôle du matériel.
Une fois que vous avez configuré l'adresse IP, vous pouvez accéder à
l'imprimante ou au serveur d'impression en utilisant les programmes
d'arrière-plan ipp
, lpd
, ou socket
. La liste qui suit donne les interfaces réseau et serveurs d'impression
courants ainsi que les réglages que vous devriez utiliser dans CUPS:
Modèle / Fabricant | URI de périphérique |
---|---|
Apple LaserWriter | lpd:// address/PASSTHRU |
Axis w/o IPP
(voir instructions) | socket://
address :9100
socket://address:9101 socket://address:9102 |
Axis w/IPP | ipp://address
/LPT1
ipp://address/LPT2 ipp://address/COM1 |
Castelle LANpressTM |
lpd://address/pr1
lpd://address/pr2 lpd://address/pr3 |
DPI NETPrint | lpd://address
/pr1
lpd://address/pr2 lpd://address/pr3 |
EFI® Fiery® RIP | lpd:// address/print |
EPSON® Multiprotocol Ethernet Interface Board | socket://address |
Extended System ExtendNET |
lpd://address/pr1
lpd://address/pr2 lpd://address/pr3 |
Hewlett Packard JetDirect w/o IPP |
socket://address:9100
socket://address:9101 socket://address:9102 |
Hewlett Packard JetDirect w/IPP |
ipp://address/ipp
ipp://address/ipp/port1 ipp://address/ipp/port2 ipp://address/ipp/port3 |
Intel® NetportExpress XL, PRO/100 |
lpd://address/LPT1_PASSTHRU
lpd://address/LPT2_PASSTHRU lpd://address/COM1_PASSTHRU |
LexmarkTM MarkNet | lpd://address/ps |
Linksys EtherFast®
(voir instructions) | socket://
address :4010
socket://address:4020 socket://address:4030 |
Kodak® | lpd://address/ps |
QMS® CrownNetTM | lpd://address/ps |
Tektronix® PhaserShareTM | socket://address:9100 |
XEROX® 4512 NIC | lpd:// address/PORT1 |
XEROX® XNIC | lpd://address /PASSTHRU |
XEROX® (most others) | socket:// address:5503 |
Les serveurs d'impression Axis peuvent être configurés en utilisant ARP, RARP ou BOOTP. Cependant, sur certains modèles ne prenant pas en charge IPP, une configuration supplémentaire est nécessaire pour permettre au serveur de dialoguer avec CUPS.
Chaque serveur d'impression possède une fichier de configuration
nommé config qui contient la liste des paramètres réseau à
utiliser par le serveur. Pour modifier ce fichier, vous devez d'abord
le télécharger à partir du serveur d'impression en utilisant le
programme ftp(1)
:
ftp adresse-ip ENTREE Connected to ip-address. 220 Axis NPS ### FTP Printer Server V#.## MON DD YEAR ready. ftp> user root ENTREE 331 User name ok, need password Password: pass ENTREE (le mot de passe n'apparaît pas) 230 User logged in ftp> get config ENTREE local: config remote: config 200 PORT command successful. 150 Opening data connection for config (192,0,2,2), (mode ascii). 226 Transfer complete. ##### bytes received in #.## seconds (##### Kbytes/s) ftp> quit ENTREE 221 Goodbye.
Ensuite, éditez son contenu avec votre éditeur de texte préféré et repérez les lignes commençant par:
RTN_OPT. : YES RTEL_PR1. : 0 RTEL_PR2. : 0 RTEL_PR3. : 0 RTEL_PR4. : 0 RTEL_PR5. : 0 RTEL_PR6. : 0 RTEL_PR7. : 0 RTEL_PR8. : 0Changez la ligne
RTN_OPT
en:
RTN_OPT. : NO
Cela désactive le protocole "Reverse TELNET" et active le protocole standard TELNET sur le serveur d'impression. Ensuite, assignez un numéro de port pour chaque port parallèle ou série sur le serveur, comme suit:
RTEL_PR1. : 9100 RTEL_PR2. : 9101 RTEL_PR3. : 9102 RTEL_PR4. : 9103 RTEL_PR5. : 9104 RTEL_PR6. : 9105 RTEL_PR7. : 9106 RTEL_PR8. : 9107
Cela a principalement pour effet de forcer le serveur Axis à
ressembler à un serveur d'impression Hewlett Packard JetDirect EX.
Sauvegardez le fichier et installez le sur le serveur d'impression dans
le fichier config au moyen de la commande ftp
:
ftp adresse-ip ENTREE Connected to adresse-ip. 220 Axis NPS ### FTP Printer Server V#.## MON DD YEAR ready. ftp> user root ENTREE 331 User name ok, need password Password: pass ENTREE (le mot de passe n'est pas affiché) 230 User logged in ftp> put config CONFIG ENTREE local: config remote: CONFIG 200 PORT command successful. 150 Opening data connection for config (192,0,2,2), (mode ascii). 226 Transfer complete. ##### bytes received in #.## seconds (##### Kbytes/s) ftp> get hardreset ENTREE local: hardreset remote: hardreset 200 PORT command successful. 421 Axis NPS ### hard reset, closing connection. ftp> quit ENTREE 221 Goodbye.
Votre serveur d'impression Axis est à présent opérationnel!
Les serveurs d'impression LinkSys peuvent être configurés au moyen de ARP, RARP ou BOOTP. Comme certains serveurs d'impression Axis anciens, une configuration supplémentaire TCP/IP est nécessaire pour les faire fonctionner avec CUPS
Chaque serveur d'impression possède une fichier de configuration
nommé config qui contient la liste des paramètres réseau à
utiliser par le serveur. Pour modifier ce fichier, vous devez d'abord
le télécharger à partir du serveur d'impression en utilisant le
programme ftp(1)
:
ftp -n adresse-ip ENTREE Connected to adress-ip. 220 Print Server Ready. Remote system type is Print. ftp> get CONFIG ENTREE local: CONFIG remote: CONFIG 200 Command OK. 150 Open ASCII Mode Connection. WARNING! 68 bare linefeeds received in ASCII mode File may not have transferred correctly. 226 Transfer complete. ##### bytes received in #.## seconds (##### Kbytes/s) ftp> quit ENTREE 221 Goodbye.
Ensuite, éditez son contenu avec votre éditeur de texte préféré et repérez les lignes commençant par:
0100 L1_PROUT:P1 0120 L2_PROUT:P1 0140 L3_PROUT:P1
Changez le numéro de port pour chaque port parallèle et série sur le serveur, comme suit:
0100 L1_PROUT:P1 0120 L2_PROUT:P2 0140 L3_PROUT:P3
Cela relie chaque imprimante virtuelle à un port physique.
Sauvegardez le fichier et installez le sur le serveur d'impression dans
le fichier config au moyen de la commande ftp
:
ftp -n adresse-ip ENTREE Connected to adresse-ip. 220 Print Server Ready. Remote system type is Print. ftp> put CONFIG ENTREE local: CONFIG remote: CONFIG 200 Command OK. 150 Open ASCII Mode Connection. 226 Transfer complete. ##### bytes received in #.## seconds (##### Kbytes/s) ftp> quit ENTREE 221 Goodbye.
Votre serveur d'impression SysLink est désomais opérationnel !
Cette annexe dresse la liste des pilotes d'imprimantes qui sont fournis avec CUSP.
CUPS inclut les pilotes d'imprimantes suivants:
Le pilote EPSON 9-pin Dot Matrix (epson9.ppd) prend en charge les imprimantes 9 aiguilles qui utilisent le jeu de commandes ESC/P. Il fournit l'impression en noir et blanc dans les résolutions 60x72, 120x72, et 240x72 PPP (DPI).
Le pilote EPSON 24-pin Dot Matrix (epson9.ppd) prend en charge les imprimantes 24 aiguilles qui utilisent le jeu de commandes ESC/P. Il fournit l'impression en noir et blanc dans les résolutions 120x180, 180x180, 360x180, et 360x360 PPP (DPI).
Le pilote EPSON Stylus Color (stcolor.ppd) prend en charge les imprimantes EPSON Stylus Color qui utilisent le jeu de commandes ESC/P2. Il fournit l'impression en couleur (CMYK) ainsi qu'en noir et blanc dans les résolutions 180, 360, et 720 PPP (DPI).
Le pilote EPSON Stylus Photo (stphoto.ppd) prend en charge les imprimantes EPSON Stylus Photo qui utilisent le jeu de commandes ESC/P2. Il fournit l'impression en couleur (CMYK) ainsi qu'en noir et blanc dans les résolutions 180, 360, et 720 PPP (DPI).
Le pilote HP DeskJet (deskjet.ppd) prend en charge les imprimantes HP DeskJet qui utilisent le jeu de commandes PCL. Il fournit l'imrpession en couleur (CMYK) ainsi qu'en noir et blanc dans les résolutions 150, 300, et 600 PPP (DPI).
Les imprimantes DeskJet qui utilisent le jeu de commandes HP-PPA (720C, 722C, 820C, and 1100C) ne sont pas prises en charge du fait de l'absence totale de documentation de la part de Hewlett Packard.
Le "duplexer" fourni avec les imprimantes de la série d'imprimantes HP DeskJet 900 n'est également pas pris en charge pour les mêmes raisons.
Le pilote HP LaserJet (laserjet.ppd) prend en charge les impriamntes HP LaserJet qui utilisent le jeu de commandes PCL. Il fournit l'impression seulement en noir et blanc et prend en charge le "duplexer" s'il est installé. Il prend en charge les résolutions 150, 300, et 600 PPP (DPI).
Les imprimantes LaserJet qui n'utilisent pas le jeu de commandes PCL (3100, 3150) ne sont pas prises en charge du fait d'une absence totale de documentation de la part de Hewlett Packard.
Cette annexe dresse la liste des fichiers et répertoire qui sont installés par CUPS
Chemin | Description |
---|---|
/etc/cups/certs/ | Emplacement des fichiers des certificats d'authentification pour les clients HTTP locaux. |
/etc/cups/classes.conf | Fichiers de configuration des classes d'imprimantes pour l'ordonnanceur. |
/etc/cups/cupsd.conf | Fichier de configuration de l'ordonnanceur. |
/etc/cups/interfaces/ | Emplacement des scripts d'interface System V pour les imprimantes. |
/etc/cups/mime.convs | Liste des filtres de fichiers standards inclus dans ESP Print Pro. |
/etc/cups/mime.types | Liste des types de fichiers reconnus par ESP Print Pro. |
/etc/cups/ppd/ | Emplacement des fichiers PPD ("PostScript Printer Description") pour les imprimantes. |
/etc/cups/printers.conf | Fichier de configuration des imprimantes pour l'ordonnanceur. |
/usr/bin/cancel | La commande d'annulation de travaux System V. |
/usr/bin/disable | La commande de désactivation d'imprimante System V. |
/usr/bin/enable | La commande d'activation d'imprimante System V. |
/usr/bin/lp | La commande d'impression System V. |
/usr/bin/lpoptions | Jeu d'options d'impression et de valeurs implicites personnalisées par l'utiliseur. |
/usr/bin/lppasswd | Ajoute, modifie et retire des mots de passe pour des comptes "Digest". |
/usr/bin/lpq | La commande d'état Berkeley. |
/usr/bin/lpr | La commande d'impression Berkeley. |
/usr/bin/lprm | La commande d'annulation de travaux Berkeley. |
/usr/bin/lpstat | La commande d'état System V. |
/usr/include/cups/ | Fichiers d'en-tête de l'API CUPS. |
/usr/lib32/libcups.a
/usr/lib32/libcupsimage.a | Librairies statiques (IRIX 6.5) |
/usr/lib/libcups.a
/usr/lib/libcupsimage.a | Librairies statiques (tous les autres systèmes) |
/usr/lib/libcups.sl.2
/usr/lib/libcupsimage.sl.2 | Librairies partagées (HP-UX) |
/usr/lib32/libcups.so.2
/usr/lib32/libcupsimage.so.2 | Librairies partagées (IRIX 6.5) |
/usr/lib/libcups.so.2
/usr/lib/libcupsimage.so.2 | Librairies partagées (tous les autres systèmes) |
/usr/lib/cups/backend/ | Programme d'arrière-plan pour connexion à diverses imprimantes. |
/usr/lib/cups/cgi-bin/ | Programmes CGI pour l'ordonnanceur. |
/usr/lib/cups/daemon/ | Démons pour la surveillance et pour la prise en charge LPD. |
/usr/lib/cups/filter/ | Filtres pour divers types de fichiers. |
/usr/lib/locale/ | Emplacement des fichiers de messages spécifiques à chaque langue. (System V) |
/usr/lib/nls/msg/ | Emplacement des fichiers de messages spécifiques à chaque langue. (Compaq Tru64 UNIX) |
/usr/share/locale/ | Emplacement des fichiers de messages spécifiques à chaque langue. (GNU/Linux, *BSD) |
/usr/sbin/accept | La commande d'acceptation de travaux. |
/usr/sbin/cupsd | L'ordonnanceur CUPS. |
/usr/sbin/lpadmin | L'outil d'administration d'imprimante System V. |
/usr/sbin/lpc | L'outil d'administration d'imprimante Berkeley. |
/usr/sbin/lpinfo | Les commandes "get-devices" et "get-ppds". |
/usr/sbin/lpmove | La commande "move-jobs". |
/usr/sbin/reject | La commande "reject-jobs". |
/usr/share/catman/a_man/
/usr/share/catman/u_man/ | Pages de manuel (IRIX) |
/usr/share/man/ | Pages de manuel (Compaq Tru64 UNIX, HP-UX, Solaris) |
/usr/man/ | Pages de manuel (tous les autres systèmes) |
/usr/share/cups/data/ | Emplacement des fichiers de données des filtres. |
/usr/share/cups/data/testprint.ps | Fichier de page de test PostScript. |
/usr/share/cups/fonts/ | Emplacement des polices de caractères PostScript pour le RIP PostScript. |
/usr/share/cups/model/ | Emplacement des fichiers PPD ("PostScript Printer Description") et des scripts d'interface pouvant être employés pour configurer une file d'impression. |
/usr/share/cups/pstoraster/ | D'autres fichiers d'initialisation du RIP PostScript. |
/usr/share/cups/pstoraster/Fontmap | Le fichier de conversion de polices (convertit des noms de fichiers en noms de polices) |
/usr/share/cups/templates/ | Emplacement des fichiers "templates" HTML pour l'interface "web". |
/usr/share/doc/cups/ | Documentation et données des pages "web" pour l'ordonnanceur. |
/var/log/cups/ | Emplacement des fichiers de suivi de l'ordonnanceur. |
/var/spool/cups/ | Emplacement des fichiers d'impression en attente de traitement. |
Cette annexe couvre certains des problèmes courants rencontrés par les utilisateurs lors de la première installation / configuration / utilisation de CUPS.
Le support commercial de CUPS est disponible auprès d'Easy Software Products. Pour plus d'informations, veuillez nous contacter:
http://www.easysw.com
Beaucoup d'applications lisent le contenu du fichier /etc/printcap pour obtenir la liste des imprimantes disponibles.
La configuration standard de CUPS ne crée pas ce fichier
/etc/printcap automatiquement. Pour activer la création et la
mise à jour automatiques de ce fichier, utilisez la directive
Printcap
décrite au
Chapitre 6, "Administration du système d'impression".
CUPS vous demandera un nom d'utilisateur UNIX et un mot de passe
lorsque vous effectuerez des tâches d'administration à distance ou au
moyen d'un navigateur "web". La configuration standard de CUPS
nécessite que vous utilisiez le nom d'utilisateur root
et
son mot de passe correspondant pour authentifier la requête.
Pour des raisons de sécurité, CUPS ne vous autorise pas à
authentifier une requête d'administration au moyen d'un compte dépourvu
de mot de passe. Si vous n'avez pas de mot de passe pour le compte
root
, vous ne pourrez pas faire d'administration à distance ou
via un navigateur "web" !
Pour désactiver l'authentification par mot de passe vous devez éditer le contenu du fichier /etc/cups/cupsd.conf et commenter les lignes:
AuthType Basic AuthClass Systempour l'emplacement /admin. Redémarrez alors le serveur CUPS comme indiqué dans le Chapitre 6, "Administration du serveur d'impression".
NOTE:
Désactiver les vérifications de mot de passe autorisera tout utilisateur local à modifier les imprimantes et les classes, mais l'administration distante depuis un autre poste ne sera toujours pas autorisée. |
La configuration standard de CUPS limite l'administration au poste local. Pour ouvrir l'accès, éditez le contenu du fichier /etc/cups/cupsd.conf et commentez les lignes:
Order deny,allow Deny from all Allow from 127.0.0.1pour l'emplacement /admin. Redémarrez alors le serveur CUPS comme indiqué dans le Chapitre 6, "Administration du serveur d'impression".
NOTE:
Autoriser l'accès à l'administration pour tous les hôtes présente un risque potentiel de sécurité. Veuillez vous reporter au Chapitre 6, "Administration du serveur d'impression" pour une description de ces risques ainsi que des méthodes pour les minimiser. |
Ce problème est généralement dû:
Dans des circonstances normales, des messages "connection refused" pour une imprimante réseau peuvent être rencontrés de temps en temps. La plupart des interfaces réseau autorisent une unique connexion à un instant donné (un travail à la fois) et refuseront l'accès à tous les autres systèmes tant que la première connexion sera active. CUPS retente automatiquement de se connecter toutes les 30 secondes.
Si le problème persiste et que vous ne pouvez imprimer aucun travail sur l'imprimantes, vérifiez qu'une autre machine ne maintient pas une connexion avec l'imprimante, et que vous avez sélectionné le bon port ou le bon nom d'imprimante.
De même, la plupart des serveurs d'impression externes refuseront les connexions si une imprimante est hors tension ou hors ligne. Vérifiez que l'imprimante affectée est sous tension et en ligne.
Si vous obtenez des messages "write error" sur une file d'impression, l'interface de l'imprimante (généralement une interface Hewlett Packard JetDirect) a dépassé le délai d'attente maximum et résilié la connexion réseau avec votre poste de travail.
L'erreur est causée par le délai d'amorçage qui existe entre l'établissement initial de la connexion à l'imprimante et l'envoi effectif des données de la première page imprimée.
Pour corriger le problème, chagez la valeur du délai d'attente de l'interface et amenez sa valeur à un minimum de 180 secondes soit 3 minutes. Pour changer le délai sur une interface Hewlett Packard JetDirect, tapez:
telnet adresse-ip ENTER Trying adresse-ip... Connected to adresse-ip. Escape character is `^]'. Please type [Return] two times, to initialize telnet configuration For HELP type "?" > idle-timeout: 180 ENTREE > quit ENTREE