Installer
Installer CUPS, les pilotes nécessaires et activer le service uniquement si l'impression est utilisée.
Service d'impression CUPS utilisé localement en production, avec écoute localhost, logs exploitables et workflow de dépannage.
Installer CUPS, les pilotes nécessaires et activer le service uniquement si l'impression est utilisée.
Forcer l'écoute sur localhost et désactiver la découverte réseau quand le partage n'est pas requis.
Utiliser l'interface locale et les commandes lp/lpstat/cancel pour gérer imprimantes et jobs.
Suivre logs, files d'attente, pilotes, backup de configuration et contrôles de sécurité.
CUPS est pratique pour l'impression locale, mais une configuration par défaut mal relue peut exposer l'interface d'administration, ouvrir le port 631 au réseau ou laisser des files d'attente bloquées sans diagnostic clair.
La page montre les directives importantes sans publier le fichier privé complet.
LogLevel notice
MaxLogSize <LOG_SIZE>
ErrorPolicy stop-printer
Listen localhost:631
Listen <CUPS_SOCKET>
Browsing No
BrowseLocalProtocols none
WebInterface Yes
Les opérations courantes sont publiées avec noms d'imprimantes et fichiers remplacés.
lpstat -p -d
lpstat -t
lpoptions -d <PRINTER_NAME>
lp -d <PRINTER_NAME> <DOCUMENT>
lp -n <COPIES> <DOCUMENT>
cancel <JOB_ID>
cancel -a <PRINTER_NAME>
La validation publique prouve que l'interface n'est pas exposée au réseau.
systemctl status cups.service --no-pager
ss -tulnp | rg ':631'
lpstat -t
journalctl -u cups.service -n 50 --no-pager
tail -n 50 <CUPS_ERROR_LOG>
Les commandes ci-dessous sont volontairement anonymisées: chemins, noms de machines, interfaces, dépôts, périphériques et actions destructrices sont remplacés par des placeholders.
systemctl status cups.service --no-pager
ss -tulnp | rg ':631'
lpstat -t
rg 'Listen|Browsing|BrowseLocalProtocols' <cups-config>
CUPS est actif seulement si nécessaire
le listener est 127.0.0.1:631 ou socket local uniquement
0.0.0.0:631 est traité comme une exposition
le browsing réseau est désactivé
les imprimantes et files sont visibles localement
journalctl -u cups.service -n 50 --no-pager
tail -n 50 <cups-error-log>
tail -n 50 <cups-access-log>
lpstat -o
les logs récents du service sont lisibles
le journal d'accès ne montre pas d'administration distante inattendue
les tâches bloquées sont visibles
le mode debug reste temporaire puis revient à un logging niveau notice
systemctl restart cups.service
systemctl status cups.service --no-pager
ss -tulnp | rg ':631'
lpstat -t
lp <test-print-file>
le service revient à active (running)
l'écoute reste limitée à localhost
les imprimantes restent visibles
l'impression de test réussit
le firewall reste une seconde couche, pas la restriction primaire de CUPS
La documentation met en avant Listen localhost, Browsing No, WebInterface Yes et ErrorPolicy stop-printer.
L'administration reste accessible depuis localhost uniquement. Les écrans détaillés ne sont pas publiés afin de ne pas exposer la configuration de production.
Les commandes lpstat, lp, cancel, lpoptions, cupsenable et cupsdisable couvrent l'exploitation courante.
Rotation de logs, nettoyage des jobs, backup de configuration et pilotes sont cadrés séparément.
Supplément de documentation privée anonymisé
Guide public pour installer et configurer CUPS de manière sécurisée sur Arch Linux. Les modèles d'imprimantes, chemins privés, noms de périphériques et fichiers réels sont remplacés par des placeholders.
CUPS est le système d'impression standard Linux/Unix. Il gère les files d'attente, les imprimantes, l'interface web locale et les pilotes.
http://localhost:631.lp, lpstat et cancel.Installer CUPS, puis ajouter les pilotes adaptés au matériel sans publier le modèle réel:
sudo pacman -S cups cups-pdf
sudo pacman -S <PRINTER_DRIVER_PACKAGE>
sudo systemctl start cups.service
sudo systemctl enable cups.service
systemctl status cups.service
Groupes usuels pour impression et administration locale:
sudo usermod -aG lp <OPERATOR>
sudo usermod -aG sys <OPERATOR>
groups <OPERATOR>
Les changements de groupes nécessitent une reconnexion pour être pris en compte.
Le fichier principal est <CUPS_CONFIG>. La version publique montre les directives importantes:
LogLevel notice
MaxLogSize 10m
ErrorPolicy stop-printer
Listen localhost:631
Listen <CUPS_SOCKET>
Browsing No
BrowseLocalProtocols none
DefaultAuthType Basic
WebInterface Yes
IdleExitTimeout 60
Les blocs d'accès doivent autoriser localhost et réserver l'administration aux utilisateurs système autorisés:
<Location />
Order allow,deny
Allow localhost
</Location>
<Location /admin>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow localhost
</Location>
Listen localhost:631, Browsing No et BrowseLocalProtocols none empêchent l'usage réseau non voulu. Une écoute sur 0.0.0.0:631 est une exposition à corriger.
sudo systemctl restart cups.service
systemctl status cups.service
L'administration locale se fait depuis:
http://localhost:631
Ajouter une imprimante: ouvrir Administration, choisir l'imprimante détectée, sélectionner le pilote, puis imprimer une page de test.
lpstat -p -d
lpstat -t
lpstat -d
lpoptions -d <PRINTER_NAME>
lp <DOCUMENT>
lp -d <PRINTER_NAME> <DOCUMENT>
lp -n <COPIES> <DOCUMENT>
lp -o sides=two-sided-long-edge <DOCUMENT>
lp -o media=A4 <DOCUMENT>
lpstat -o
cancel <JOB_ID>
cancel -a <PRINTER_NAME>
cupsdisable <PRINTER_NAME>
cupsenable <PRINTER_NAME>
cupsaccept <PRINTER_NAME>
cupsreject <PRINTER_NAME>
CUPS écrit des logs d'erreurs, d'accès et de pages. Les chemins exacts restent privés dans la page publique.
tail -n 50 <CUPS_ERROR_LOG>
tail -n 50 <CUPS_ACCESS_LOG>
tail -n 50 <CUPS_PAGE_LOG>
journalctl -u cups.service -n 50 --no-pager
journalctl -u cups.service -f
La rotation est normalement limitée par MaxLogSize. Le mode debug doit rester temporaire.
Passer temporairement en debug, redémarrer, lire les logs, puis revenir à LogLevel notice.
LogLevel debug
sudo systemctl restart cups.service
tail -f <CUPS_ERROR_LOG>
Contrôles fréquents:
systemctl status cups.service
ss -tulnp | rg ':631'
lsusb
lpinfo -v
lpstat -o
lpstat -p
groups <OPERATOR>
cupsenable <PRINTER_NAME>
cancel -a <PRINTER_NAME>
La restriction principale doit venir de CUPS: écoute locale uniquement. Le firewall peut servir de seconde couche.
ss -tulnp | rg ':631'
ls -la <CUPS_CONFIG_DIR>
rg 'Require user|Listen|Browsing|BrowseLocalProtocols' <CUPS_CONFIG>
rg '401|403|404' <CUPS_ACCESS_LOG>
Sortie attendue: écoute sur 127.0.0.1:631 ou socket local, pas sur toutes les interfaces.
sudo systemctl start cups.service
sudo systemctl stop cups.service
sudo systemctl restart cups.service
sudo systemctl reload cups.service
systemctl status cups.service
ss -tulnp | rg ':631'
lpstat -t
lpstat -o
lp <DOCUMENT>
lp -d <PRINTER_NAME> <DOCUMENT>
sudo systemctl restart cups.service
systemctl status cups.service
ss -tulnp | rg ':631'
lpstat -t
lp <TEST_PRINT_FILE>
La maintenance couvre logs, jobs et sauvegarde de configuration.
cancel -x
cancel -a <PRINTER_NAME>
cp <CUPS_CONFIG> <CUPS_CONFIG_BACKUP>
tar czf <CUPS_BACKUP_ARCHIVE> <CUPS_CONFIG_DIR>
Les purges de spool ou de logs sont destructrices. Elles doivent être précédées d'un diagnostic et ne sont pas publiées comme recette automatique.
pacman -Ss printer
pacman -Q | rg 'cups|printer|hplip'
yay -Ss <VENDOR_OR_MODEL>
| Famille | Paquet public typique |
|---|---|
| HP | hplip |
| Epson | epson-inkjet-printer-escpr |
| Samsung | splix |
| PDF virtuel | cups-pdf |
CUPS-PDF permet d'imprimer vers un fichier PDF local.