Quotas d'impression avec CUPS

CUPS (Common Unix Printing System) est un système d'impression plein de possibilités et dont le développement est plein de promesses.
Il s'administre sous Linux via une interface web (http://127.0.0.1:631) que je vous laisserai explorer.
Nous allons cependant utiliser ici la commande lpadmin et parfois recourir à l'édition à la main de /etc/cups/printers.conf

Le sujet est ici la limitation du nombre de pages que chaque utilisateur sera autorisé à imprimer sur une imprimante physiquement connectée à un serveur Linux/Samba depuis des clients Window$.
Nous souhaitons que chaque utilisateur ait le droit d'imprimer au plus n pages dans un laps de temps de p jours.

Contrainte/limitation:
A ce jour (07/07/2003), les limitations imposées ne peuvent pas être ajustées de façons différentes selon les utilisateurs.
Les limitations sont les mêmes pour tous les utilisateurs (qu'ils soient sur le serveur ou sur un client distant).


J'ai effectué ces "recherches" sur internet et ces tests, à la demande de professeurs, pour limiter les impressions sur une imprimante laser couleur dans un lycée.


Situation:

Le serveur Linux Mandrake9.1/Samba2.2.7a(PDC) se nomme DeepGlue/LeJoliServeur et dispose de l'IP 192.168.52.182
Y est rattachée une imprimante jet d'encre Epson Stylus 820
Cette imprimante a été installée/configurée via DrakConf et permet donc, au départ des manips, des impressions locales sans aucune limitation.
La version de CUPS est 1.1.19

Le client Window$95 se nomme DeepGreen et dispose de l'IP 192.168.52.2


Tests locaux:

Connecté au poste Linux, j'ai effectué quelques premiers tests à l'aide des utilisateurs toto et steph.

J'ai commencé par essayer de ne travailler que sur le nombre de pages et la durée et ça n'a pas marché.

Avais-je oublié de redémarrer CUPS?
N'avais-je pas patienté suffisamment après le redémarrage?
Toujours est-il qu'un test ultérieur révèle que cela fonctionne très bien sans spécifier d'utilisateur interdit ou autorisé.
Voir plus bas.

Les premiers tests réussis (et que je présente maintenant) font donc référence à des utilisateurs autorisés ou interdits dans /etc/cups/printers.conf 


1er test:

J'ai commencé par interdire à l'utilisateur toto d'imprimer sur l'imprimante EpsonStylus820 (c'est le nom déclaré pour l'imprimante lors de la configuration via printerdrake).
J'ai conservé les limitations de 2 pages sur une période de 1200sec soit 20min que j'avais saisies lors de mes tout premiers tests:

[root@DeepGlue toto]# lpadmin -p EpsonStylus820 \
-o job-quota-period=1200 \
-o job-page-limit=2 \
-u deny:toto

[root@DeepGlue toto]# /etc/init.d/cups stop
Arrêt du service d'impression CUPS:             [  OK  ]
[root@DeepGlue toto]# /etc/init.d/cups start
Lancement du service d'impression CUPS:         [  OK  ]
[root@DeepGlue toto]#

Le fichier affecté est /etc/cups/printers.conf
En voici le contenu (du moins la partie concernant cette imprimante):

[root@DeepGlue toto]# cat /etc/cups/printers.conf
# Printer configuration file for CUPS v1.1.19
# Written by cupsd on sam 05 jui 2003 20:31:57 CEST
...
<Printer EpsonStylus820>
Info Imprimante jet d'encre N/B
Location
DeviceURI parallel:/dev/lp0
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 1200
PageLimit 2
KLimit 0
DenyUser toto
</Printer>
...
[root@DeepGlue toto]#


J'ai ensuite tenté d'imprimer en tant qu'utilisateur toto et il s'est produit l'erreur suivante:

Erreur Utilisateur interdit d'impression

"Caramba! Ca marche!", me dis-je en mon for intérieur et de poursuivre mes essais...

 

2ème test:

Je me suis demandé ce qu'il se passait si, au lieu d'interdire un utilisateur, je n'en autorisais que certains.
Il semblerait logique que l'effet soit le même.
Et c'est le cas (heureusement;o).

En n'autorisant que steph à imprimer, toto est bien exclu.

Voici la commande:

[root@DeepGlue toto]# lpadmin -p EpsonStylus820 \
-o job-quota-period=1200 \
-o job-page-limit=2 \
-u allow:steph

[root@DeepGlue toto]# /etc/init.d/cups stop
Arrêt du service d'impression CUPS:             [  OK  ]
[root@DeepGlue toto]# /etc/init.d/cups start
Lancement du service d'impression CUPS:         [  OK  ]
[root@DeepGlue toto]#


Et le contenu de /etc/cups/printers.conf

<Printer EpsonStylus820>
Info Imprimante jet d'encre N/B
Location
DeviceURI parallel:/dev/lp0
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 1200
PageLimit 2
KLimit 0
AllowUser steph
</Printer>


Remarque:
A noter que si on précise dans la même ligne -u deny:toto puis -u allow:steph, seul le dernier paramètre concernant -u est pris en compte.


3ème test:

J'ai commencé à jouer avec les quotas eux-mêmes (jouer/tester).

[root@DeepGlue toto]# lpadmin -p EpsonStylus820 \
-o job-quota-period=1200 \
-o job-page-limit=1 \
-u allow:steph,toto

[root@DeepGlue toto]# /etc/init.d/cups stop
Arrêt du service d'impression CUPS:             [  OK  ]
[root@DeepGlue toto]# /etc/init.d/cups start
Lancement du service d'impression CUPS:         [  OK  ]
[root@DeepGlue toto]#


Dans le fichier /etc/cups/printers.conf, on obtient autant de lignes AllowUser que l'on en a effectivement autorisé:

<Printer EpsonStylus820>
Info Imprimante jet d'encre N/B
Location
DeviceURI parallel:/dev/lp0
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 1200
PageLimit 1
KLimit 0
AllowUser steph
AllowUser toto
</Printer>


Les quotas fonctionnent, mais il semble y avoir un délai avant le bon fonctionnement et sur des durées assez courtes, il me semble que la précision quant aux durées n'est pas parfaite (à 2min près) ou alors j'ai mal noté les heures.

Les erreurs obtenues sont les suivantes:


(j'ai obtenu les erreurs en imprimant depuis kwrite, par contre, avec gedit, quand les impressions ne sont pas parties, il n'y a pas eu de message d'erreur)


Remarque:
Pour supprimer les quotas, il faut remettre la durée et le nombre de pages à zéro (zéro pour l'infini).

[root@DeepGlue toto]# lpadmin -p EpsonStylus820 \
-o job-quota-period=0 \
-o job-page-limit=0

[root@DeepGlue toto]# /etc/init.d/cups stop
Arrêt du service d'impression CUPS:             [  OK  ]
[root@DeepGlue toto]# /etc/init.d/cups start
Lancement du service d'impression CUPS:         [  OK  ]
[root@DeepGlue toto]#


Cela permet bien de supprimer les quotas, par contre cela ne nettoye pas les lignes AllowUser.
Pour les faire disparaitre, j'ai édité directement le fichier /etc/cups/printers.conf


Client distant:

Pour le poste Linux, Samba fait serveur d'impression et le fichier smb.conf fourni par défaut propose à un détail au plus près ce qu'il nous faut.

Voici ce qui concerne le partage d'impression dans /etc/samba/smb.conf
Dans la section [Global]:

# Options d'impression:
# Avec ces options toutes les imprimantes définies sur le serveur
# sont automatiquement partagées.
# L'alternative consisterait à configurer chaque imprimante à la main,
# à raison d'un partage par imprimante.
   printcap name = cups
   load printers = yes
# Si certaines imprimantes ne doivent pas être accessibles,
# on peut toujours définir les limitations avec lpadmin.

# Les systèmes d'impression supportés sont:
# bsd, sysv, plp, lprng, aix, hpux, qnx, cups
   printing = cups

# <<EST-CE UTILE pour W9x? LE SUPPRIMER ET TESTER>>
# <<Supprimer aussi le partage [print$] alors>>
# Samba 2.2 supports the Windows NT-style point-and-print feature. To
# use this, you need to be able to upload print drivers to the samba
# server. The printer admins (or root) may install drivers onto samba.
# Note that this feature uses the print$ share, so you will need to
# enable it below.
# This parameter works like domain admin group:
# printer admin = @<group> <user>
   printer admin = @adm
# This should work well for winbind:
;   printer admin = @"Domain Admins"


Dans les sections des partages:

[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
# to allow user 'guest account' to print.
   guest ok = yes
   writable = no
   printable = yes
   create mode = 0700
   # using client side printer drivers.
   print command = lpr-cups -P %p -o raw %s -r
   # or using cups own drivers (use generic PostScript on clients).
;   print command = lpr-cups -P %p %s -r

# This share is used for Windows NT-style point-and-print support.
# To be able to install drivers, you need to be either root, or listed
# in the printer admin parameter above. Note that you also need write access
# to the directory and share definition to be able to upload the drivers.
# For more information on this, please see the Printing Support Section of
# /usr/share/doc/samba-<version>/docs/Samba-HOWTO-Collection.pdf
[print$]
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   write list = @adm root
   guest ok = yes

 

Avec les options printcap name = cups et load printers = yes, ce sont toutes les imprimantes définies sur le serveur qui apparaissent comme partagées:

Toutes les imprimantes partagées


J'ai fait des essais avec une imprimante Epson Stylus 820 connectée sur mon serveur Samba.
Je parvenais à travailler localement depuis le serveur avec cette imprimante (tests de limitation du nombre de pages,... avec lpadmin compris) comme indiqué précédemment.

Et à travers Samba, depuis le client w$95, pas moyen d'imprimer.
J'avais installé le pilote comme pour n'importe quelle imprimante partagée sur un poste win.

J'ai failli tourner en bourrique à chercher ce qui pouvait poser problème.
J'ai contrôlé tout un tas de paramètres, fichiers, liens,... en consultant des pages web à propos de CUPS.

Une remarque dans une page web m'a mis sur la piste:
Le poste semblait ne pas parvenir à considérer l'imprimante comme distante.
Cela arrive parfois parait-il.
(j'ai vérifié en commençant par supprimer toutes les imprimantes et pilotes d'imprimantes sur DingDong avant de nouveaux essais: rien à faire, il ne veut pas des pilotes locaux).

J'ai modifié la ligne "print command" du /etc/samba/smb.conf et adopté la config suivante:

   # using cups own drivers (use generic PostScript on clients).
   print command = lpr-cups -P %p %s -r

Et sur le client, j'ai installé un pilote pour imprimante Postscript: "HP LaseJet 4/4M PostScript"

Cette fois tout est passé correctement.


Remarque:
Il est nécessaire de déclarer un nom pour l'imprimante sous Linux avec au plus 12 caractères.
En effet, c'est ce nom qui est repris pour le nom de partage et lors de l'ajout de l'imprimante sur le client, le nom est tronqué à 12 caractères et du coup, comme cela ne correspond pas au nom du partage, on ne peut pas finir l'installation.
Il y a moyen de passer outre:
Préciser/compléter à la main le nom du partage et ça passe.


Pour tester les quotas à imposer via lpadmin, j'ai procédé ainsi:
- Se déloguer sur les clients.
- Effectuer les modifs via lpadmin.
- Arrêter les serveurs smb et cups.
- Redémarrer cups, puis smb.
- Patienter un peu car il semble que la mise en place ne soit pas instantannée.
- Se loguer sur le client et tester.

Regret:
Lorsque cela ne passe pas, on ne reçoit pas de message d'erreur, alors que sous Linux lors d'une impression avec kwrite, on a la boite d'erreur qui explique qu'il ne faut pas insister.


Pour l'ajout d'imprimante sur le client DeepGreen (W$95), voir ici.
Attention: La page est lourde car agrémentée de nombreuses captures d'écran.


Administration du serveur:

Il peut être nécessaire parfois de remettre les compteurs à zéro, parce qu'un utilisateur... qui se fera réprimander pour sa consommation,  a vraiment besoin d'imprimer à nouveau.

Inconvénient à nouveau:
Quand on remet les compteurs à zéro, c'est pour tout le monde.


Comme les  utilisateurs autorisés à remettre les compteurs à zéro (c'est leur salle, leur imprimante et leurs crédits) n'ont pas de connaissance de Linux, je ne souhaitais pas leur confier le mot de passe root.
J'ai donc bricolé un script et configuré sudo pour qu'ils puissent procéder facilement.


La configuration de sudo:

Le fichier /etc/sudoers par défaut:

# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# User privilege specification
root    ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel       ALL=(ALL)       ALL

# Same thing without a password
# %wheel       ALL=(ALL)       NOPASSWD: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now

J'ai modifié le fichier pour autoriser certains utilisateurs (ci-dessous steph) à redémarrer CUPS et à exécuter des commandes lpadmin:

# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification
Host_Alias LOCAL = localhost, 127.0.0.1, DeepGlue, 192.168.52.182

# User alias specification
User_Alias CUPSADMIN = steph

# Cmnd alias specification
Cmnd_Alias CMDCUPSADMIN = /etc/init.d/cups, /usr/sbin/lpadmin

# Defaults specification

# User privilege specification
root    ALL=(ALL) ALL
CUPSADMIN       ALL=NOPASSWD: CMDCUPSADMIN

# Uncomment to allow people in group wheel to run all commands
# %wheel       ALL=(ALL)       ALL

# Same thing without a password
# %wheel       ALL=(ALL)       NOPASSWD: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now


Administration:

Exploitant sudo, j'ai préparé le script BASH suivant:

#!/bin/sh
#quotas_impr.sh

#Variable à adapter:
imprimante="EpsonStylus820"

if [ -z "$1" -o -z "$2" ]; then
    clear
    echo "========================================================"
    echo "Usage:"
    echo "======"
    echo "         ./quotas_impr.sh duree_en_jours nombre_de_pages"
    echo ""
    echo ""
    echo "Exemple: Pour 5 pages par jour:"
    echo "         ./quotas_impr.sh 1 5"
    echo "========================================================"
else
    duree=$(($1*60*60*24))
    sudo /usr/sbin/lpadmin -p $imprimante -o job-quota-period=0 -o job-page-limit=0
    sudo /etc/init.d/cups stop
    sudo /etc/init.d/cups start
    sudo /usr/sbin/lpadmin -p $imprimante -o job-quota-period=$duree -o job-page-limit=$2
    sudo /etc/init.d/cups stop
    sudo /etc/init.d/cups start
fi


Il prend en paramètres le nombre de jours et le nombre de pages que chaque utilisateur peut imprimer pendant ce nombre de jours.
La remise à zéro de la première commande lpadmin semble nécessaire pour faire table rase de la date des dernières impressions.

Le voici: quotas_impr.sh


Surveillance...

Le fichier /var/log/cups/page_log conserve la trace des nombres de pages imprimées, quand et par qui.
De quoi satisfaire le petit Sarkozy qui sommeille en vous (non, ne me jetez pas de pierre, même si cela peut passer pour insultant).

La syntaxe en est la suivante:
- Nom de l'imprimante,
- Login de celui qui imprime,
- Numéro du Job d'impression,
- Date et heure,
- Numéro de la page imprimée,
- Nombre d'exemplaires de la page,
- Source de l'impression.

Exemple:

EpsonStylus820 TOTO 194 [06/Jul/2003:20:47:18 +0200] 1 1 - localhost
EpsonStylus820 TOTO 195 [06/Jul/2003:20:50:44 +0200] 1 1 - localhost
EpsonStylus820 steph 196 [07/Jul/2003:14:44:52 +0200] 1 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 1 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 2 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 3 1 - localhost

On observe ici quatre impressions, la troisième, effectuée par steph, a le numéro de Job 197 et note ligne après ligne les pages 1, 2 et 3 qui sont chacunes imprimées une fois.

Remarques:

  1. Voici un script qui permet de faire une analyse de ces fichiers de log: sarkozy3.sh
    Il nécessite d'être exécuté avec les droits root et place les résultats dans un dossier /home/stats (créé automatiquement).

  2. Si vous souhaitez réfrenner les ardeurs du petit Sarko, vous pouvez désactiver ce logging en changeant le paramètre par défaut #PreserveJobHistory Yes du fichier /etc/cups/cupsd.conf


Améliorations possibles:

L'une de celles auxquelles je pense pour l'administration serait de réaliser des pages PHP pour permettre l'administration sans se loguer sur le serveur (je rappelle tout de même qu'il, ou plutôt l'imprimante qui lui est rattachée, doit être accessible physiquement, alors on peut bien se loguer sur le serveur (pour certains utilisateurs au moins)).


Sans utilisateurs spécifiés:

Voici les tests réalisés après coup, intrirgué que j'étais par le fait qu'il faille spécifier des utilisateurs autorisés ou interdits d'impression.

Il n'en est rien.


J'ai refait des tests d'impression depuis le client DingDong:

[steph@DeepGlue steph]$ su
Password:
[root@DeepGlue steph]# vi /etc/cups/printers.conf
[root@DeepGlue steph]# lpadmin -p EpsonStylus820 -o job-quota-period=1200 -o job-page-limit=1
[root@DeepGlue steph]# /etc/init.d/cups stop
Arrêt du service d'impression CUPS:                           [  OK  ]
[root@DeepGlue steph]# /etc/init.d/smb stop
Arrêt des services SaMBa:                                     [  OK  ]
Arrêt du service NMB:                                         [  OK  ]
[root@DeepGlue steph]# /etc/init.d/cups start
Lancement du service d'impression CUPS:                       [  OK  ]
[root@DeepGlue steph]# /etc/init.d/smb start
Lancement du service SaMBa:                                   [  OK  ]
Lancement du service NMB:                                     [  OK  ]
[root@DeepGlue steph]# exit
exit
[steph@DeepGlue steph]$  date
dim jui 13 11:56:07 CEST 2003
[steph@DeepGlue steph]$

Je viens ici de limiter les impressions sur EpsonStylus820 à une page toutes les 20min quel que soit l'utilisateur (j'ai aussi vérifié que mon /etc/cups/printers.conf ne comportait plus de ligne AllowUser ou DenyUser).

J'ai patienté un peu et j'ai lancé trois impressions depuis DingDong à 12h08 (le 13/07/2003).
Seule la première est passée.

[steph@DeepGlue steph]$ su
Password:
[root@DeepGlue steph]# tail /var/log/cups/page_log
EpsStylus820 TOTO 204 [06/Jul/2003:20:24:41 +0200] 1 1 - localhost
EpsStylus820 TOTO 205 [06/Jul/2003:20:40:12 +0200] 1 1 - localhost
EpsonStylus820 TOTO 194 [06/Jul/2003:20:47:18 +0200] 1 1 - localhost
EpsonStylus820 TOTO 195 [06/Jul/2003:20:50:44 +0200] 1 1 - localhost
EpsonStylus820 steph 196 [07/Jul/2003:14:44:52 +0200] 1 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 1 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 2 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 3 1 - localhost
EpsonStylus820 steph 198 [09/Jul/2003:16:26:09 +0200] 1 1 - localhost
EpsonStylus820 TOTO 199 [13/Jul/2003:12:08:29 +0200] 1 1 - localhost
[root@DeepGlue steph]# 

Seule la première impression de 12h08min29s est passée (cf dernière ligne).
Les deux qui ont suivi dans la minute ne sont pas passées (aucun message d'erreur pour autant).

Je ne devrais pas pouvoir imprimer avant 12h28min29s.


Remarque:

On note aussi dans cet affichage (de la ligne 2 à la ligne 3) mes tests sur le nom de l'imprimante en rapport avec les problèmes de nom de partage dépassant 12 caractères: EpsStylus820 et EpsonStylus820.


J'ai lancé une autre impression à 12h21min39s:

[root@DeepGlue steph]# date
dim jui 13 12:21:33 CEST 2003
[root@DeepGlue steph]# 

Et ce n'est pas passé.


J'ai fait un nouvel essai à 12h35min57s:

[root@DeepGlue steph]# date
dim jui 13 12:36:00 CEST 2003
[root@DeepGlue steph]# 

Et c'est passé.
J'avais en effet passé 12h28min29s (12h08min+20min (impression initiale plus 20 minutes)).


J'ai refait un test à 12h36min27s:

[root@DeepGlue steph]# date
dim jui 13 12:36:30 CEST 2003
[root@DeepGlue steph]# 

Ce n'est pas passé.


Mais à quoi joue-t-il me dire-vous?
A remplir les fichiers de log (en relevant les heures);o).


Observons donc maintenant les log

[root@DeepGlue steph]# tail /var/log/cups/page_log
EpsStylus820 TOTO 205 [06/Jul/2003:20:40:12 +0200] 1 1 - localhost
EpsonStylus820 TOTO 194 [06/Jul/2003:20:47:18 +0200] 1 1 - localhost
EpsonStylus820 TOTO 195 [06/Jul/2003:20:50:44 +0200] 1 1 - localhost
EpsonStylus820 steph 196 [07/Jul/2003:14:44:52 +0200] 1 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 1 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 2 1 - localhost
EpsonStylus820 steph 197 [07/Jul/2003:14:55:54 +0200] 3 1 - localhost
EpsonStylus820 steph 198 [09/Jul/2003:16:26:09 +0200] 1 1 - localhost
EpsonStylus820 TOTO 199 [13/Jul/2003:12:08:29 +0200] 1 1 - localhost
EpsonStylus820 TOTO 200 [13/Jul/2003:12:36:00 +0200] 1 1 - localhost
[root@DeepGlue steph]# exit
exit
[steph@DeepGlue steph]$

On trouve sur le deux dernières lignes, les deux impressions qui sont passées:
Celle de 12h08min29s et celle de 13h36min00s.


Mais où sont les Job refusés?

C'est dans /var/log/cups/error_log que cela se passe:

[root@DeepGlue steph]# tail /var/log/cups/error_log -n70 | grep TOTO
I [13/Jul/2003:12:08:22 +0200] Job 199 queued on 'EpsonStylus820' by 'TOTO'.
I [13/Jul/2003:12:08:56 +0200] User "TOTO" is over the quota limit...
I [13/Jul/2003:12:09:07 +0200] User "TOTO" is over the quota limit...
I [13/Jul/2003:12:21:39 +0200] User "TOTO" is over the quota limit...
I [13/Jul/2003:12:35:57 +0200] Job 200 queued on 'EpsonStylus820' by 'TOTO'.
I [13/Jul/2003:12:36:27 +0200] User "TOTO" is over the quota limit...
[root@DeepGlue steph]#

Les Job 199 et 200 correspondent à ce qui a été accepté à 12h08min22s et 12h35min57s.
On note un petit décalage (~7s) entre les différents fichiers de log.
Les entrées dans les log doivent correspondre à des niveaux différents dans l'exécution des tâches.

Les autres entrées indiquent les Job refusés.


En épluchant un peu plus les log dans error_log, voilà tout ce qui concerne ces impressions:

I [13/Jul/2003:12:08:21 +0200] Adding start banner page "none" to job 199.
I [13/Jul/2003:12:08:22 +0200] Adding end banner page "none" to job 199.
I [13/Jul/2003:12:08:22 +0200] Job 199 queued on 'EpsonStylus820' by 'TOTO'.
I [13/Jul/2003:12:08:22 +0200] Started filter /usr/lib/cups/filter/pstops (PID 10035) for job 199.
I [13/Jul/2003:12:08:22 +0200] Started filter /usr/lib/cups/filter/foomatic-rip (PID 10036) for job 199.
I [13/Jul/2003:12:08:22 +0200] Started backend /usr/lib/cups/backend/parallel (PID 10037) for job 199.
I [13/Jul/2003:12:08:56 +0200] User "TOTO" is over the quota limit...
I [13/Jul/2003:12:09:07 +0200] User "TOTO" is over the quota limit...
I [13/Jul/2003:12:21:39 +0200] User "TOTO" is over the quota limit...
I [13/Jul/2003:12:35:57 +0200] Adding start banner page "none" to job 200.
I [13/Jul/2003:12:35:57 +0200] Adding end banner page "none" to job 200.
I [13/Jul/2003:12:35:57 +0200] Job 200 queued on 'EpsonStylus820' by 'TOTO'.
I [13/Jul/2003:12:35:57 +0200] Started filter /usr/lib/cups/filter/pstops (PID 10083) for job 200.
I [13/Jul/2003:12:35:57 +0200] Started filter /usr/lib/cups/filter/foomatic-rip (PID 10084) for job 200.
I [13/Jul/2003:12:35:57 +0200] Started backend /usr/lib/cups/backend/parallel (PID 10085) for job 200.
I [13/Jul/2003:12:36:27 +0200] User "TOTO" is over the quota limit...

On peut observer plus en détail le déroulement de chaque Job.


Et voilà!

C'est tout pour le moment.


Liens:

Le site officiel de CUPS:
http://www.cups.org

Pour réaliser ce guide et au départ m'informer moi-même, je suis parti de la page (en anglais):
http://printing.kde.org/documentation/tutorials/quotas.phtml

En anglais toujours, avec un aperçu de Samba3.0:
http://samba.vernstok.nl/htmldocs/CUPS-printing.html#id2963491

Voir aussi (en anglais):
http://docs.kde.org/en/HEAD/kdebase/kdeprint/troubleshooting-cups.html

Pour la configuration de sudo:
http://www.ac-creteil.fr/reseaux/systemes/linux/outils-tcp-ip/Linux-sudo.html