480 likes | 546 Views
Common Unix Printing System. Contenu :. Bref historique Fonctionnement schématique I nternet P rinting P rotocol Fichiers de configuration Commandes Interaction avec LPD Interaction avec Samba. Bref historique. L'impression sous UNIX : années '70 (LPD, AT&T)
E N D
Contenu : • Bref historique • Fonctionnement schématique • Internet Printing Protocol • Fichiers de configuration • Commandes • Interaction avec LPD • Interaction avec Samba
Bref historique • L'impression sous UNIX : années '70(LPD, AT&T) • Autres essais : LPRng, Palladin, PLP... • Problème majeur: aucun standard réel • 2 solutions ont été apportées :-IEEE avec le Posix Printing Standard-IETF avec Internet Printing Protocol
Bref historique (suite) • IPP s'est imposé comme le nouveau standard. • En 1999 sort la 1ère version de CUPS, se basant sur ce protocole d'impression.
Fonctionnement schématique • CUPS se base sur un processus central de schedule d'impression qui doit : • Gérer les jobs d'impression • Gérer les commandes administratives • Fournir des infos sur l'état actuel des imprimantes et jobs ( que ce soit des imprimantes locales ou à distance )
Avantages de CUPS • L'impression par réseau est une des choses des plus ardues à rendre fonctionnel sous UNIX. • CUPS permet d'autodétecter les imprimantes présentes sur le réseau ( via l'option Browsing ) • Système de classes d'imprimantes
Avantages de CUPS • Prend en charge les clients LPD • Interface web de configuration • Authentification sécurisée pour l'impression ( via encryption des données qui transitent sur le réseau et par cryptage MD5 des mots de passe )
Internet Printing Protocol • IPP a été conçu de manière à définir une nouvelle couche d'application dans le stack TCP/IP • Fonctionnalités recherchées : Vérifier la disponibilité d'une imprimante réseau Soumettre des jobs à cette imprimante Controler l'état d'avancement d'un job en cours Annuler un job soumis au préalable.
Internet Printing Protocol • Schémas de fonctionnement d'IPP : Protocole de type client-serveur Serveur indépendant : machine à laquelle est connectée une ou plusieurs imprimantes Serveur « imprimante » : imprimante réseau Il fallait des facilités à retrouver une imprimante sur le réseau. Authentification du client et du serveur Garantie de la confidentialité des données circulant sur le réseau.
Internet Printing Protocol • CUPS utilise une version enrichie d'IPP, avec 13 nouvelles fonctionnalités par rapport au standard.
Fichiers de configuration • Les fichiers sont présents dans/etc/cups/ • Serveur : cupsd.conf • Client : client.conf • classes.conf & printers.conf • mime.convs & mime.types • lpoptions et passwd.md5
Répertoires importants • /var/log/cups/ C'est là que se trouvent les fichiers logs de CUPS. • /var/spool/cups/L'endroit où sont stockés les fichiers en attente d'être imprimés. • /usr/share/cups/model/C'est là que sont stockés l'ensemble des fichiers .ppd représentatifs des modèles d'imprimantes reconnus.
cupsd.conf • La syntaxe est similaire à celle des fichiers de configuration Apache. • Options trop nombreuses que pour toutes etre décrites. Nous nous intéresserons donc aux options principales.
cupsd.conf • Browsing [On | Off]Permet aux serveurs de s'échanger des infos sur les imprimantes. • BrowseAddress ...Permet de définir le range de machines où aboutiront les infos des imprimantes connectées au serveur.
cupsd.conf • Options relatives à Browse :On peut définir d'où on accepte les informations. Exemple :BrowseOrder deny,allowBrowseDeny from AllBrowseAllow from 192.168.1.0/24BrowseAllow from ...
cupsd.conf • ListenDirective indiquant sur quelle adresse réseau et sur quel port écouter en vue d'accepter des connexions.Exemple :Listen 127.0.0.1:631Listen 192.168.0.2:631
cupsd.conf • Les directives Location permettent de controler l'accès aux imprimantes, files d'impressions, interfaces de configuration de CUPS. • Il s'agit de balises dans lesquelles on définit les controles d'accès.
cupsd.conf • Exemple type pour Location :<Location /printers/HP>AuthClass ...AuthGroupName ...AuthType ...Order deny,allowDeny from AllAllow from ...</Location>
cupsd.conf • LogLevelIndique le niveau minimum à partir duquel on doit inscrire les infos dans les fichiers logs ( similaire à Syslog )none, emerg, alert, crit, error, warn,notice, info, debug, debug2
client.conf • Ce fichier doit etre configuré manuellement. • Normalement, il ne contient que l'adresse du serveur CUPS avec lequel le client communique. • Il y a moyen d'activer des options de cryptage des données qui transiteront sur le réseau.
printers.conf • Définition des diverses imprimantes.<Printer HP>Info HP Deskjet 815CLocation Bureau 1er étageDeviceURI parallel:/dev/lp0State IdleAccepting YesJobSheets none noneQuotaPeriod 0PageLimit 0Klimit 0</Printer>
classes.conf • Définition des différentes classes gérées par le serveur.<Class Demonstration>State IdleStateMessageAccepting YesJobSheets none nonePrinter BJCPrinter HPQuotaPeriod 0PageLimit 0Klimite 0</Class>
mime.convs • Ce fichier reprend la liste des filtres de fichiers fournis avec CUPS. • Il associe un filtre à chaque type de fichier connu permettant de convertir le fichier en un format reconnu par l'imprimante.
mime.types • Ce fichier contient la liste des types de fichiers reconnus par CUPS. • Chaque entrée correspond à un type et à la manière de le reconnaitre
passwd.md5 • Contient la liste des comptes utilisateurs « Digest ». • Chaque entrée est du type :nom:group:encrypted_passwd
lpoptions et ~/.lpoptions • Ce sont des fichiers de sauvegarde des paramètres d'impression. • /etc/cups/lpoptions contient les paramètres définis par l'utilisateur root. • .lpoptions est présent dans la home directory de chaque utilisateur.
Commandes • 3 types de commandes :- System V- Berkeley- CUPS
Commandes System V • lpCommande pour lancer une impression.eric@eric:/home/eric$ lp -d Demo -n 5 test.txtrequest id is HP-5 (1 file(s)) • cancelCommande pour annuler un job d'impressioneric@eric:/home/eric$ cancel HP-5
Commandes System V • lpmoveDéplacer un job vers une autre imprimanteeric@eric:/home/eric$ lpmove 5 BJC • lpadminIl s'agit de l'outil d'administration.3 types d'utilisation :root@eric:/root# lpadmin -p HP [OPTIONS]root@eric:/root# lpadmin -d HProot@eric:/root# lpadmin -x HP
Commandes System V • [OPTIONS] définit les caractéristiques de l'imprimante :-v parallel:/dev/lp0-c Demonstration-D «Imprimante HP pour démo»-L «Local A2qqchose»-P HP.ppd-m modele-u allow:eric,fred,cedric,@root
Commandes System V • (cups)enable • (cups)disable • accept • rejectToutes ces commandes peuvent prendre -h server en paramètre pour répercuter la commande au niveau du serveur. Autre option : -r « motif refus »
Commandes System V • lpstatLa commande fournissant les informations sur l'état des imprimantes et classes.eric@eric:/root# lpstat -t scheduler is runningsystem default destination: HPdevice for HP: parallel:/dev/lp0HP accepting requests since Jan 01 00:00printer HP is idle. enabled since Jan 01 00:00
Commandes Berkeley • lprCommande d'impression. • lpqaffiche l'état des jobs de l'imprimante par défaut. • lprmannule le job d'impression courant.
Commandes Berkeley • lpcIl s'agit d'un invite de commandes qui fourni une seule commande permettant l'accès aux infos sur les jobs et imprimantes : « status ».lpc> statusHP: printer is on device 'parallel' speed -1 queuing is enabled printing is enabled no entries daemon presentlpc> quit
Commandes CUPS • lpinfoPermet de récupérer les infos sur :- les modèles/drivers ( -m )- les devices ( -v )
Commandes CUPS • lpoptionsDéfinit les options par défaut pour les jobs d'impression lancés via «lp» ou «lpr».2 cas: - exécuté par l'utilisateur : stocké dans .lpoptions- exécuté par le SU : stocké dans /etc/cups/lpoptions
Commandes CUPS • lppasswdPermet la gestion des comptes utilisateurs Digest • Manipule le fichier /etc/cups/passwd.md5 • -a : ajouter • -x : supprimer • -g group : spécifie le groupe de l'utilisateur.
CUPS & LPD • Impression à partir de clients LPD :Le client interagit avec le serveur CUPS de manière totalement transparente. • Utilise un petit déamon servant d'interface entre le client LPD et le serveur CUPS. • Limitations : configuration manuelle de l'imprimante chez tous les clients ( dans le fichier /etc/printcap )
CUPS & LPD • Impression vers un serveur LPDElle est rendue possible grace à un filtre backend destiné aux serveurs et imprimantes LPD. • DeviceURI de type lpd://server/name • Daemon qui s'occupe du support LPD :/usr/lib/cups/daemon/cups-polld
CUPS & Windows • Impression via Samba • Version 2.0.6 minimum (filtre backend non fourni sinon)
CUPS & Windows • Client UNIX, serveur WindowsAfin de s'assurer que CUPS a été configuré pour Samba :ln -s `which smbspool` /usr/lib/cups/backend/smb • DeviceURI: smb://server/printersmb://workgroup/server/printer
CUPS & Windows • Client Windows, serveur UNIXIl faut modifier /etc/samba/smb.confLa section «global» doit contenir ceci:[global]load printers = yesprinting = cupsprintcap name = cups
CUPS & Windows • Dans la section «printers» :[printers]comment = All Printerspath = /var/spool/sambabrowseable = yespublic = yesguest ok = yeswritable = noprintable = yesprinter admin = root
CUPS & Windows • Pour le partage des pilotes d'impression : [print$]comment = Printer Driverspath = /usr/share/cups/driversbrowseable = yesguest ok = noread only = yeswrite list = root
CUPS & Windows • Il faut encore exporter les imprimantes vers CUPS.cupsaddsmb -U root HP BJCcupsaddsmb -U root -a
Dernières notes • Problème majeur dans l'utilisation de CUPS : présence d'un firewall bloquant le port 631 !Solution :iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 631 -j ACCEPT
Dernières notes • Afin d'intégrer CUPS aux diverses applications de KDE, il faut installer une librairie : kdelibs3-cups • Les slides ainsi que le document principal de cet exposé sont disponibles à l'adresse suivante :http://eriku.free.fr/cups/