再上一篇:4.4 关于JES3
上一篇:第六章 RACF概述
主页
下一篇:6.3 数据集的保护
再下一篇:6.4 通用资源引论
文章列表

6.2 用户和组的管理

IBM S390 系统管理基础(zSeries,IBMSystemz, z/VM,zOS等操作系统使用,命令的参数与用法等)

6.2.1用户和组的定义
定义用户和组可以使用多种方式,其中包括RACF菜单、命令以及JCL作业。PROFILE 的拥有者可以是用户或组,建议属于组。
1.组的定义
RACF 中组的结构类似于一个单位中的树状组织管理的结构。也就是说,每一个组 中可以有多个成员,组中的成员可以是用户,也可以是组。一个组中可以有多个用户, 当一个用户成为一个组中的成员时,我们称该用户连接到了这个组中。一个用户也可以 同时连接到多个组中。SYS1组是系统安装后权限级别最高的组,因此它没有前趋组或拥 有者。一个组中最多可以有5900个用户。一个组中的用户实际上代表了工作性质类似的 一组用户,比如一个单位中的一个部门或小组。在RACF中每一个组,除了SYS1以外, 均有一个前趋组(父组)和拥有者和若干个子组。
定义一个组的用户必须具有以下权限之一: (1)具有SPECIAL属性。
(2)具有GROUP SPECIAL属性,并且要定义的组的前趋组在你的管理范围之内。 (3)用户是要定义的组的前趋组的拥有者。
(4)具有要定义的组的前趋组的JOIN授权。
当你定义一个组时,你实际上在RACF数据库中创建了一个组PROFILE。如图6.2所 示,是组PROFILE的格式:
GROUP NAME OWNER SUPGROUP DATA TERMUAC C

