relecture

This commit is contained in:
Gregory Colpart 2018-06-12 03:10:18 +02:00
parent 9a69c2b5f3
commit 70f39afe26

View file

@ -1,75 +1,110 @@
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
---
categories: print
title: Howto CUPS
...
# Howto CUPS
* Documentation : <http://cups.org/documentation.php>
<http://cups.org/documentation.php>
[CUPS](http://cups.org/) signifie **Common Unix Printing System**, c'est un serveur d'impression pour Linux/Unix. Il est souvent utilisé sur des postes de travail sous Linux, mais aussi sur des serveurs pour centraliser l'accès aux imprimantes et permettre des droits d'accès, des quotas, etc.
## Installation
~~~
# aptitude install cups smbclient ttf-liberation ttf-mscorefonts-installer
# apt install cups smbclient ttf-liberation ttf-mscorefonts-installer
# systemctl status cups
● cups.service - CUPS Scheduler
Loaded: loaded (/lib/systemd/system/cups.service; enabled; vendor preset: enabled)
Docs: man:cupsd(8)
Main PID: 26996 (cupsd)
Tasks: 1 (limit: 4915)
Memory: 3.1M
CPU: 197ms
CGroup: /system.slice/cups.service
└─26996 /usr/sbin/cupsd -l
~~~
## Utilisation basique
Lister les imprimantes :
~~~
# lpstat -t
~~~
## Configuration
### Gestion des backends d'impression
CUPS gère plusieurs backends d'impression : ipp:// socket:// (JetDirect) smb:// etc.
Pour activer le backend smb:// il faut installer *smbclient* qui contient notamment le binaire _smbpool_.
### Interface web d'administration
L'interface web d'administration de CUPS est accessible sur le port 631 : <http://192.0.32.10:631>
* Autoriser l'utilisateur _foo_ à accéder aux tâches d'administration sur l'interface web :
Fichiers de configuration :
~~~
adduser foo lpadmin
/etc/cups/
├── cupsd.conf
├── cupsd.conf.pre16-bak
├── cups-files.conf
├── interfaces
├── ppd
├── raw.convs
├── raw.types
├── snmp.conf
└── ssl
├── server.crt -> /etc/ssl/certs/ssl-cert-snakeoil.pem
└── server.key -> /etc/ssl/private/ssl-cert-snakeoil.key
~~~
* Par défaut, les tâches d'administrations ne sont autorisées que depuis _localhost_. Pour autoriser une IP ou réseau en plus :
La configuration principale se trouve dans le fichier `/etc/cups/cupsd.conf`.
On peut tester la configuration avec la commande :
~~~
# Fichier /etc/cups/cupsd.conf
# cupsd -t
"/etc/cups/cups-files.conf" is OK.
"/etc/cups/cupsd.conf" is OK.
~~~
<Location /admin>
## Administration
CUPS a une interface web d'administration accessible sur le port TCP/631 : <http://127.0.0.1:631>
Cette interface permet de gérer les imprimantes (génération du fichier `/etc/cups/printers.conf`),
visualiser des informations (logs, jobs…) et agir sur les jobs d'impression (annulation, etc.)
### Droits d'accès à l'interface web
Par défaut, l'interface est restreinte sur _localhost_
Pour autoriser son accès depuis des machines distantes, il faut ajuster les directives suivantes dans `/etc/cups/cupsd.conf` :
~~~
Listen *:631
<Location />
Order allow,deny
Allow from 192.0.32.0/24
</Location>
~~~
### Détection automatique d'imprimantes partagées
Par défaut CUPS tente de découvrir les imprimantes partagées par d'autres systèmes sur le réseau, et les affiche dans sa liste, avec une URI=/dev/null. Pour ne pas avoir ce comportement, décocher la case « Afficher les imprimantes partagées par d'autres systèmes » dans « Administration du serveur » dans l'interface d'admin, puis supprimer le cache :
~~~
# /etc/init.d/cups stop && rm /var/cache/cups/remote.cache && /etc/init.d/cups start
~~~
### Mode debug
Il faut ensuite ajouter `Allow from 192.0.32.0/24` pour les sections et actions souhaitées.
Pour avoir un mode debug, on placera dans le fichier _cupsd.conf_ :
Pour les sections et actions critiques, une authentification supplémentaire est nécessaire.
Cela se base sur les utilisateurs Unix, pour autoriser un utilisateur on l'ajoutera dans le groupe `lpadmin` :
~~~
LogLevel debug
# adduser jdoe lpadmin
~~~
puis :
~~~
# /etc/init.d/cups reload
Reloading Common Unix Printing System: cupsd.
~~~
## Gestion des imprimantes
Et l'on aura un maximum d'information dans le _error_log_
## Imprimantes
CUPS gère plusieurs backends d'impression : _ipp://_, _socket://_ (JetDirect), _smb://_ etc.
### Imprimantes HP
~~~
# aptitude install hpijs hpijs-ppds hplip hplip-data
# apt install hpijs hpijs-ppds hplip hplip-data
~~~
### Imprimantes CANON
@ -110,14 +145,45 @@ E [02/Jun/2011:23:23:13 +0200] PID 5541 (/usr/lib/cups/filter/foomatic-rip) stop
### Fichiers PPD (PostScript Printer Description)
Les fichiers PPD décrivent les fonctionnalités de l'imprimante. Suivant les paquets installés, un certain nombre de modèles
d'imprimantes sera disponible sur le système. On pourra aussi en ajouter dans le répertoire _/usr/local/share/ppd/_.
d'imprimantes sera disponible sur le système. On pourra aussi en ajouter dans le répertoire `/usr/local/share/ppd/`.
Mais également lors de l'ajout d'une imprimante, on pourra tout simplement en uploader ; les fichiers PPD uploadés
se trouvent dans /etc/cups/ppd/
se trouvent dans le répertoire `/etc/cups/ppd/`.
## Logs
Par défaut, les logs d'accès se trouvent dans `/var/log/cups/access_log`
et les logs d'erreurs dans `/var/log/cups/error_log`.
### Mode debug
Pour avoir un mode debug, on placera dans le fichier `/etc/cups/cupsd.conf` :
~~~
LogLevel debug
~~~
puis, après avoir reloadé le démon CUPS, on aura un maximum d'informations dans `/var/log/cups/error_log`.
## FAQ
### activation backend smb://
Pour activer le backend _smb://_ il faut installer `smbclient` qui contient notamment le binaire `smbpool`.
### Détection automatique d'imprimantes partagées
Par défaut CUPS tente de découvrir les imprimantes partagées par d'autres systèmes sur le réseau, et les affiche dans sa liste, avec une URI=/dev/null. Pour ne pas avoir ce comportement, décocher la case « Afficher les imprimantes partagées par d'autres systèmes » dans « Administration du serveur » dans l'interface d'admin, puis supprimer le cache :
~~~
# /etc/init.d/cups stop && rm /var/cache/cups/remote.cache && /etc/init.d/cups start
~~~
### Imprimer une page de test en CLI
Lister les imprimantes :
`lpstat -t`
Imprimer la page de test de CUPS avec lp, avec le nom de l'imprimante _foo_ :
Imprimer la page de test de CUPS avec lp, avec le nom de l'imprimante :
`lp -d hp_color_LaserJet_2550 /usr/share/cups/data/testprint`
~~~
$ lp -d foo /usr/share/cups/data/testprint`
~~~