From: Iordan I. <io...@cd...> - 2011-03-18 21:36:27
|
Hello everyone, It took me a little while to find the new mailing list (I was trying to subscribe to the old one). We are thinking of making use of lprng at the Dept. of Computer Science at University of Toronto, and I am currently making sure it will work within our environment. How does one prevent a user from sending a job, and when the job has been spooled onto the printer (our printers spool), to lprm it, thus avoiding our accounting mechanism? Yes, with 5000 users, we are forced to do some form of accounting, otherwise the printers will be constantly empty and out of toner... Our users print stuff completely unrelated to their CS courses all the time :) One way to deal with this would be to prevent users from removing the *active* job on the queue, right? I guess an evil hack would be to wrap lprm, but that won't prevent savvy users from finding the real lprm and just using it. Another way would be to acknowledge the lprm request, and to stop sending data to the printer if data is still being sent, but to then let the (ifhp) filter continue with its accounting work. I am successfully doing accounting with ifhp, and it's working great, except for lprng being quite compliant in allowing users to wipe out their own active jobs... Many thanks in advance, Iordan Iordanov |
From: Craig S. <csm...@en...> - 2011-03-19 11:34:20
|
On Fri, Mar 18, 2011 at 05:09:39PM -0400, Iordan Iordanov wrote: > How does one prevent a user from sending a job, and when the job has > been spooled onto the printer (our printers spool), to lprm it, thus > avoiding our accounting mechanism? Yes, with 5000 users, we are forced > to do some form of accounting, otherwise the printers will be constantly > empty and out of toner... Our users print stuff completely unrelated to > their CS courses all the time :) Those sneaky CS students, I rememeber in my day.. but i digress. Would two queues do what you are after? one public queue and then push the job to the second queue which cannot have jobs removed? - Craig -- Craig Small VK2XLZ http://www.enc.com.au/ csmall at : enc.com.au Debian GNU/Linux http://www.debian.org/ csmall at : debian.org GPG fingerprint: 1C1B D893 1418 2AF4 45EE 95CB C76C E5AC 12CA DFA5 |
From: Bernhard R. L. <br...@de...> - 2011-03-19 13:01:02
|
* Craig Small <csm...@en...> [110319 12:34]: > On Fri, Mar 18, 2011 at 05:09:39PM -0400, Iordan Iordanov wrote: > > How does one prevent a user from sending a job, and when the job has > > been spooled onto the printer (our printers spool), to lprm it, thus > > avoiding our accounting mechanism? Yes, with 5000 users, we are forced > > to do some form of accounting, otherwise the printers will be constantly > > empty and out of toner... Our users print stuff completely unrelated to > > their CS courses all the time :) > Those sneaky CS students, I rememeber in my day.. but i digress. > > Would two queues do what you are after? one public queue and then push > the job to the second queue which cannot have jobs removed? If anyone has time, looking at job removal would be nice. There is also the problem that if a filter rejects a job, the rejection message is stored in that job but the job then removed so one gets "mysterious" errors. Perhaps lprng needs to keep removed jobs a bit longer so that accounting information and error messages are kept long enough. Bernhard R. Link |
From: Iordan I. <io...@cd...> - 2011-03-21 15:20:18
|
Hi Craig, On 03/19/11 07:15, Craig Small wrote: > Would two queues do what you are after? one public queue and then push > the job to the second queue which cannot have jobs removed? I had no idea that this could even be done. I'll look into it today. Over the weekend I was thinking of doing something rougher than that. The accounting script is called twice by ifhp - once in the beginning and once at the end (filestart and fileend). At filestart, for job M, I was thinking of dropping a file in (for example) "/var/run/printaccounting/printerN" with a username and pagecountM, and at fileend, removing that file. If the next printjob in printerN's spool "finds" a file in the directory, it can "correct" the quota of username by (pagecountM+1 - pagecountM). That's a bit of a hack though. So I take it there is no neat way to tell LPD to disallow removal of active jobs? In most academic environments with enterprise printers, the removal of an "active" job does nothing because the job has been spooled anyway! Cheers, Iordan |