(LOGO.JPG) Python for OpenVMS

This example finds and reports usernames that have a login failure count (UAI$_LOGFAILS) > 0 and sets this count back to 0. Access to the SYSUAF requires system privileges. Note that the example contains only minimal error checking and reporting.

Do not confuse these login failures with entries in the intrusion database!


#$% UAF_CLEAR_LOGFAILS.PY
# -----
#++
# UAF_CLEAR_LOGFAILS.PY -- 07-MAR-2000 Uwe Zessin
#
# clear all login failure counts of all users
#--

import pyvms, vms_sys

RMS__EOF = 98938

uaf_dict = pyvms.uaf_get_usernames ()

l_sts = uaf_dict ["sts"]
if (l_sts != RMS__EOF):
  l_stv = uaf_dict ["stv"]
  print vms_sys.getmsg (l_sts)[0]
  print vms_sys.getmsg (l_stv)[0]
  sys.exit(1)

uaf_list = uaf_dict ["usernames"]

x_header = 0

for username in uaf_list:
  uai_dict = vms_sys.getuai (None,None,username, \
                         ("UAI$_LOGFAILS","UAI$_LASTLOGIN_I"))
  l_status = uai_dict ["status"]
  if (l_status != 1):
    print vms_sys.getmsg (l_status)
    sys.exit(1)

  w_uai_logfails = uai_dict ["UAI$_LOGFAILS"]

  if (w_uai_logfails > 0):
    if (not x_header):
      x_header = 1
      print "users with logfails > 0:"
      print "------------------------"

    q_uai_lastlogin_i = uai_dict ["UAI$_LASTLOGIN_I"]
    if (q_uai_lastlogin_i == 0L):
      t_uai_lastlogin_i = "Never Logged In"
    else:

      t_uai_lastlogin_i = vms_sys.asctim (q_uai_lastlogin_i) [:17]

    print "%12s - %17s - %d" % \
          (username, t_uai_lastlogin_i, w_uai_logfails)

    setaui_dict = vms_sys.setuai (None,None,username, \
                                  (("UAI$_LOGFAILS",0),))
    l_status = setaui_dict ["status"]
    if (l_status != 1):
      print "  failed to clear"
      print " ", vms_sys.getmsg (l_status)
      # continue on other users

# -----
#%$


Example run:

$ python uaf_clear_logfails.py
users with logfails > 0:
------------------------
  FAL$SERVER -   Never Logged In - 3
      SYSTEM -  5-MAR-2000 16:47 - 1
      ZESSIN -  7-MAR-2000 13:02 - 2
$
There was never an interactive login to user FAL$SERVER.


(go to: table of contents, index)

07-MAR-2000 ZE.