Set up Quota Limits per User on CUPS Print Server

Posted by

ใน Linux และ Unix ทั้งหลาย โปรแกรมที่จะใช้ในการทำ print server มีชื่อว่า CUPS ซึ่งข้อเสียของ CUPS นี้คือไม่สามารถ set quota รายบุคลลได้ แต่เราสามารถประยุกต์ใช้ feature allow/deny ในรายบุคคลและกลุ่มได้ ซึ่งมันก็จะสามารถทำงานได้คล้ายๆกับการใช้ quota แต่ความแม่นยำในการนับจำนวนหน้าสำหรับ client ที่เป็น windows อาจจะไม่แม่นยำมากนัก เนื่องจากปัญหาด้านการสื่อสารระหว่าง windows client กับ CUPS

วิธีการ set quota ให้กับ CUPS (print server)

วิธีการนี้จะเป็นการบังคับให้ทุกคนใช้งานตามที่กำหนดไว้ โดยจะใช้คำสั่ง lpadmin โดยใช้ option job-quota-period สำหรับกำหนดช่วงเวลา หน่วยเป็นวินาที (1 วัน = 86400), option job-k-limit สำหรับกำหนดขนาดของข้อมูลรวม หน่วยเป็น KBytes และ option job-page-limit กำหนดจำนวนหน้ารวม

ต้องการ set quota ให้กับ printer1 ให้สามารถ print ข้อมูลรวมได้มากที่สุด 5 MB ภายในเวลา 1 วัน

# lpadmin -p printer1 -o job-quota-period=86400 -o job-k-limit=5120

ต้องการ set quota  ให้กับ printer2 ให้สามารถ print จำนวนหน้าได้มากที่สุด 200 หน้า ภายในเวลา 1 ซัน

# lpadmin -p printer2 -o job-quota-period=604800 -o job-page-limit=200

วิธีการ set user quota ให้กับ CUPS (print server)

วิธีการนี้เป็นการ set user quota ให้รายบุคคลโดยมี option ที่เพิ่มเติมจากข้างบนคือ

-E คือการ enable printer

-v smb://server/printer คือ การระบุวิธีการแชร์ printer ในที่นี้คือการแชร์ printer ผ่าน samba

-u deny:all,all คือ การ deny ทุก user และทุก group

-u allow:tum,tum คือ การอนุญาติเฉพาะ user tum และ group tum

ตัวอย่าง จะ set quota ที่ printer3 ให้ user tum ให้สามารถ print ได้ผ่าน samba protocol จำนวนหน้ามากที่สุด 10 หน้า ภายในเวลา 1 วัน

# lpadmin -p printer3 -E -v smb://server/printer -u deny:all,all -u allow:tum,tum -o job-quota-period=86400 -o job-page-limit=10

One response

  1. jobthai Avatar
    jobthai