1 UAF

      UAF is a program for searching through the SYSUAF.DAT file.   It
 has  a  fairly  simplistic  interface.   You must provide a selection
 criteria, and a  display  criteria.   Most  fields  are  able  to  be
 selected  upon  and  displayed.   Given  no  arguments,  UAF  will do
 nothing..
2 Examples

      To select anybody whose default or authorized privileges are  in
 the "ALL" class, and display their privileges:
      $ UAF/SELECT=(PRIV=CLASS=ALL,DEFPRIV=CLASS=ALL) -
      $ /DISPLAY=(USERNAME,PRIV,DEFPRIV)

      To select anybody whose authorized privileges are in  the  "all"
 class, and who were not disusered:
      $ UAF/SELECT=(PRIV=CLASS=ALL,FLAG=NODISUSER) -
      $ /MATCH=AND/DISPLAY=USERNAME
2 Qualifiers
/OUTPUT
     OUTPUT=filename

      Redirects all output to a file.
/MATCH
     /MATCH=[AND | OR]

      Specifies, for multiple selection criteria, whether all criteria
 must  match,  or if any one is sufficient.  /MATCH=OR is the default,
 signifying that any one match is sufficient.  /MATCH=AND is  allowed,
 signifying that all selection criteria must match.
/UIC_ORDER

      Causes the SYSUAF to be searched (and displayed)  in  UIC  order
 rather than USERNAME order.
/WRAP
     /WRAP=n

      This is a kind of bogus qualifier (I  admit  it).   If  a  field
 displays past the column specified by /WRAP, then the following field
 will start in column 2 of the next line.
/SELECT
     /SELECT=(item=(min,max),item=min)

      For all numeric and date fields, you may specify a minimum and a
 maximum value.  If you wish an exact value, you should enter the same
 thing as both minimum and maximum value.

      Privileges, login_flags, and weekday fields can be entered as  a
 list  of  items.   If the item is negated, then that item must not be
 present for the record to be selected, if it is not negated, than any
 one        match        will       suffice.        For       example,
 /SELECT=PRIV=(NOBYPASS,NOSYSPRV) means the user must not have  either
 of  BYPASS  or  SYSPRV.   /SELECT=PRIV=(BYPASS,SYSPRV) means the user
 must have either BYPASS or SYSPRV.  /MATCH=AND does not  change  this
 behaviour.
/DISPLAY
     /DISPLAY=(item,item,...)

      You'll probably want, at the very least, /DISPLAY=USERNAME
