home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-3.iso / Tools / system / Quotas.README < prev    next >
Encoding:
Text File  |  1992-05-25  |  6.4 KB  |  90 lines

  1.  
  2.  
  3.  
  4.  
  5. Disk Space and Page Usage Quota Systems
  6. Marc Majka
  7.  
  8.  
  9. This package contains software for quota systems for disk space usage and printer page usage.  It was written for the University of British Columbia Computer Science Department first-year Computer Science Laboratory.
  10.  
  11. Quotas are recorded under NetInfo, and may be managed through NetInfoManager, UNIX system command-line utilities, or the Quotas Application.  The latter is designed to allow users to examine their own usage and quotas, and to permit managers to change quotas or reset usages.
  12.  
  13.  
  14. 0: Caveat Administrator
  15. This package is free for you to use and modify.  It is unsupported, and has parts that are not terribly elegant.  The page usage software only works with non-NeXT printers.  If your printer is hosted by a machine other than the NetInfo master, you will introduce a security hole to use the page accounting.
  16.  
  17. 1: Location
  18. Software, reports, and source code is stored in a single directory. Access to this directory should be permitted only to root and members of an administrative group.  See the installation notes below.
  19.  
  20. 2: NetInfo
  21. New properties are added to the NetInfo user directories.  They are diskquota, pagequota, and pageusage.  The quota software will use default values of 0 for all these properties if they have not been added to a user's NetInfo entry.  Two programs have been written to get and set netinfo properties for all users.  getall property prints user names and values for the given property.  setall property value sets the given property to the given value for all users.  These are extraordinarily powerful programs, which could cause havoc in NetInfo if used improperly.  Please be carefull.
  22.  
  23. 2.1 Files and Software
  24. setall    Usage: setall property value. Sets property for all users.
  25. getall    Usage: getall property.  Prints property value for all users.
  26. Source/netinfo/*    Source files.
  27.  
  28. 3: Disk space quotas
  29. Disk usage is monitored by Nightly, which should be invoked by cron.  This script first produces a report using QuotaCheck.  The report lists name, diskquota, and diskusage for each user.  The Nightly script then runs ProcessReport, which constructs lists of users over their quota, and within 20% of their quota.  Mail messages are sent to the users on each list informing them of their usage.   QuotaCheck ages the over-quota list for 10 days.  The most recent over-quota list is called over.  The over-quota list for the previous days are kept in over.1 to over.9.  Nightly then runs DisableOver, which disables the account of anyone over disk quota for 7 of the last 10 days.  A list of disabled accounts is written to the file disabled.
  30.  
  31. 3.1: Files and Software
  32. Nightly    Script run by cron.
  33. QuotaCheck    Run by Nightly.  Output file is report.  Ages over files.
  34. ProcessReport    Run by Nightly.  Input is report, outputs are over and low.
  35.         Sends mail to users in over and low, unless run with "-m".
  36. DisableOver    Disables accounts over quota for 7 of of the last 10 days.
  37. disable    Usage: disable user.  Used by DisableOver.
  38. enable    Usage: enable user.  Re-enables user accounts.
  39. disabled    List of disabled accounts.
  40. log        Date and error messages from Nightly.
  41. report    List of the form name diskquota diskusage.
  42. low    List of users with disk usage within 20% of disk space quota.
  43. over    List of users over disk space quota.
  44. over.[1-9]    Aged over files.
  45. mail    Temporary file used to construct mail messages.
  46. setdq    Usage: setdq user quota.  Sets disk space quota for user.
  47. getdq    Usage: getdq user.  Prints disk quota for user.
  48. getdu    Usage: getdu user.  Prints disk usage for user.
  49. /usr/lib/crontab    Invokes Nightly.
  50. Source/diskq/*    Source files.
  51.  
  52. 4: Printer page quotas
  53. Printer page usage is counted by /usr/lib/transcript/psif.  The printer is queried before and after every print job by pagecount to determine the page count.  The value of the pageusage property in the NetInfo entry for the user doing the printing is updated by /usr/lib/transcript/updatepage.  This program is actually a copy of addpu.  When pageusage is over pagequota the printjob is cancelled, and a cancellation page is printed.
  54.  
  55. 4.1: Files and Software
  56. setpq    Usage: setpq user quota  Sets printer page quota for user.
  57. getpq    Usage: getpq user.  Prints page quota for user.
  58. setpu    Usage: setpu user usage  Sets printer page usage for user.
  59. getpu    Usage: getpu user.  Prints page usage for user.
  60. addpu    Usage: addpu user pages.  Adds pages to pageusage for user.
  61. pagecount    Usage: pagecount device. Gets and prints a page count from a printer.
  62. /usr/lib/transcript/psif
  63.         Printer output filter modified to maintain pageusage.
  64.         Cancels print jobs if the user is over quota.
  65. /usr/lib/transcript/updatepage
  66.         A copy of addpu.
  67. exceeded.ps    Prototype cancellation page.
  68.         %%Title modified to Page Quota Exceeded.
  69.         %%Creator modified to Accounting.
  70. Source/pageq/*    Source Files.
  71. 5: Quotas application
  72. A NextStep application program for examining and managing quotas and usage is available in Quotas.  It presents the user with a window containing the user's login name, current disk usage, disk quota, page usage and page quota.  The application's menu contains a Manager item.  When selected, an authorization window appears and prompts for a password.  If the system root password is entered, the program will allow one to examine and change quotas and page usage for any user, selected by entering their name into the User TextField.
  73.  
  74. 5.1: Files and Software
  75. Quotas    Quota Application
  76. Source/Quotas/*    Source Files
  77.  
  78. 6: Installation
  79. X    Set the name of the installation directory  in Nightly.  It is currently set to     /Users/Admin/Quotas.
  80.  
  81. X    /usr/lib/crontab should invoke Nightly with an entry like:
  82.     0 4 * * *       root    /bin/sh /Users/Admin/Quotas/Nightly
  83.  
  84. X    Copy Source/pageq/psif to /usr/lib/transcript on the printer server.
  85.  
  86. X    Copy addpu to /usr/lib/transcript/updatepage on the printer server.
  87.     If your printer is not served by the NetInfo master, then you will need to use the     version of addpu in addpu.root.c.  Read the README file in Source/pageq,     and the comments in the code.
  88.  
  89. X    Copy pagecount to /usr/lib/transcript on the printer server.  pagecount keeps a log     file in /usr/adm/printlog.  If you want to change this, edit the source and recompile.      This code should work on most PostScript printers, but your milage may vary.  Note     that this code does not work for a NeXT printer, which appears to be connected to     /dev/null (lp = /dev/null in NetInfo), and doesn't have a PostScript interpreter that     pagecount can to ask for a pagecount.
  90.