图6.2 组PROFILE的格式
MODEL DFP OMVS
由图中可以看出,组 PROFILE 由 RACF 段、DFP 段和 OMVS 段及其他段组成。每个段 又由若干个FIELD组成。你可以使用LISTGRP命令列出组中各段的属性。
RACF段包含了RACF所需要的最基本的信息,它由以下FIELD组成:
*GROUP-NAME:组的名字。
*OWNER:组的拥有者。组的拥有者可以是组的前趋组也可以是一个用户。默认为定 义这个组的用户。拥有者最好是一个组而不是一个用户,因为如果是一个用户,当这个
用户被删除后,或者离开了工作岗位,原拥有者的拥有者成为这个组的拥有者,可能会 出现安全上的漏洞。
*SUPGROUP:组的前趋组。
*TERMUACC或NOTERMUACC:指示对终端的访问控制是否可以基于终端PROFILE的UACC
*MODEL:创建新组时使用的模版PROFILE。
*DATA:有关组的描述信息。
组PROFILE的DFP段含有对SMS管理的数据集默认的管理属性和DASD存储器特性。 要定义或改变组PROFILE中的DFP段,用户必须具有SPECIAL属性。它有以下FIELD组
成:
*DATAAPPL:用户DFP数据应用标识。
*DATACLAS:分配性数据集时使用的默认的DATA CLASS.
*MGMTCLAS:数据集分配后默认的MANAGEMENT CLASS.
*STORCLAS:组默认的STORAGE CLASS.
OMVS 段由 GID FIELD 组成,指示该组在 OE 环境下的组标号。它是一个整数。尽管 不同的组可以分配相同的 GID,但不建议这样。不同的组应该有不同的 GID。因为在 OE
中,相同的 GID 被认为是同一个组,这样会引起安全上的漏洞。要改变用户的 PROFILE 中的OMVS段的内容,用户应具有SPECIAL属性,并授权访问FIELD类中的GROUP.OMVS.*
PROFILE或GROUP.OMVS.GID 两个PROFILE之一。
组的名字是1-8个字符组成的字母(包括#、$、@)数字串,并且不得以数字开头。组 不能与组或用户重名。
使用组后,管理员可以把对资源的控制以组为单位来进行,即把组名放在该资源
PROFILE 的访问列表中即可。因此资源 PROFILE 的访问列表变得简短而易于维护。比如 你如果希望多个用户可以访问某一资源时,若不使用组,你必须在这个资源PROFILE的
访问列表中加入有关这几个用户的权限说明。使用组后,你可以创建一个组,在资源
PROFILE的访问列表中加入有关这组的权限说明,然后将这些用户连接到这个组中即可。 在用ADDGROUP创建一个组或用ALTGROUP改变一个组时,你可指定组PROFILE的拥
有者。如果不指定拥有者,则创建者成为拥有者。组的拥有者(或连接到该组的具有
GROUP-SPECIAL属性的用户)具有以下权限: (1)定义新用户(当然应在USER CLASS中具有CLAUTH属性)
(2)把用户从组中删除或连接的组中。
(3)改变组的属性,放权其他用户管理该组。 (4)改变、显示、删除组的PROFILE。
(5)定义、删除、显示该组的子组。
可以使一个 RACF 组作为一个用户、组、数据集或通用资源 PROFILE 的拥有者。任 何一个用户如果以GROUPSPECIAL的属性连接到一个组中,则他具有该组拥有者的权限。
组中的每个用户都有特定的授权级别,也就是说,每一个用户在连接到一个组中时,
必须以一定的授权级别连接进来,这些授权级别是:
USE: 用户可以在组的权限内访问资源。这是用户连接到一个组中的最低授权级别 也是默认的授权级别,也就是说用户可以访问该组用户被授权访问的资源。
CREATE:用户可以创建新的属于组的数据集并且控制这些数据集的访问权限。 CONNECT:用户可以把其他用户连接到组中,并具有USE、CREATE及CONNECT授权。
JOIN:用户可以创建新的组和用户,新创建的组成为该组的子组。当然,要创建新
用户,具有JOIN授权的用户还需要在USER CLASS具有CLAUTH属性。 显然,这四个授权级别以USE、CREATE、CONNECT、JOIN为顺序,其中JOIN级别最
高,USE级别最低。一般来讲,高级别的授权包含了低级别授权的权限。
定义一个组的命令格式如下:
ADDGROUP/AG (组名) DATA(‘注释’) [DFP([DATAAPPL(应用名)] [DATACLA(DATA CLASS名)] [MGMTCLAS(MANAGEMENT CLASS 名)][STORCLAS(STORE CLASS名)] [MODEL(模 版名 )])] [OMVS([GID( 组标识 )])] [OWER( 用户或组名 )] [SUPGROUP( 组名 )]
[TERMUACC/NOTERMUACC] 其中,命令格式中出现的各段的内容大部分我们在前面已讲过,在此不再另行说明。
在此我们只讨论以前我们没有说明的内容。
注释是说明性的东西,对安全管理没有太大的作用,仅仅说明该用户的一些额外信
息。
MODEL(模版名):指示创建此 PROFILE 时,从指定的模版 PROFILE 复制信息到此
PROFILE。
TERMUACC/NOTERMUACC: 一个组如果具有 NOTERMUACC 属性,则这个组的成员只能 从 RACF 保护的并且用户授权登录的终端上登录,而不能基于终端的 UACC。如果具有
TERMUACC属性,则无此限制。 定义一个组的步骤:
步骤 1:确定组的前趋组、组名、拥有者,如果系统中用 RACF 保护终端并且组中
的用户限制使用特定的终端,创建组时应指定NOTERMUACC。如果安装了DFSMS,则在组 的DFP段中指定特定的初始值。
步骤2:创建组PROFILE。例如:创建一个组,组名是DEPTA,组的拥有者是ALLDEPT,
该组是ALLDEPT的一个成员,可以使用如下命令: ADDGROUP DEPTA OWNER(ALLDEPT) SUPGROUP(ALLDEPT)
步骤 3:连接合适的用户到组中。多数用户只需具有 USE 授权即可,根据实际安全
管理的要求,少数几个用户可具有高于 USE 的授权。例如:将 STEVEN、LIZS 和 GENEK 三个用户连接到组的 DEPTA 中,其中 STEVEN 和 LIZS 连接的属性是 CONNECT,也就是说
这两个用户可以将其它用户连接到 DEPTA 中;用户 GENEK 的连接属性是 USE,所以仅仅
是一般用户。
CONNECT (STEVEH LIZS) GROUP(DEPTA) OWNER(DEPTA) AUTHORITY(CONNECT) CONNECT GENEK GROUP(DEPTA) OWNER(DEPTA)
步骤4:如果组要拥有数据集,则创建一个通用的数据集PROFILE。例如:定义一个 HLQ是DEPTA的PROFILE,其UACC是NONE,以保护该组所拥有的数据集。
ADDSD 'DEPTA.**' UACC(NONE)
步骤5:如果组需要访问RACF保护的资源,则授权给该组。例如:允许该组成员对 RACF.PROTECT.DATA PROFILE所保护的资源有读的权限,则发布如下命令:
PERMIT 'RACF.PROTECT.DATA' ID(DEPTA) ACCESS(READ)
步骤6:如果组需要访问OE的资源,则改变组的PROFILE,并赋予一个GID。例如, 使DEPTA组的成员登录到OE时,使用的GID是100,使用如下命令:
ALTGROUP DEPTA OMVS(GID(100))
删除一个组时,这个组首先必须要存在,并且没有子组,不再拥有组或用户,没有 任何用户连接在其中。其命令格式:
DELGROUP/DG (组名)
删除一个组的步骤:
步骤1:移去组中的所有用户(REMOVE命令)。
步骤2:找出所有与该组有关的数据集,一般来讲也就是HLQ是该组组名的数据集, 把它们删除或改名。
步骤3:把要删除的组的子组,其前趋组改为已存在的组。
步骤4:如果组还拥有其他PROFILE,改变拥有者为其他组或用户。 步骤5:在所有访问列表中删除该组。
步骤6:用DELGROUP命令删除组的PROFILE。 改变一个组的属性所需要的权限与创建组命令一样,其命令格式如下:
ALTGROUP/ALG (组名) DATA(‘注释’) [DFP([DATAAPPL(应用名)] [DATACLA(DATA
CLASS名)] [MGMTCLAS(MANAGEMENT CLASS 名)][STORCLAS(STORE CLASS名)] [MODEL(模
版名 )])] [OMVS([GID( 组标识 )])] [OWER( 用户或组名 )] [SUPGROUP( 组名 )] [TERMUACC/NOTERMUACC]
LISTGRP命令用于显示出组PROFILE的详细内容。包括组的前趋组、拥有者、终端 特性、所有子组、注释信息、模版 PROFILE 名、连接到该组中的用户信息(用户 ID、用
户在组中的授权、用户已该组作为当前连接的组进入系统的次数、用户的连接属性、挂
起或RESUME的日期)以及DFP、OMVS段的信息。要使用该命令,用户应具有以下权限之 一:
(1)具有SPECIAL或AUDITOR属性
(2)在要显示的组中具有GROUP SPECIAL或GROUP AUDITOR属性。 (3)是组的拥有者。
(4)在组中具有JOIN或CONNECT权限。
其命令格式是:
LISTGRP/LG [(组名)/*] [DFP] [NORACF] [OMVS] 以下是用LISTGRP命令列出某系统中SYS1组的内容:
INFORMATION FOR GROUP SYS1
SUPERIOR GROUP=NONE OWNER=IBMUSER NO INSTALLATION DATA
NO MODEL DATA SET TERMUACC
SUBGROUP(S)= SYSCTLG VSAMDSET ADMIN APK OSASF TTY
OMVSGRP DCEGRP IMWEB EXTERNAL EMPLOYEE SPECIAL SYSDATA NOTES CMNGRP
USER(S)= ACCESS= ACCESS COUNT= UNIVERSAL ACCESS=
IBMUSER JOIN 006635 READ CONNECT ATTRIBUTES=NONE
REVOKE DATE=NONE RESUME DATE=NONE
CICSUSER USE 000052 NONE CONNECT ATTRIBUTES=NONE
REVOKE DATE=NONE RESUME DATE=NONE
SYSADM USE 000086 NONE CONNECT ATTRIBUTES=NONE
REVOKE DATE=NONE RESUME DATE=NONE
SYSOPR USE 000000 NONE
CONNECT ATTRIBUTES=NONE
REVOKE DATE=NONE RESUME DATE=NONE USERA USE 000310 NONE
CONNECT ATTRIBUTES=NONE
REVOKE DATE=NONE RESUME DATE=NONE
NO DFP INFORMATION OMVS INFORMATION
---------------- GID= 0000000000
从以上列表中可以看出,系统中SYS1组没有前趋组,拥有者是IBMUSER,OE中的组
ID是0,没有注释信息和模版数据集,具有TERMUACC属性。组中有15个子组,它们是 SYSCTLG、VSAMDSET ADMIN、APK、OSASF、TTY、OMVSGRP、DCEGRP、IMWEB、EXTERNAL、
EMPLOYEE、SPECIAL、SYSDATA、NOTES和CMNGRP,有5个用户,他们是IBMUSER、CICSUSER、
SYSADM、SYSOPR、USERA。
2.用户的定义
定义一个用户就是在 RACF 数据库中创建一个用户 PROFILE。用户 PROFILE 由 RACF 段及DFP、TSO、CICS、LANGUAGE、OPERPARM、WORKATTR、OMVS和NETVIEW段组成。用户 PROFILE的每一个段都由若干个FIELD组成。定义(用ADDUSER命令)或改变(用ALTUSER 命令)用户的PROFILE时,可以指定PROFILE中各段的FIELD参数。使用LISTUSER命令 可以显示出用户PROFILE及其各段的信息。
RACF段由以下FIELD组成:
USERID:用户ID。用户ID可以是1-8个符号(包括字母、数字及#、$、@),但必须 以字母打头。用户ID也不得与组或其他用户重名。
NAME:用户真正的名字。
OWNER:PROFILE的拥有者。它可以是一个用户或一个组,默认为创建这个用户的用 户。建议拥有者是一个组而不是一个用户,因为如果是一个用户,当这个用户被删除后,
可能会带来安全上的漏洞。 DFLTFRP:用户默认的组。
AUTHORITY:用户在默认的组中的授权。
PASSWORD:口令,用户的口令在PROFILE中是以加密的形式存放的,任何人都不能 够以任何方式读取,包括系统的安全管理员。如果用户忘记了自己的口令,只能由授权
的用户重新赋予一个新口令,用户再次登录时,必须强制修改自己的口令。为了安全起
见,在任何情况下修改口令时,新口令必须输入两次,而且两次输入的新口令必须一致。 REVOKE:用户被挂起的日期,所谓被挂起,指用户暂时不能登录。当时间到达此日
期时,用户自动被挂起。当然,如果一个用户多次登录(具体多少次可在 RACF 中设置)
而未成功,系统也会自动挂起此用户。一旦被挂起,只有请求有权限的用户将其RESUME,
才能再次登录。这样防止其他用户猜测用户的口令。
RESUME:用户被 resume 的日期。当用户被挂起后,可以将用户 RESUME,这样用户 就可以再次登录。
UACC:用户定义的资源的通用访问权限。 WHEN:用户在一个星期中的那一天及几点钟可访问系统。
ADDCATEGORY:该用户是否可以指定安全类别。
SECLEVEL:用户的安全级别。有关安全类别和安全级别的描述,请读者参见本章第 四节通用资源引论的有关描述。
CLAUTH:用户可定义的PROFILE的类。如果一个用户在某一类中具有该权限,则用
户可以定义该类中的PROFILE。例如你如果指定CLAUTH为USER,则你可以定义用户。如 果指定CLAUTH为TERMINAL,则你可以定义终端。这个属性可以分派给具有GROUPSPECIAL
属性的用户,使他可以定义特定类的PROFILE。
一个用户如果具有定义某一类PROFILE的授权,并不意味着该用户可以随便保护该 类资源,它所保护的资源必须在其管理范围之内。例如一个用户尽管具有USER授权,如
果它要有权在组中定义PROFILE,则它还必须以SPECIAL或JOIN属性被连接到组中。
SPECIAL:用户具有系统范围的SPECIAL属性,具有这样的属性的用户可以发布所有 的RACF命令,可对RACF数据库中的PROFILE进行完全控制。你可以在组一级上分配这
一属性(用 CONNECT 命令),这称之为 GROUP SPECIAL。具有 GROUP SPECIAL 属性的用户
如果又同时具有了USER类的授权,则对其组以下范围的用户和组具有完全的控制。但对 其范围外的用户和组并无管理权限。
AUDITOR:用户具有系统范围的AUDITOR属性,具有这样的属性的用户可以发布诸如
LISTDSD、LISTUSER、LISTGRP及LISTGRP命令列出指定的PROFILE内容。也可指定RACF 要记录的安全日志。这些安全日志记录在SMF数据集中。也可设置GROUPAUDIT属性(用
CONNECT命令),其审计范围同GROUP SPEACIAL类似。
OPERATIONS:用户具有系统范围的OPERATIONS属性,具有这样的属性的用户对诸如 数据集等资源具有完全的访问权限,也可设置GROUPOPERITION属性(用CONNECT命令)。
DATA:有关用户的注释信息。
ADSP:指示用户定义的所有永久数据集是否均要用分离的PROFILE保护。 GRPACC:指示组内其他成员是否可以访问用户用数据集PROFILE保护的组数据集。
MODEL:用户创建数据集时使用的数据集模版PROFILE名
OIDCARD:用户在登录时必须提供一个操作员ID卡。现在已不再使用这个属性。 SECLABEL:用户默认的安全标记。有关SECLABEL的内容,请读者参见本章第四节通
用资源引论的有关描述。
DFP段由以下FIELD组成: DATAAPPL:用户DFP数据应用标识。
DATACLAS、MGMTCLAS、STORCLAS:用户创建数据集时使用的默认的CONSTRUCT。
TSO段由以下FIELD组成: ACCTNUM:用户默认的记账账号。
JOBCLASS:用户JOB CLASS的默认值。
MSGCLASS:用户MESSAGE CLASS的默认值。
HOLDCLASS:用户HOLD CLASS的默认值。 SYSOUTCLASS:用户SYSOUT数据集的目标ID。 PROC:用户默认的登录过程。 MAXSIZE:用户最大的REGION大小。 SIZE:用户默认的REGION大小。 SECLABEL:安全标识。 UNIT:用户分配数据集时使用的默认的设备。 USERDATA:注释。
一个用户要想从TSO登录,则必须要定义该用户的TSO段。 OE段由以下FIELD组成:
HOME:用户登录后的工作目录。 PROGRAM:用户登录后的SHELL程序。
UID:用户的OE用户标识,是一个整数,如果是0,则是OE中的超级用户。与组类 似,尽管多个用户的UID可以一样,但不建议这样,因为在OE中,UID一样的用户被认
为是同一用户,这样会引起安全问题。
每一个用户都有一个 PROFILE,并且每一个 PROFILE 均有一个用户或组作为其拥有 者。拥有着(或一个连接到其拥有组并具有GROUPSPECIAL,或系统SPECIAL属性的用户),
可以改变、列及删除用户,并可控制用户的属性。
定义一个用户的命令的格式如下:
ADDUSER/AU ( 用 户 ID) [ADDCATEGORY()] [ADSP/NOADSP] [AUDIT/NOAUDIT] [AUTHRITY(授权)] [CLAUTH(类名)/NOCLAUTH] [DATA(注释)] [DFLTGRP(组名)]
[DFP(DATAAPPL(应用名)) [DATACLAS(DATACLASS 名)][MGMTCLAS(MANAGEMENT CLASS 名 )][STORCLAS(STORAGE CLASS 名 )]] [GRPACC/NOGRPACC] [MODEL( 数 据 集 名 )]
[NAME(‘用户名’)] [OMVS([HOME(工作目录名)] [PROGRAM(SHELL程序名)] [UID(用户标
识 )])] [OPERATIONS/NOOPERATIONS] [OWNER( 用 户 或 组 名 )] [PASSWORD( 口
令 )/NOPASSWORD] [SECLABEL( 安全标识 名 )] [SECLEVEL( 安全级别 名 )] [SPECIAL/NOSPECIAL] [UACC(访问权限)] [WHEN([DAYS(日期)][TIME(时间)])]
定义一个用户应具备以下权限之一: (1)具有SPECIAL属性。
(2)如果你是所定义的用户的默认的组的拥有者,或者你具备所定义的用户所在的
默认组的 JOIN 授权,或者所定义的用户的组在你的 GROUP SPECIAL 属性范围 之内,并且你的CLAUTH必须是USER。
显然,你不能定义一个权限比你高的或权限范围超出你的范围的用户。如果你要给
新用户OPERATIONS、SPECIAL或AUDITOR属性,或给用户分配安全类别,则你必须具有 SPECIAL属性。如果你要同时定义除RACF段以外其他段的内容,则你必须具有SPECIAL
属性,或对这些段具有至少UPDATE权限。
定义用户的步骤:
步骤1:确定用户ID、所在组、拥有者、口令、登录的时间限制、属性、安全标识、 及各个段的FIELD。
步骤2:创建用户PROFILE。
例如:定义一个用户STEVEH,它是DEPTA的成员,拥有者是DEPTA,用户真正的名 字是STEVE H.,指定初始登录时的口令是R316VQX,当然这个口令在用户第一次登录后 RACF会强制用户修改,使用TSO登录时使用的账号是123456,使用的登录进程是PROC01。
ADDUSER STEVEH DFLTGRP(DEPTA) OWNER(DEPTA) NAME('STEVE H.') PASSWORD(R316VQX) TSO(ACCTNUM(123456) PROC(PROC01))
步骤 3:创建用户数据集的 PROFILE。例如定义用户的数据集 PROFILE,其名字是
STEVEH.**,也就是说凡HLQ是STEVEH的数据集均受该PROFILE的保护,其UACC是NONE。 ADDSD 'STEVEH.**' UACC(NONE)
步骤4:如果用户打算创建自己的通用资源PROFILE,授权适当的类给CLAUTH属性。
步骤5:如果用户要访问RACF保护的资源,则可用以下两种方式中的任一种: (1)把用户连接到可以访问这一资源的组中。例:
CONNECT STEVEH GROUP(DEPTA) OWNER(DEPTA)
(2)指定用户可以使用这一资源。例如,要给用户 STEVEH 使用 TSO 登录过程 CUSTPROC的权限,可以发布以下命令:
PERMIT CUSTPROC CLASS(TSOPROC) ID(STEVEH) ACCESS(READ)
删除一个用户可用命令DELUSER,其格式为: DELUSER/DU (用户ID)
要删除一个用户,你必须具有以下权限之一:
(1)具有SPECIAL属性
(2)如果你具有GROUP SPECIAL,则要删除的用户必须在你管辖范围内。 (3)你是用户PROFILE的拥有者。
注意:要删除一个用户,在其默认的组中具有JOIN权限的用户其权限是不够的。还 需要具有USER类的授权。
可以用一条命令删除多个用户,只需把多个用户的用户ID用括号扩起来即可。当然,
用户必须首先存在,并且用户不再拥有在RACF中的定义的数据集。 删除一个用户的步骤:
步骤1:挂起这个用户。
ALTUSER 用户ID REVOKE
步骤2:如果用户已登录在系统中,或有作业在运行,请求系统操作员将其删除。 步骤 3:找出所有与该用户有关的数据集,如果数据集是该用户的,将其删除或改
变拥有者,当然如果数据集的PROFILE是分离的,则应当将其PROFILE也一并删除;如 果用户在数据集的访问列表中,则将用户ID从访问列表中删除。
步骤4:删除这个用户。
DELUSER SIVLE 改变用户的属性:
改变用户的属性可用ALTUSER/ALU命令,其语法格式与创建用户一样。当改变一个
用户时,这个用户正好在系统中,则其改变的属性(除OWNER和AUTHORITY外),并不起 作用,只有用户LOGOFF后,再次登录进来,才会起作用,尽管你用LISTUSER命令显示
出的属性已改变。
改变一个用户属性所需的授权根据你要改变的属性而定:
如果具有SPECIAL属性,你可以改变任何属性。
如果用户在你的 GROUP SPECIAL 管辖范围内,你可以改变除 SPECIAL、AUDITOR 及 OPERATION之外的任何属性。
如果你是用户的拥有者,你可以改变用户的如下属性:MODEL/NOMODEL、 PASSWORD/NOPASSWORD、DATA/NODATA、NAME、DFLGRP、GRPACC/NOGRPACC、OWNER、
RESUME/REVOKE、WHEN。
每个用户都可改变他自己真正的名字、默认的组及 MODEL 文件(NAME、DFLGRP、 MODEL)。
要分配或删除一个用户的安全类别,你必须具有SPECIAL属性,或安全类别在你的
PROFILE中。
要分配或删除一个用户的安全级别,你必须具有SPECIAL属性,或者你的安全级别 比你要改变的用户的安全级别高。改变用户的安全标识也是这样。
改变一个用户的口令可用PASSWORD命令,其语法格式为:
PASSWORD/PW [INTERVAL(口令间隔时间)/NOINTERVAL] PASSWORD(当前口令 新口 令)] [USER(用户ID)]
命令中口令间隔时间指用户在多少天内必须改变自己的口令。使用 PASSWORD 参数 可以改变自己的口令,当然你必须知道自己的旧口令。如果使用了PASSWORD参数,就不
能使用 USER 参数。USER 参数用于授权的用户 RESET 其他用户的口令。所谓 RESET 用户
的口令,指把一个用户的口令改为默认的口令。默认的口令是用户默认的组的组名。如 果同时指定了这两个参数,PASSWORD参数会被忽略。
如果你是一个普通用户,你在第一次登录或你的口令被RESET之后第一次登录,或
者你的口令间隔时间已到,你必须改变口令。所谓RESET口令值把口令改为默认的值(即 用户默认组的组名)。用户可以RESET自己的口令。如果要改变其他用户的口令或口令间
隔时间,则必须具有SPECIAL属性,或GROUP SPECIAL属性并且用户在你的管辖范围之
内,或者是用户的拥有者。
显示用户的信息可用LISTUSER命令。在RACF段中可显示出用户ID、PROFILE的拥 有者、用户被定义的时间、默认的组、上次口令改变时间、口令的时间间隔、用户的属
性、上次登录的时间、授权定义PROFILE的类、注释、默认的数据集模版PROFILE名、 REVOKE 或 RESUME 的日期、安全标识、安全级别及安全类别、连接到的组的组名、在所
连接的组中的授权、谁把用户连接到组中、连接的日期、在所连接的组中登录的次数、
上次以该组身份登录的日期、默认的通用访问权限、连接属性等信息。如果指定其他段, 还可显示出其他段的详细信息。
LISTUSER命令的语法格式如下:
LISTUSER/LU [(用户ID)/*] [CICS] [DCE] [DFP] [LANGUAGE] [NETVIEW] [NORACF] [OMVS] [OPERPARM] [OVM] [TSO] [WORKATTR]
其中的参数大多指定所要显示的段。但NORACF表示不显示RACF段的内容。
要使用该命令列出用户 PROFILE 中的RACF 段的内容,你必须是该PROFILE 的拥有 者,或具备SPECIAL或AUDITOR权限,或具备GROUP SPECIAL或GROUP AUDITOR权限并
且在你的权限范围内。如果你的系统中使用了安全类别,那么你的安全级别必须大于等
于用户的安全级别,并且你的安全类别必须包含了用户的安全类别。
以下是一个用LISTUSER命令列出系统中用户WANGX的内容:
USER=WANGX NAME=WANG XIAOSHAN OWNER=SYS1 CREATED=98.077
DEFAULT-GROUP=SYS1 PASSDATE=99.349 PASS-INTERVAL= 30
ATTRIBUTES=SPECIAL OPERATIONS ATTRIBUTES=AUDITOR
REVOKE DATE=NONE RESUME DATE=NONE
LAST-ACCESS=99.358/16:35:30
CLASS AUTHORIZATIONS=NONE NO-INSTALLATION-DATA
NO-MODEL-NAME
LOGON ALLOWED (DAYS) (TIME)
--------------------------------------------- ANYDAY ANYTIME
GROUP=SYS1 AUTH=USE CONNECT-OWNER=SYS1 CONNECT-DATE=98.077
CONNECTS= 2,994 UACC=NONE LAST-CONNECT=99.358/16:35:30
CONNECT ATTRIBUTES=NONE
REVOKE DATE=NONE RESUME DATE=NONE
GROUP=USER AUTH=USE CONNECT-OWNER=WANGX CONNECT-DATE=98.292
CONNECTS= 00 UACC=ALTER LAST-CONNECT=UNKNOWN CONNECT ATTRIBUTES=NONE
SECURITY-LEVEL=NONE SPECIFIED
CATEGORY-AUTHORIZATION NONE SPECIFIED
SECURITY-LABEL=NONE SPECIFIED
TSO INFORMATION
--------------- ACCTNUM= ACCT# PROC= IKJACCNT
SIZE= 00004096
MAXSIZE= 00000000
UNIT= SYSDA USERDATA= 0000
COMMAND=
NO DFP INFORMATION NO CICS INFORMATION
NO LANGUAGE INFORMATION
NO OPERPARM INFORMATION
OMVS INFORMATION
---------------- UID= 0000000000
HOME= /
PROGRAM= /bin/sh
从上述命令的输出结果可以看出,用户名为WANGX,真实姓名WANG XIAOSHANG,拥 有者SYS1,默认的组SYS1,口令每隔30天必须修改一次,属性有SPECIAL、OPERATION 和AUDITOR,连接到SYS1、USER组中,可以在任何时间登录,无安全标识和安全级别,
无DFD和CICS段。在OE的UID为0,工作目录为/,SH为/bin/sh,这意味着该用户在
OE中是超级用户。此外还记录了用户的创建时间、上次登录时间和口令的修改时间。
6.2.2连接一个用户到一个组 连接一个用户到一个组就是把一个用户以一定的权限加入到一个组中,可用命令:
CONNECT/CO ( 用 户 ID) [GROUP( 组 名 )] [OWNER( 用 户 ID 或 组 名 )]
[AUTHORITY(USE , CREATE , CONNECT , JOIN)] [SPECIAL/NOSPECIAL] [OPERATION/NOOPERATIONS] [AUDITOR/NOAUDITOR] [REVOKE(日期)] [UACC(访问权限)]
例如:把用户TOM连接到DIVACUSR组中,使其成为DIVACUSR组中的一个成员,连
接的属性为USE。
CO TOM GROUP(DIVACUSR) 把一个用户从某个组中去除可用命令:
REMOVE/RE (用户ID) GROUP(组名) [OWNER(用户ID或组名)] 把一个用户从一个组中去除并不意味着该用户被彻底从系统中删除,它仅仅使该用
户不是指定的组的成员。
例如,将用户TOM从DIVACUSR组中去除: RE TOM GROUP(DIVACUSR)
一个用户不能从其默认的组中去除。当一个用户被连接到一个组中时,正好这个用
户已登录在系统中,则这个用户必须LOGOFF,然后再LOGON,他才能具有基于这个组的 权限。同样,如果一个用户从一个组中被去除时,正好这个用户已在系统中,则这个用
户必须LOGOFF,然后再LOGON,他才能丧失基于这个组的权限。
6.2.3分散式的用户及组管理 集中式的用户和组管理是指系统中所有用户和组都由一个管理员管理,即这个管理
员具有系统范围的SPECIAL属性。分散式的管理则允许系统安全管理员放权给其他用户, 让他们负责一部分安全管理。
一般来讲,应首先考虑使用集中式管理。如果一定要实行分散式管理,则可以在特
定的范围内给某个用户GROUPSPECIAL属性,并改变用户的CLAUTH属性,使其具有定义 某类PROFILE的权限。当然,这种放权一定要谨慎,具有GROUP SPECIAL的用户一定要 可靠。或者如果你只需要仅对一个组有特定的权限,你可给他JOIN授权并使其具有定义 某类PROFILE的权限。
GROUP SPECIAL和JOIN属性在用户连接到特定的组中时指定实现。而CLAUTH属性 则需要在定义用户时指定。
同样,OPERATIONS和AUDITOR属性也可以以类似的方式来放权。

图6.3 放权管理的一个示例
图 6.3 是一个放权管理的实例。在此例中,FRED 以 GROUP SPECIAL 的属性连接到 DIVA组中, 则FRED可以管理拥有者是DIVA或其子组的所有组和用户。同样,MARY也 以GROUPSPECIAL的属性连接到DIVAUADM组中,FRED可以管理拥有者是DIVAUADM或其
子组的所有组和用户。LEADSA是系统的安全管理员,他当然仍然可以管理整个系统的所
有用户和组。但是如果我们把组 DIVAUADM 的拥有者改为 LEADSA,则 FRED 就不能管理 DIVAUADM组了,尽管DIVAUADM是DIVA的一个子组。因为DIVAUADM的拥有者不是DIVA
或其子组了。
具有GROUP SPECIAL属性的用户如果同时具有CLAUTH(指定的类名),则他可以保 护拥有者是其所连接的组或其子组的指定类的通用资源或数据集。
在图6.4中,ANN具有GROUP SPECIAL及CLAUTH(TCICSTRN)和CLAUTH(TIMS),
其中TCICSTRN是CICS交易类,TIMS是IMS交易类,ORST、CUAC、OENT是交易名,他们
都属于DIVAONLA,则ANN可以定义PROFILE保护这些交易。

图6.4 放权管理资源的一个示例
在图 6.5 中,SAM 以GROUP SPECIAL 连接到 CUST 组中,他可以保护属于 CUST 组的 数据集。

图6.5 放权管理数据集的一个示例
JOIN 和GROUP-SPECIAL 都可以实现管理的放权,一个用户如果以JOIN 属性连接到 一个组中,则这个用户管理的范围则仅仅是这个组;而一个用户如果以 GROUP-SPECIAL
属性连接到一个组中,则这个用户管理范围则是这个组,以及这个组的所有子孙组的成 员。