2 Item_Types
3 Access_Hours

      access hours look like:
   thing=([NO][PRIMARY], [n-m], [n] [,...]
          [NO][SECONDARY], [n-m], [n] [,...])

      Used to specify  hours  of  access  for  all  modes  of  logins.
 Specify  hours  as  integers  from  0 to 23, inclusive.  Hours may be
 specified as single hours (n), or as  ranges  of  hours  (n-m).   The
 first  set  of  hours  after  the  keyword PRIMARY specifies hours on
 primary days; the second set of hours  after  the  keyword  SECONDARY
 specifies hours on secondary days.

      Note the differences between this and  AUTHORIZE.   A  range  of
 hours  must go from a smaller value to a larger value.  Hours must be
 given (i.e.  doesn't default to 0-23 as does Authorize).  If only one
 of  PRIMARY  or SECONDARY is specified, no assumptions are made about
 the other.
3 Numeric

      A numeric value.  The range depends on the item.
3 Text

      A (wildcards allowed) text string.
3 Privilege


      ALL - All privileges.  ACNT, ALLSPOOL, ALTPRI,  BUGCHK,  BYPASS,
 CMEXEC,  CMKRNL, DETACH, DIAGNOSE, DOWNGRADE, EXQUOTA, GROUP, GRPNAM,
 GRPPRV, LOG_IO, MOUNT, NETMBX, OPER, PFNMAP, PHY_IO, PRMCEB,  PRMGBL,
 PRMMBX,  PSWAPM,  READALL,  SECURITY,  SETPRV,  SHARE, SHMEM, SYSLCK,
 SYSGBL,   SYSNAM,   SYSPRV,   TMPMBX,   UPGRADE,    VOLPRO,    WORLD,
 CLASS=privilege-class
4 Privilege_Class

    ALL:    bypass, cmexec, cmkrnl, detach, log_io,
            pfnmap, phy_io, setprv, share, sysnam, sysprv, readall
    FILES:  diagnose, sysgbl, volpro, upgrade, downgrade, security
    SYSTEM: altpri, oper, pswapm, world
    DEVOUR: acnt, allspool, bugchk, exquota, grpnam,
            prmceb, prmgbl, prmmbx, shmem, syslck
    GROUP:  group, grpprv
    NORMAL: mount, netmbx, tmpmbx
3 weekday


      SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
3 login_flags


      AUDIT, AUTOLOGIN, CAPTIVE, DEFCLI, DISCTLY, DISFORCE_PWD_CHANGE,
 DISMAIL,  DISNEWMAIL,  DISRECONNECT,  DISREPORT, DISUSER, DISWELCOME,
 GENPWD, LOCKPWD, PWD_EXPIRED, PWD2_EXPIRED
3 date

      Standard VMS date/time.

      To specify all records with a date prior to something,  use  the
 date 17-NOV-1858 as the minimum date.  For example:
      INTERACTIVE=(17-NOV-1858,maximum)

      To specify all records with no date set use the date 17-NOV-1858
 as both a minimum and maximum value.  For example:
      INTERACTIVE=(17-NOV-1858,17-NOV-1858)
3 deltatime

      Standard VMS deltatime.
2 Items
3 RTYPE

      numeric

      Record type.  All user records have a record  type  of  1.   The
 system password is stored in the SYSUAF with a record type of 0.
3 VERSION

      numeric
3 USRDATOFF

      numeric
3 LOGFAILS

      numeric

      Number of login failures.
3 PWDCHANGE

      date

      Date of last (primary) password change.
3 PWD2CHANGE

      date

      Date of last (secondary) password change.
3 INTERACTIVE

      date

      Last interactive login date & time.
3 NONINTERACTIVE

      date

      Last non-interactive login date & time.
3 ACCESS

      access_hours

      Access sets up all the access hours to look  the  same.   Batch,
 Dialup,  Local,  Network,  and  Remote.   This gets parsed before the
 other access keywords, so if you follow  ACCESS  with  (for  example)
 DIALUP, the dialup access hours will be set accordingly.
3 BATCH

      access_hours
3 DIALUP

      access_hours
3 LOCAL

      access_hours
3 NETWORK

      access_hours
3 REMOTE

      access_hours
3 ACCOUNT

      text
3 CLI

      text
3 CLITABLES

      text
3 DEVICE

      text
3 DIRECTORY

      text
3 LGICMD

      text
3 OWNER

      text
3 ASTLM

      numeric
3 BIOLM

      numeric
3 BYTLM

      numeric
3 DIOLM

      numeric
3 ENQLM

      numeric
3 FILLM

      numeric
3 JTQUOTA

      numeric
3 MAXACCTJOBS

      numeric
3 MAXDETACH

      numeric
3 MAXJOBS

      numeric
3 PGFLQUOTA

      numeric
3 PRCLM

      numeric
3 PRIORITY

      numeric
3 PWDMINIMUM

      numeric
3 SHRFILLM

      numeric
3 TQELM

      numeric
3 WSDEFAULT

      numeric
3 WSEXTENT

      numeric
3 WSQUOTA

      numeric
3 CPUTIME

      deltatime

      Hmm, not currently implemented I think..
3 PWDLIFETIME

      deltatime
3 EXPIRATION

      date
3 USERNAME

      text
3 UIC

      uic

      Uic in numeric or ID format.   Wildcarded  group  or  member  is
 allowed.   The  same restrictions apply to wildcarding UICs as in the
 Authorize and Diskquota programs.
3 DEFPRIVILEGES

      privilege
3 PRIVILEGES

      privilege
3 FLAGS

      login_flags
3 PRIMEDAYS

      weekday
