![[z/OS]](../images/ngzos.gif)
자원 액세스 제어 기능 도구
다음 도구와 기술은 WebSphere® Application
Server for z/OS®에 사용된 보안 정의를 관리하는 데 도움이 됩니다.
- 클래스의 모든 프로파일을 나열하기 위한 RACF® ISPF 패널
- UID 또는 사용자 ID 순으로 UID를 나열하기 위한 ISHELL
- GID 또는 그룹 ID 순으로 GID를 나열하기 위한 EXEC
- RACF 정의를 취소하기 위한 EXEC
RACF ISPF 패널
특정 클래스에 모든 프로파일을 열거하려면 RACF ISPF 패널을 사용하십시오. 다음 단계를
완료하려면 RACF SPECIAL
또는 AUDITOR 권한이 있어야 합니다.
- 일반 자원 프로파일(옵션 2)을 선택하십시오.
- 검색하십시오(옵션 S 또는 9).
- 클래스 이름을 입력하십시오.
- Enter를 두 번 더 누르십시오.
------------------------------------------------ RACF - SERVICES OPTION MENU OPTION ===> 2 SELECT ONE OF THE FOLLOWING: 1 DATA SET PROFILES 2 GENERAL RESOURCE PROFILES 3 GROUP PROFILES AND USER-TO-GROUP CONNECTIONS 4 USER PROFILES AND YOUR OWN PASSWORD 5 SYSTEM OPTIONS 6 REMOTE SHARING FACILITY 7 DIGITAL CERTIFICATES AND KEY RINGS 99 EXIT ------------------------------------------------ ----------------------------------------------------- RACF - GENERAL RESOURCE PROFILE SERVICES SELECT ONE OF THE FOLLOWING: 1 ADD Add a profile 2 CHANGE Change a profile 3 DELETE Delete a profile 4 ACCESS Maintain access list 5 AUDIT Monitor access attempts (Auditors only) D or 8 DISPLAY Display profile contents S or 9 SEARCH Search the RACF data base for profiles ----------------------------------------------------- ------------------------------------------ RACF - GENERAL RESOURCE SERVICES - SEARCH OPTION ===> ENTER THE FOLLOWING PROFILE INFORMATION: CLASS ===> STARTED PROFILE ===> ------------------------------------------ ----------------------------------- BROWSE - RACF COMMAND OUTPUT ---- COMMAND ===> T5ACR.* (G) T5DMN.* (G) T5SRVNDS.* (G) T5SRV1S.* (G) T5SRV2S.* (G) T5SRV3S.* (G) WMQX*.* (G) WSCWTRC.* -----------------------------------
RACF SEARCH 명령: SEARCH CLASS(class_name)를 사용하여 클래스의 모든 프로파일의 목록을 얻을 수 있습니다.
모든 사용자 ID를 UID 순서로 나열
RACF에서
OMVS 세그먼트로 새 사용자 ID를 정의할 때에는 고유 UID를 지정해야 합니다. WebSphere는 RACF AUTOUID 함수를 지원하지 않습니다. 지정되지 않은(및 중복)
UID를 찾으려면 ISPF ISHELL(옵션 3.4)을 사용하여 모든 사용자 ID의 목록을 UID 순서로
확보하십시오.
이를 수행하려면 슈퍼유저(UID=0)여야 하며 다음 단계를 따라야 합니다.
- 설정 풀다운 및 사용자 목록 옵션을 선택하십시오.
- 사용자 목록을 찾으십시오.
- 사용자 목록을 찾는 동안 파일 풀다운을 선택하십시오.
- UID 정렬 옵션을 선택하십시오. (UID -1은 사용자가 OMVS 세그먼트를 가지고 있지 않음을 의미합니다.)
다음 예는 관련된 패널을
설명합니다.
---------------------------------------------------------------------------------------- File Directory Special_file Tools File_systems Options Setup Help ---------------------------------------------------------------------------------------- UNIX System Services ISPF Shell Command ===> _______________ ---------------------------------------------------------------------------------------- ----------------------------- 1. User... 2. User list... 3. All users... 4. All groups... 5. Permit field access... 6. Character Special... 7. Reset UID to 847039 ----------------------------- -------------------------------------------------------------------- File Help -------------------------------------------------------------------- User List Command ===> -------------------------------------------------------------------- User ID UID Group -------------------------------------------------------------------- ADMOORE 1024996 $GUSERS /u/admoore AHMAD 2 DFSGRP /u/ahmad AKILOV 125406 $GUSERS /u/akilov ALLMOND 36 DFSGRP /u/allmond AOPUSER 99129934 AOPOPER /u/aopuser ASTLEY 787202 DFSGRP /u/astley A5USR 112501 A5GRP /tmp BAGWELL 342832 DFSGRP /u/bagwell --------------------------------------------------------------------- ----------------------------- 1. Sort name 2. Sort UID 3. Sort Group 4. Print 5. Exit User ID UID Group ----------------------------- ----------------------------------------------- User ID UID Group ----------------------------------------------- CBASRUH 2336 CBASRH CBIVPH 2337 CBIVPGH T5GUEST 2402 T5GUESG T5ADMIN 2403 T5CFG T5DMNU 2411 T5CFG T5ACRNDU 2421 T5CFG T5DMGSU 2422 T5SVRG T5ASRNDU 2422 T5SVRG T5ACRU 2431 T5CFG T5ASRU 2432 T5SVRG WSPETSC 2701 WSCNTLG -----------------------------------------------
모든 그룹 ID를 GID 순서로 나열
새 그룹에 고유 GID도 지정해야 합니다. 중복을 식별하고 고유한
새 GID를 지정할 수 있도록 그룹을 GID 순으로 나열(UID의 경우처럼)하기 위한 시스템
제공 도구는 없습니다. 유일한 매개변수로 GID를
지정하여 이들을 GID 순으로 나열하십시오. 기본값은 이들을 그룹 ID 순서로 나열하는 것입니다.
(RACF SPECIAL,
AUDITOR 또는 특정 권한이 있어야 합니다.)
/* Rexx ---------------------------------------------------------- */
/* This exec uses the ishell bpxwirac service to display the group */
/* with OMVS segments and there group IDs. B. Pierce & MJ Loos */
/* --------------------------------------------------------------- */
/* Syntax: LISTGRP Name (default) | GID */
/* --------------------------------------------------------------- */
order = "N" /* set default to name */
Arg parm /* get argument for sort order */
if Abbrev("NAME",parm,1) then order = "N"
if Abbrev("GID",parm,1) then order = "I"
call bpxwirac "OMVSGROUP" /* call the service */
Address ISPEXEC /* using ISPF services */
if order = "N" then do /* already sorted */
do ix=1 by 1 while queued()>0
parse pull gname gid
say left(gname,8) right(gid,8)
end
end
else do /* sort the results */
"TBCREATE grptable names(tbgrpnm tbgrpid) replace nowrite"
rows = 0
do ix=1 by 1 while queued()>0 /* populate the table */
parse pull gname gid
tbgrpnm = left(gname,8)
tbgrpid = right(gid,8)
"TBADD grptable"
rows = rows + 1
end
"TBSORT grptable FIELDS(tbgrpid,C,A,tbgrpnm,C,A)" /* sort it */
"TBTOP grptable"
do ix = 1 to rows by 1 /* display the results */
"TBSKIP grptable"
say tbgrpnm tbgrpid
end
"TBEND grptable" /* throw out the table */
end
say
exit 0
/***************** end of EXEC ****************************/
RACF 정의 취소
서버, 노드 및 셀을 설정(설정 후 삭제)할 때에는 프로세스에서 작성하는 RACF 정의를 간단한 방법으로 삭제하는 것이 편리합니다.
추가된 exec는 대상 .DATA 파티션된 데이터 세트의 BBOWBRAK 멤버로부터 생성된 RACF 명령을 읽어, RACF DELUSER, DELGROUP, RDELETE 및 기타 RACF 명령(역순으로)을 생성합니다.
결과로 생기는 RACF 명령을 실행하기 전에, 출력을 검토하고 보유하려는 다른 서버에서 사용하는 사용자, 그룹 또는 프로파일을 삭제하는 명령을 삭제해야 합니다.
팁: 다른 서버에서 사용하는 사용자와 일반 프로파일이 삭제되지 않도록
세심한 주의를 기울이십시오.
/* REXX - UNDO2 - Create backout RACF commands to uninstall Server*/ Read RACF commands into linein.in, parse verb & Obj, push "delete/undo" commands to cmdOut.out,then write out in rev order */ out = 1 /* Output line number for stem var. cmdOut. */ "EXECIO * DISKR RACFCMDS (STEM linein." do in = 1 to linein.0 /* See what we read; call the appropriate rtne */ if pos('/*',linein.in) <> 0 then iterate if pos('say',linein.in) = 1 then iterate parse var linein.in '"' cmdVerb cmdObj '"' select when cmdVerb = "ADDGROUP" then call DelGrp when cmdVerb = "ADDUSER" then call DelUsr when cmdVerb = "CONNECT" then call ConUsr when cmdVerb = "RDEFINE" then call DelPro when cmdVerb = "PERMIT" then call PerUsr when cmdVerb = "RACDCERT" then call RdCert otherwise iterate end /* select */ end /* in=1 to n */ call WriteCmds exit 1 return /*************** Subroutines: ********************/ DelUsr: /* DelUsr: Delete User */ parse var cmdObj user . cmdOut.out = "DELUSER " || user out = out + 1 return DelGrp: /* DelGrp: Delete Group */ parse var cmdObj group . cmdOut.out = "DELGROUP " || group out = out + 1 return ConUsr: /* ConUsr: Remove user from a group */ cmdOut.out = "REMOVE " || cmdObj out = out + 1 return DelPro: /* DelPro: Delete Profile */ parse var cmdObj class profile acc . cmdOut.out = "RDELETE " || class profile out = out + 1 return PerUsr: /* PerUsr: Remove permission from a profile */ parse var cmdObj profile class ID acc parse value cmdObj with 'ID(' id ')' acc cmdOut.out = 'PERMIT '||profile class||' ID('||ID||') DELETE' out = out + 1 return RdCert: /* RdCert: Remove Certificates */ if pos('GENCERT',cmdObj) <> 0 then DO if pos('CERTAUTH',cmdObj) <> 0 then DO parse value cmdObj with 'WITHLABEL(' cert ')' cmdOut.out = 'RACDCERT CERTAUTH DELETE(LABEL(' || cert || '))' out = out + 1 END ELSE DO parse value cmdObj with 'WITHLABEL(' cert ')' parse value cmdObj with 'ID (' id ')' cmdOut.out = 'RACDCERT ID('||id||') DELETE(LABEL('||cert||'))' out = out + 1 END END if pos('ADDRING',cmdObj) <> 0 then DO parse value cmdObj with 'ADDRING(' ringname ')' parse value cmdObj with 'ID(' user ')' cmdOut.out = 'RACDCERT DELRING('||ringname') ID('||user')' out = out + 1 END return /* Finished - pull LIFO stack and Write it out *******************/ WriteCmds: DO i = out-1 to 1 by -1 QUEUE cmdOut.i EXECIO 1 DISKW RACFUNDO END return