用户管理

新建组

创建组的基本语法如下:

AG mygroupname SUPGROUP(supergroupname) OWNER(ownername)

其中AG是命令ADDGROUP的缩写,SUPGROUP指定所建组的上级组,OWNER指定组的所有者。
脚本:

//ADDGROUP JOB ACCT#,IBMUSER,                            
//       CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//ADDGRP1 EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K     
//SYSLBC     DD DSN=SYS1.BRODCAST,DISP=SHR              
//SYSTSPRT   DD SYSOUT=*                                
//SYSTSIN    DD *                        
   AG USRGRP SUPGROUP(SYS1) OWNER(SYS1)                 
   AG TSTGRP SUPGROUP(USRGRP) OWNER(USRGRP)           
/*

ISPF Command Shell中执行LISTGRP groupname可以查看组信息。

增加LOGON过程

  1. 将ADCD.Z110.PROCLIB中的ISPFPROC拷贝到USER.PROCLIB中
  2. 命名为IKJ#TST,并将其中的行 PARM= '%ISPFCL'改为 PARM= '%ISPF#TST'
    • %通常表示是一个CLIST程序;系统搜索CLIST库定义。关于CLIST库的定义和顺序,参见REXX和CLIST的定义
  3. 将ADCD.Z110.CLIST里现有的ISPFCL拷贝到USER.LIST,命名为ISPF#TST

对组授权

对组授权的基本语法如下:

RDEF classnamelogonprocname UACC(access-authority)

其中RDEF是RDEFINE的缩写,以上命令在资源类classname中定义名字为logonprocname的PROFILE,通用权限由access-authority决定。

PE JCL CLASS(classname) ID(groupname) ACCESS(access-list)

其中PE是PERMIT的缩写,当access-list为READ时,以上命令使得资源类名为classname,组名为groupname里的用户有权限运行JCL命令。

PE OPER CLASS(classname) ID(groupname) ACCESS(access-list)

当access-list为ALTER时,以上命令使得资源类名为classname,组名为groupname里的用户有权限运行TSO命令,如/D A,L 等。

PE accountnumber CLASS(classname) ID(groupname) ACCESS(access-list)

当access-list为READ时,以上命令使得资源类名为classname,组名为groupname里的用户有权限使用名为accountnumber的Account Number。

PE logonprocname CLASS(classname) ID(groupname) ACCESS(access-list)

当access-list为READ时,以上命令使得资源类名为classname,组名为groupname里的用户有权限使用名为logonprocname的LOGON过程。
脚本

//AUTHGRP JOB ACCT#,IBMUSER,
//       CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//AUTHGRP EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K
//SYSTSPRT  DD SYSOUT=A
//SYSTSIN     DD *
    RDEF TSOPROCIKJ#TST      UACC(NONE)
    PE  JCL     CLASS(TSOAUTH)  ID(TSTGRP) ACCESS(READ)
    PE  OPER    CLASS(TSOAUTH)  ID(TSTGRP) ACCESS(ALTER)
    PE  ACCT#   CLASS(ACCTNUM)  ID(TSTGRP) ACCESS(READ)
    PE  IKJ#TST CLASS(TSOPROC)  ID(TSTGRP) ACCESS(READ)
//

刷新RACF使授权生效的语法如下:

SETROPTS GLOBAL(classname) REFRESH
SETROPTS GENERIC(classname) REFRESH
SETROPTS RACLIST(classname) REFRESH

脚本:

//REFRACF JOB ACCT#,IBMUSER,                             
//       CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//RACFREF EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K     
//SYSTSPRT  DD SYSOUT=*                                  
//SYSTSIN     DD *                                       
    SETROPTS GLOBAL(TSOPROC) REFRESH                     
    SETROPTS GENERIC(TSOPROC) REFRESH                    
    SETROPTS RACLIST(TSOPROC) REFRESH                    
//

建立别名与用户

定义别名的基本语法如下:

DEF ALIAS (NAME(aliasname) RELATE(vsamcatlog))

其中NAME指定别名名称, vsamcatlog应当事先定义,RELATE指定别名所存放的USER CATALOG。

vsamcatlog的定义方式 使用Data Set Utility的VSAM Utilities(如下图)

vsamcatlog

然后在Process Request中选择1. Define,Data Type选择8. User Catalog。在之后的参数页面选择输入合适的参数,注意 Volume。

脚本

//DEFALIS JOB ACCT#,IBMUSER,                             
//       CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//DEFALIA EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K     
//SYSTSPRT  DD SYSOUT=*                                  
//SYSTSIN     DD *                                       
 DEF ALIAS (NAME('TST00') RELATE('USERCAT.TSOUSER'))   
//

建立TSO用户的基本语法如下:

AU username PASSWORD(passwordname) 
TSO(classname(accountnumber) PROC(logonprocname) SIZE(size))  OWNER(ownername) DFLTGRP(groupname)

其中username为用户名,PASSWORD指定用户密码,classname 指定资源类名,accountnumber指定用户的Account Number名, PROC指定用户的登录过程名,SIZE指定Account Number的大小,OWNER指定用户的所有者名,DFLTGRP指定用户缺省的组名。 在组TSTGRP中建立和别名同名的用户TST001,初始密码为1234

//CRTUSER JOB ACCT#,IBMUSER,                             
//       CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//CRTUSR  EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K     
//SYSTSPRT  DD SYSOUT=A                                  
//SYSTSIN     DD *                                       
    AU TST001   PASSWORD(1234) +                         
    TSO(ACCTNUM(ACCT#)  +                                
    PROC(IKJ#TST)  SIZE(4096)) +                         
    OWNER(TSTGRP) DFLTGRP(TSTGRP)                        
//

ISPF Command Shell中执行LISTUSER username可以查看组信息。

建立用户后,可以使用该用户登录后检查其提交JCL和运行TSO命令的权限

修改用户密码

可以用有权限的用户修改(其他)用户的密码,TSO中执行命令:(以修改ADCDMST为例):

TSO ALU ADCDMST PASSWORD (ADCDMST) RESUME

ADCDMST登陆的时候可能需要重新设置密码
脚本

//RESPASS JOB ACCT#,IBMUSER,                             
//       CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//CRTUSR  EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K     
//SYSTSPRT  DD SYSOUT=A                                  
//SYSTSIN     DD *                                       
    ALU TST001 PASSWORD (TST001) RESUME                  
//

保护数据集

用ADDSD命令建立数据集PROFILE实现对数据集的保护。 建立数据集PROFILE的基本语法如下:

ADDSD 'username.**' OWNER(ownername) UACC(access-authority)
AUDIT(ALL/SUCCESS/FAIURES(audit-access-level)) GEN

其中username.**指定要保护的是以username开头的用户数据集, **表示不管这个数据集的名字有几段,只要以username开头,都在保护的范围; OWNER指定数据集PROFILE的所有者,UACC指定访问数据集的通用权限,由access-authority 指定, AUDIT 指定以audit-access-level指定的方式对数据集的访问成功和失败/成功/失败时作审计,GEN 是GENERIC的缩写。

PE '*.**' ACCESS(access-list) ID(groupname) GEN

其中*.**代表要保护的系统数据集,ACCESS指定系统数据集的访问列表, ID指定访问这些系统数据集的组或用户,GEN是GENERIC的缩写。 授权脚本 (TST002 需要先建立)

//PRTDTSR JOB ACCT#,IBMUSER,                              
//       CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID 
//PRTDTS  EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K      
//SYSTSPRT  DD SYSOUT=A                                   
//SYSTSIN     DD *                                        
    ADDSD 'TST001.DEV.*' OWNER(TSTGRP) UACC(NONE)   -     
    AUDIT(SUCCESS(UPDATE)) GEN                            
    PE 'TST001.DEV.*' ACCESS(READ) ID(TST002) GEN         
//*
//PRTSYSDS JOB ACCT#,IBMUSER,
//       CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//PRTDTS  EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K
//SYSTSPRT  DD SYSOUT=A
//SYSTSIN     DD *
    ADDSD 'SYS1.**' OWNER(TSTGRP) UACC(READ)   -
    AUDIT(SUCCESS(UPDATE)) GEN
    PE 'SYS1.**' ACCESS(READ) ID(TSTGRP) GEN
//*

报错IKJ56702I INVALID DATASET NAME, 'SYS1.**' 原因如下:
下表

shows the availability of generic characters. 
The use of the generic character % is not changed by the EGN setting.
Depending on whether or not EGN is active, the ending * has different meanings.
These are explained in more detail later in this section.
EGN status Ending .** Allowed Middle .**. Allowed Beginning * Allowed Middle * Allowed Ending * Allowed
EGN on Yes Yes No Yes Yes
EGN off No No No Yes Yes

打开/关闭EGN的方式:

  • RACF =>5 SYSTEM OPTIONS=>5 OTHER OPTIONS=> ENHANCED GENERIC NAMING
  • 然后根据提示选择参数后提交执行。

删除

  • 删除对数据集的保护
    DELDSD 'TST001.**'
    
  • 删除用户
    DELUSER TST001
    
  • 删除别名
    DEL TST001 ALIAS
    
  • 删除组
    DELGROUP TSTGRP
    
  • 删除LOGON过程
    • 删除对应的数据集

results matching ""

    No results matching ""