[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

478.0. "if only there was a F$GETUAI!" by ZEPPO::FOX () Wed May 20 1987 15:01

    Well, I'd like to ask if anyone has any suggestions for a quick
    way to get a user's quotas from the UAF file from a command procedure.
    The user does not have to be logged in. Basically I have to be able
    to do a $GETUAI call from a command procedure (it would be nice
    if there was a F$GETUAI lexical!) for a finite list of quotas and
    modify the user's UAF based on whether they have enough quota or
    not. I'd love to hear that there is a way beside dumping the AUTHORIZE
    output to a file and parsing the file!
    
    Thanks in advance for any help!
    
T.RTitleUserPersonal
Name
DateLines
478.1PASTIS::MONAHANWed May 20 1987 20:1114
    	At one time you could read and write the UAF directly from DCL,
    and then they changed the UAF record size so it was too large for
    DCL to handle in a symbol, and then they extended DCl, ... 
    
    	I am not sure what the current situation is, but you could try
    it. The username is the primary key. You will need to know where
    in the record the quotas are, but I can let you have a PL/1 definition
    of the record that works if you do not already have something.
    
    	Better still, use another language. I always try to use the
    language that does what I want easiest, rather than trying to bend
    a language that really does not have a particular feature. A few
    lines of Fortran (or Basic, or PL/1, or ...) could call $GETUAI
    and return the values to DCL symbols.
478.2DATATRIEVE is good for this sort of thingSRFSUP::LONGOBob LongoSun May 24 1987 14:264
    DATATRIEVE is handy for looking through SYSUAF.DAT and finding users
    with certain quotas or flag settings.
    
    -Bob
478.3Have an FD hangin' around?PENNSY::MCMAHONAARRGGHH! Thank you.Tue May 26 1987 13:125
    re: DTR and SYSUAF.DAT
    
    Do you have a record description or an FD for the SYSUAF.DAT handy?
    
    Pat
478.4UAFDEFLASSIE::BEELERTue May 26 1987 20:1311
    In order to get the layout for the UAF file one needs the right
    symbol definition file.
    
           create s.mar
    	.library	/sys$share:lib/
    	$UAFDEF	GLOBAL    ; the word global must be in capital letters
    	.end
    $mac/lis s
    
    S.lis contains all the offsets and field sizes for the Uaf record
    
478.5SYSUAF.DAT record description for DTRSRFSUP::LONGOBob LongoWed May 27 1987 19:25106
RE: .3
    
            <<< SWSHUB::USER$DISK:[NOTES$LIBRARY]VMSNOTES.NOTE;1 >>>
           -< VAX/VMS and more... *** DIGITAL INTERNAL USE ONLY *** >-
================================================================================
Note 367.6                 Audit reporting of SYSUAF?                     6 of 6
MONSTR::DUTKO "Nestor Dutko, VMS/VAXclusters CSSE"   96 lines   3-APR-1987 08:11
                       -< Datatrieve UAF record layout >-
--------------------------------------------------------------------------------

    I am not certain, but I believe that the foloowing UAF Datatrieve
    record definition is still valid:
    
    -- Nestor
    
    
DELETE UAF_RECORD;
REDEFINE RECORD UAF_RECORD USING
01 UAF_RECORD.
	03 RTYPE BYTE.
	03 VERSION BYTE.
	03 USER_DATA_OFFSET WORD.
	03 USER_NAME PIC X(32).
	03 UIC.
		05 MEMBER WORD.
		05 GROUP WORD.
	03 SUB_ID LONG.
	03 PARENT_ID DATE.
	03 ACCOUNT PIC X(32).
	03 OWNER.
		05 OWNER_LEN BYTE.
		05 OWNER_STR PIC X(31).
	03 DEFAULT_DEVICE PIC X(32).
	03 DEFAULT_DIRECTORY.
		05 DEFAULT_DIRECTORY_LEN BYTE.
		05 DEFAULT_DIRECTORY_STR PIC X(63).
	03 LGICMD PIC X(64).
	03 DEFCLI PIC X(32).
	03 CLITABLES PIC X(32).
	03 PWD QUAD.
	03 PWD_2 QUAD.
	03 LOGFAILS WORD.
	03 SALT WORD.
	03 ENCRYPT BYTE.
	03 ENCRYPT_2 BYTE.
	03 PWD_LENGTH BYTE.
	03 FILLER BYTE.
	03 EXPIRATION DATE.
	03 PWD_LIFETIME DATE.
	03 PWD_DATE DATE.
	03 PWD_DATE_2 DATE.
	03 LAST_INTERACTIVE_LOGIN DATE.
	03 LAST_NONINTERACTIVE_LOGIN DATE.
	03 PRIVILEGES QUAD.
	03 DEFAULT_PRIVILEGES QUAD.
	03 MIN_CLASS PIC X(20).
	03 MAX_CLASS PIC X(20).
	03 LOGIN_FLAGS LONG.
	03 NETWORK_ACCESS.
		05 PRIMARY_NET PIC X(3).
		05 SECONDARY_NET PIC X(3).
	03 BATCH_ACCESS.
		05 PRIMARY_BATCH PIC X(3).
		05 SECONDARY_BATCH PIC X(3).
	03 LOCAL_ACCESS.
		05 PRIMARY_LOCAL PIC X(3).
		05 SECONDARY_LOCAL PIC X(3).
	03 DIALUP_ACCESS.
		05 PRIMARY_DIALUP PIC X(3).
		05 SECONDARY_DIALUP PIC X(3).
	03 REMOTE_ACCESS.
		05 PRIMARY_REMOTE PIC X(3).
		05 SECONDARY_REMOTE PIC X(3).
	03 FILLER PIC X(12).
	03 PRIME_DAYS BYTE.
	03 FILLER BYTE.
	03 PRIORITY BYTE.
	03 QUEUE_PRIORITY BYTE.
	03 MAX_JOBS WORD.
	03 MAX_ACCT_JOBS WORD.
	03 MAX_DETACH WORD.
	03 PROCESS_CNT WORD.
	03 BIOLM WORD.
	03 DIOLM WORD.
	03 TQCNT WORD.
	03 ASTLM WORD.
	03 ENQLM WORD.
	03 FILLM WORD.
	03 SHRFILLM WORD.
	03 WSQUOTA LONG.
	03 DFWSCNT LONG.
	03 WSEXTENT LONG.
	03 PGFLQUOTA LONG.
	03 CPUTIME LONG.
	03 BYTLM LONG.
	03 PBYTLM LONG.
	03 JTQUOTA LONG.
	03 PROXY_LIM WORD.
	03 PROXIES WORD.
	03 ACCOUNT_LIM WORD.
	03 ACCOUNTS WORD.
	03 FILLER PIC X(64).
	03 FILLER PIC X(768).
;