UDSEX1 - UDS Security Exit (z/OS Only)

UDSEX1 is a user-written routine called by the UDS utility program before any command entered by the terminal operator is executed. This module allows you to define security restrictions on the use of the various functions.

The UDS utility program is written as a set of logically related modules, each of which services a specific function. Each function requested by a terminal operator is logically processed by a separate module. In turn, each of these modules issues a call to UDSEX1 before servicing the requested function. Consequently, you can restrict, permit, or eliminate any or all of the UDS functions.

Because the UDSEX1 module is only loaded once per invocation of UDS, internal switches can be set and subsequently referenced. Each new invocation of UDS will load a new version of UDSEX1, causing the switches to be reset.

A dummy UDSEX1 module is distributed with the Com-plete system as a member of the distribution source library and the distribution load library.

Note:
No security exists for UDS functions unless established by you.

This document covers the following topics:


How to Use UDSEX1

Upon entry to UDSEX1, a set of parameters is received in the form of fullword addresses pointed to by register 1. Word 1 of the parameter list contains the address of the 4-byte operation initiating the request. Word 2 contains the address of the file upon which the function will be performed.

Word 3 contains the address of a parameter list that identifies the volume(s) on which the file being processed is located. This parameter list is normally 14 bytes long. If the file resides on more than one volume, however, the parameter list will have its last 12 bytes repeated once for each applicable volume. (The first two bytes of the list indicate the number of volume entries in the list.) If an allocation request is made, word 4 contains the address of the partially completed Job File Control Block (JFCB).

Define security for a specific function by testing for the existence of the appropriate function, establishing the desired level of authorization, and setting the return code in register 15 to indicate either acceptance or rejection.

The use of UDS is oriented toward files. Reference files are identified by fully qualified file names.

UDSEX1 Conventions

The following table summarizes the UDSEX1 linkage conventions.

Feature Convention
Attributes Reentrant, if in a resident area.
Type Thread.
Size Restricted to the UDS thread region.
Registers at Entry
Register 1 Address of the parameter list
Register 13 Address of an 18-fullword save area
Register 14 Return address in the calling module
Register 15 Entry address of UDSEX1
Registers at Return Registers 2 through 13 must be unchanged. Register 15 must contain a return code.
Parameters
Word 1 Address of a four-byte field containing the operation requested.
Word 2 Address of a 44-byte field containing the file name entered.
Word 3 Address of a field with the format:
0 VOLNUM Halfword indicating the number of 12-byte entries that follow (CODE, VOLUME, SEQ).
2 CODE Four-byte device code for the first volume. This code is the same as that in the UCBTYP field of the UCB.
6 VOLUME Six-byte volume name.
12 SEQ Two-byte sequence number. Note that the fields identified by offsets 2 through 12 may be repeated once per volume.
Word 4 Address of a partially completed JFCB, if the ALLOCATE function was requested; otherwise, binary zeros.
Return Codes
0 Allow the request.
4 Disallow the request.
Considerations
a Is loaded once per call of UDS.
b Will be loaded dynamically.