Serveur d'impression cups et samba

L'impression en réseau était délicate avant l'arrivée de cups. Je vous explique ici comment utiliser un serveur d'impression cups centralisé pour gérer plusieurs imprimantes, utiliser des drivers postscript, mettre en place un système de quotas d'impression ... J'ai utilisé la documentation Samba

Installation du serveur cups sous linux

Cette partie ne doit pas poser de problème particulier. Les distributions récentes permettent de détecter les imprimantes réseau et de les configurer facilement sur le serveur.

Utilisation du serveur cups avec samba

Pour utiliser le système d'impression cups avec samba, il suffit d'éditer le fichier /etc/samba/smb.conf :
[Global] ...
   load printers = yes
   printing = cups
   printcap name = cups
   printer admin = root
   ...
[printers]
   comment = Imprimantes
   path = /var/spool/samba
   browseable = no
   public = yes
   guest ok = yes
   writable = no
   printable = yes
   printer admin = root
[print$]
  comment = drivers pour imprimantes
  path = /etc/samba/printer_drivers
  browseable = yes
  guest ok = no
  read only = yes
  write list = root

Installation des drivers postscript

La solution la plus simple est d'utiliser les mêmes drivers postscript sur les postes windows pour toutes les imprimantes. C'est le seul moyen de compter le nombre de pages réellement imprimées, et cela facilite énormément la vie de l'administrateur réseau !

Installation des imprimantes sur les postes windows

Il ne reste plus qu'à passer sur chaque poste windows pour installer les imprimantes de votre choix.

Mise en place des quotas d'impressions

Pour l'instant, cups permet facilement de gérer des quotas d'impression de la forme : "tous les utilisateurs peuvent imprimer au plus n pages dans une période de m secondes". Il n'est malheureusement pas possible de définir des quotas personnalisés. Pour cela, il faut attendre que cette fonctionnalité soit implémentée dans cups (prochaine version ?) ou alors jeter un coup d'oeil à Pykota Pour activer les quotas sur l'imprimante printer1, sur le serveur il suffit de lancer : /usr/sbin/lpadmin -p printer1 -o job-quota-period=604800 -o job-page-limit=5 Vérifier dans /etc/cups/printers.conf les paramètres QuotaPeriod et PageLimit. Ne pas oublier d'empêcher l'utilisateur nobody d'imprimer sur une imprimante en rajoutant dans le fichier printers.conf, à l'imprimante concernée, la ligne
      DenyUser nobody
      

Surveillance des jobs d'impression

Vous pouvez voir dans
      /var/log/cups/page_log
      
tous les jobs d'impression lancés, et dans
      /var/log/cups/error_log
      
les dépassements de quotas des utilisateurs. J'ai écrit un petit script python qui lit ces fichiers et qui produit des statistiques d'utilisation. On peut l'améliorer pour envoyer un mail aux utilisateurs qui dépassent leurs quotas ...
Soyeur Alain
Last modified: Mon Sep 22 16:36:39 CEST 2003