Sec. Admin
Sec. Admin
Sec. Admin
SA22-7683-06
z/OS
SA22-7683-06
Note
Before using this information and the product it supports, be sure to read the general information under Notices on page
745.
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
About this document . . . . . . . . . . . . . . . . . . . . . xxiii
Who should use this document . . . . . . . . . . . . . . . . . . xxiii
How to use this document . . . . . . . . . . . . . . . . . . . . xxiii
Where to find more information . . . . . . . . . . . . . . . . . . xxiii
Softcopy publications . . . . . . . . . . . . . . . . . . . . . xxiii
RACF courses . . . . . . . . . . . . . . . . . . . . . . . xxiv
Using LookAt to look up message explanations . . . . . . . . . . . xxiv
Accessing z/OS licensed documents on the Internet . . . . . . . . . . xxv
IBM systems center publications . . . . . . . . . . . . . . . . . . xxvi
Other sources of information . . . . . . . . . . . . . . . . . . . xxvi
IBM discussion areas . . . . . . . . . . . . . . . . . . . . . xxvi
Internet sources . . . . . . . . . . . . . . . . . . . . . . . xxvi
To request copies of IBM publications . . . . . . . . . . . . . . . xxviii
Summary of changes . . . . . . . . . . . . . . . . . . . . . xxix
Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . .
How RACF Meets Security Needs . . . . . . . . . . . . . . . . .
User Identification and Verification . . . . . . . . . . . . . . . .
Authorization Checking . . . . . . . . . . . . . . . . . . . .
Logging and Reporting . . . . . . . . . . . . . . . . . . . .
User Accountability . . . . . . . . . . . . . . . . . . . . . .
Flexibility . . . . . . . . . . . . . . . . . . . . . . . . .
RACF Transparency . . . . . . . . . . . . . . . . . . . . .
Implementing Multilevel Security . . . . . . . . . . . . . . . .
Multilevel Security . . . . . . . . . . . . . . . . . . . . . . .
Characteristics of a Multilevel-Secure Environment . . . . . . . . . .
Administering Security . . . . . . . . . . . . . . . . . . . . .
Delegating Administration Tasks . . . . . . . . . . . . . . . .
Administering Security When a VM System Shares the RACF Database . .
Using RACF Commands or Panels . . . . . . . . . . . . . . .
RACF Group and User Structure . . . . . . . . . . . . . . . . .
Defining Users and Groups . . . . . . . . . . . . . . . . . .
Protecting Resources . . . . . . . . . . . . . . . . . . . .
Security Classification of Users and Data . . . . . . . . . . . . .
Selecting RACF Options . . . . . . . . . . . . . . . . . . .
Using RACF Installation Exits to Customize RACF . . . . . . . . . . .
The RACROUTE REQUEST=VERIFY, VERIFYX, AUTH, and DEFINE Exits
The RACROUTE REQUEST=LIST Exits . . . . . . . . . . . . .
The RACROUTE REQUEST=FASTAUTH Exits . . . . . . . . . . .
The RACF Command Exits . . . . . . . . . . . . . . . . . .
The RACF Password Processing Exit . . . . . . . . . . . . . .
The RACF Password Authentication Exits . . . . . . . . . . . . .
Tools for the Security Administrator . . . . . . . . . . . . . . . .
Using RACF Utilities . . . . . . . . . . . . . . . . . . . . .
RACF Block Update Command (BLKUPD) . . . . . . . . . . . . .
Using the RACF Report Writer . . . . . . . . . . . . . . . . .
Using the Data Security Monitor . . . . . . . . . . . . . . . .
Recording Statistics in RACF Profiles . . . . . . . . . . . . . .
Copyright IBM Corp. 1994, 2005
. 1
. 2
. 2
. 3
. 4
. 5
. 9
. 10
. 10
. 10
. 11
. 12
. 12
. 13
. 13
. 15
. 15
. 20
. 23
. 24
. 24
24
. 24
. 24
. 25
. 25
. 25
. 25
. 25
. 27
. 28
. 28
. 28
iii
iv
. .
. .
. .
. .
Plan
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
36
36
37
37
38
38
40
41
41
42
44
46
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
50
50
52
54
55
55
56
59
60
61
62
72
72
73
73
79
84
85
85
85
86
87
88
89
91
93
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
95
95
96
97
98
98
98
98
99
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 99
100
101
102
102
102
103
103
103
104
107
108
109
109
110
110
111
112
113
114
115
116
116
118
119
120
120
121
122
122
123
123
123
124
124
125
126
126
126
128
131
131
132
132
132
133
133
134
134
135
135
135
. 136
. 136
137
. 137
139
. 139
. 140
140
. 141
. 141
. 141
. 142
. 143
. 143
. 144
. 144
. 146
. 147
vi
149
150
151
153
155
155
156
163
166
166
167
168
168
168
169
169
171
172
172
173
174
174
175
177
178
181
181
182
184
185
187
187
188
188
188
188
189
189
189
190
191
191
191
. 193
. 195
. 196
. 198
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
199
199
199
202
204
205
206
207
207
207
211
212
212
213
218
219
219
220
221
223
223
223
224
225
226
226
227
227
228
230
231
233
234
234
235
235
Contents
vii
viii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
236
237
238
238
238
239
240
240
241
241
241
247
247
249
250
251
251
253
253
255
256
259
259
260
261
261
262
266
267
267
268
268
269
273
273
274
275
276
276
276
277
278
278
278
279
279
279
280
280
280
281
282
284
284
285
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
287
287
288
289
290
290
291
292
292
293
293
294
296
296
298
298
299
299
301
301
302
.
.
.
.
.
303
305
306
308
309
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
310
311
313
314
318
319
320
320
321
321
323
324
324
325
325
326
327
329
329
330
331
331
.
.
.
.
.
333
333
334
335
336
Contents
ix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 337
. 337
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
337
338
338
338
338
340
340
341
344
345
345
345
346
347
347
347
348
348
349
349
349
350
350
350
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
351
352
352
352
353
353
355
356
372
374
377
378
379
381
381
382
383
383
383
383
384
384
384
384
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
390
390
391
392
393
394
394
395
395
395
396
396
399
399
401
403
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
408
410
413
416
416
416
416
417
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
419
421
421
422
422
422
423
423
426
427
428
429
430
430
431
431
431
432
432
432
433
433
433
433
434
434
434
434
434
434
Contents
xi
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Table Columns
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
435
435
436
436
437
439
439
440
441
442
443
444
445
445
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
447
447
448
449
449
449
449
450
451
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
xii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
455
455
456
457
459
461
461
462
463
463
464
466
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
467
468
469
469
470
470
470
471
471
471
473
474
474
474
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
to Spool
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
(JES3 Only)
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
474
475
476
476
477
477
478
481
482
483
500
500
500
501
503
504
506
506
506
507
507
507
508
510
510
511
512
512
512
513
.
.
.
.
515
515
515
516
.
.
.
.
.
.
.
517
517
518
519
520
520
523
.
.
.
.
.
.
.
.
.
525
525
526
529
529
529
530
530
531
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
xiii
|
|
|
|
xiv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
535
535
536
536
536
537
537
537
538
538
539
540
541
542
543
543
546
546
547
548
549
549
551
552
553
554
555
556
557
557
559
560
561
565
567
567
568
569
569
571
572
576
577
578
578
582
582
582
583
583
583
585
588
588
589
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
|
|
|
|
|
|
|
|
Implementation Scenarios . . . . . . . . . . . . . . . . .
Scenario 1: Secure Server with a Certificate Signed by a Certificate
Authority . . . . . . . . . . . . . . . . . . . . . .
Scenario 2: Secure Server with a Locally Signed Certificate . . . .
Scenario 3: Migrating an ikeyman or gskkyman Certificate . . . .
Scenario 4: Secure Server-to-Server Session Enablement . . . .
Scenario 5: Creating Client Browser Certificates with a Locally Signed
Certificate . . . . . . . . . . . . . . . . . . . . .
Scenario 6: Enabling Secure Outbound FTP . . . . . . . . .
Scenario 7: Sharing One Certificate Between Multiple Servers . . .
. . . 594
.
.
.
.
.
.
.
.
.
.
.
.
594
595
596
597
. . . 599
. . . 599
. . . 600
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
603
603
604
604
605
607
608
609
609
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
611
611
612
612
612
612
614
614
614
615
615
615
615
616
616
616
616
618
619
619
619
620
620
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
password enveloping
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
623
623
624
625
625
626
Contents
xv
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
627
627
628
628
629
629
629
629
630
630
631
634
636
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
649
649
653
654
654
655
655
656
657
657
658
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
661
661
665
666
667
668
Checking
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
675
678
678
678
679
679
679
679
679
680
684
684
685
685
687
687
688
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
xvi
DB2 privileges. . . . . . . .
Storage group privileges . . . . .
DB2 privileges. . . . . . . .
Stored procedure privileges . . . .
DB2 privileges. . . . . . . .
System privileges . . . . . . .
DB2 administrative authorities . .
DB2 privileges. . . . . . . .
Table privileges . . . . . . . .
DB2 privileges. . . . . . . .
Tablespace privileges . . . . . .
DB2 privileges. . . . . . . .
User-defined distinct type privileges .
DB2 privileges. . . . . . . .
User-defined function privileges . .
DB2 privileges. . . . . . . .
View privileges . . . . . . . .
DB2 privileges. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
688
690
690
691
691
693
693
693
698
699
705
705
706
706
706
706
708
708
. . . .
. . . .
interface.
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
715
715
717
718
719
719
720
725
730
732
. 733
735
. 735
. 736
.
.
.
.
740
740
740
741
.
.
.
.
743
743
743
743
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
Trademarks. . . . . . . . . . . . . . . . . . . . . . . . . . 746
RACF Glossary . . .
Sequence of entries .
Organization of entries
References . . . . .
Selection of terms . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contents
.
.
.
.
.
749
749
749
749
749
xvii
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
xviii
Figures
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
xix
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
xx
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
563
564
565
570
571
572
573
575
577
577
578
579
579
581
725
726
727
728
Tables
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
| 27.
| 28.
|
29.
30.
31.
32.
33.
34.
| 35.
36.
37.
38.
39.
40.
41.
42.
| 43.
44.
45.
46.
47.
48.
User Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Commands to List Profile Contents . . . . . . . . . . . . . . . . . . . . . . . . 29
Command to Search for Profile Names. . . . . . . . . . . . . . . . . . . . . . . 32
Participants of the Security Implementation Team . . . . . . . . . . . . . . . . . . . 36
Checklist for Implementation Team Activities . . . . . . . . . . . . . . . . . . . . . 46
Group Authorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Scope of Authority for User Attributes at the Group Level . . . . . . . . . . . . . . . . 81
RACF Support on JES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Sample Profile Names for STARTED Class Resources . . . . . . . . . . . . . . . . 146
Sample Data Set Profile Names in Order from Most Specific to Least Specific (EGN Off)
158
Sample Data Set Profile Names in Order from Most Specific to Least Specific (EGN On)
159
Protecting GDG Data Sets Using Generic Profiles . . . . . . . . . . . . . . . . . . 166
Access Authorities for DASD Data Sets . . . . . . . . . . . . . . . . . . . . . . 170
RACF Commands Used to Work with General Resource Profiles . . . . . . . . . . . . 195
Choosing Among Generic Profiles, Resource Group Profiles, and RACFVARS Profiles. . . . . 199
Sample General Resource Profile Names in Order from Most Specific to Least Specific . . . . 202
ALTER, NONE, and CONTROL, UPDATE, and READ Access Authorities for General Resources 205
Comparison of GRPACC Attribute with &RACGPID.** Entry in Global Access Checking Table
211
Relationship of RACF Command Operands to FIELD Profile Names . . . . . . . . . . . 215
Delegating Authority in the FACILITY Class . . . . . . . . . . . . . . . . . . . . 219
Resource Group Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
RACF Classes Used to Authorize Operator Commands . . . . . . . . . . . . . . . . 261
RACF Operator Command Profiles: Naming Conventions . . . . . . . . . . . . . . . 262
RACF TSO Commands Entered as Operator Commands: Naming Conventions . . . . . . . 263
Automatic Command Direction: Resource Names . . . . . . . . . . . . . . . . . . 269
KEYSMSTR class profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Processing options controlled simultaneously for classes sharing a POSIT value . . . . . . . 292
ICHERCDE macro operands and the corresponding operands for the RDEFINE and RALTER
commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Correlation of Record Type, Record Name, and DB2 Table Name . . . . . . . . . . . . 366
RRSFDATA Resources Used to Control Propagation of Digital Information . . . . . . . . . 415
DB2 Object Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
DB2 Object Name Qualifiers for RACF Profiles . . . . . . . . . . . . . . . . . . . 427
DB2 Administrative Authorities . . . . . . . . . . . . . . . . . . . . . . . . . 429
DB2 objects and privileges associated with implicit ownership . . . . . . . . . . . . . . 431
FASTAUTH return code translation . . . . . . . . . . . . . . . . . . . . . . . . 439
IMS Class Names, How They Are Specified, and Their Usage . . . . . . . . . . . . . . 458
NODES Class Operands and the UACC Meaning for Inbound Jobs . . . . . . . . . . . . 489
NODES Class Operands, UACC and SYSOUT Ownership When Node Is Not Defined to
&RACLNDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
TSO Command Usage When RACF Protection Is Enabled . . . . . . . . . . . . . . . 530
The UNIXMAP Class and VLF: Effects on Performance for Installations That Have Not Reached
Stage 3 of Application Identity Mapping . . . . . . . . . . . . . . . . . . . . . . 543
Subjects and Issuers Distinguished Names . . . . . . . . . . . . . . . . . . . . 570
Summary of accesses required for PKI Services request . . . . . . . . . . . . . . . . 617
Encryption strength values . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Resource Classes for z/OS and OS/390 Systems . . . . . . . . . . . . . . . . . . 639
Resource Classes for z/VM and VM Systems . . . . . . . . . . . . . . . . . . . . 646
Functions of RACF Commands . . . . . . . . . . . . . . . . . . . . . . . . . 649
Commands and Operands You Can Issue If You Have the SPECIAL or group-SPECIAL Attribute 654
Commands and Operands You Can Issue If You Have the AUDITOR or group-AUDITOR
Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
xxi
49. Commands and Operands You Can Issue If You Have the OPERATIONS or
group-OPERATIONS Attribute . . . . . . . . . . . . . . . . . . . . . . .
50. Commands and Operands You Can Issue If You Have the CLAUTH Attribute . . . . . .
51. Commands and Operands You Can Issue If You Have a Group Authority . . . . . . .
52. Commands and Operands You Can Issue If You Have an Access Authority . . . . . . .
53. Commands and Operands You Can Issue If You Own a Profile . . . . . . . . . . .
54. Commands and Operands You Can Issue for Miscellaneous Reasons . . . . . . . . .
55. User Profile Contents: ADDUSER Command . . . . . . . . . . . . . . . . . .
56. User Profile Contents: RACDCERT Command . . . . . . . . . . . . . . . . .
57. User Profile Contents: RACLINK Command . . . . . . . . . . . . . . . . . .
58. Group Profile Contents: ADDGROUP Command . . . . . . . . . . . . . . . . .
59. Connect Profile Contents: CONNECT Command . . . . . . . . . . . . . . . .
60. Data Set Profile Contents: ADDSD Command . . . . . . . . . . . . . . . . . .
61. Data Set Profile Contents: Access Lists . . . . . . . . . . . . . . . . . . . .
62. General Resource Profile Contents: RACDCERT Command . . . . . . . . . . . .
63. General Resource Profile Contents: RDEFINE Command . . . . . . . . . . . . .
64. General Resource Profile Contents: Access Lists . . . . . . . . . . . . . . . .
65. UACC Values for System Data Sets . . . . . . . . . . . . . . . . . . . . .
66. Required Relationship Between Security Levels for Each MAC Checking Type . . . . .
67. Security label authorization checking when SECLABEL class is active and either SETROPTS
MLS(FAILURES) or MLS(WARNING) is in effect . . . . . . . . . . . . . . . . .
68. Security label authorization checking when SECLABEL class is active and either SETROPTS
NOMLS is in effect or the user is in write-down mode. . . . . . . . . . . . . . .
69. Effects of MLACTIVE Settings on Security Label Authorization . . . . . . . . . . .
70. Relationships among the SECLABEL class, SETROPTS MLS(FAILURES), SETROPTS
MLACTIVE(FAILURES), and SETROPTS MLQUIET . . . . . . . . . . . . . . .
71. Resource Classes Checked for Logon/Job Initialization Requests . . . . . . . . . .
xxii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
655
655
656
657
658
659
661
665
665
665
666
667
668
668
669
673
711
737
. . 738
. . 738
. . 739
. . 740
. . 742
Softcopy publications
The RACF library is available on the following CD-ROMs. The CD-ROM online
library collections include Softcopy Reader, which is a program that enables you
to view the softcopy documents.
Copyright IBM Corp. 1994, 2005
xxiii
Preface
SK3T-4269
SK3T-4272
SK2T-2180
SK3T-7876
SK2T-2177
RACF courses
The following RACF classroom courses are available:
ES840
H3917
H3927
ES88A
IBM provides a variety of educational offerings for RACF. For more information
about classroom courses and other offerings, do any of the following:
v See your IBM representative
v Call 1-800-IBM-TEACh (1-800-426-8322)
xxiv
Preface
LookAt to find information is faster than a conventional search because in most
cases LookAt goes directly to the message explanation.
You can use LookAt from the following locations to find IBM message explanations
for z/OS elements and features, z/VM, VSE/ESA, and Clusters for AIX and
Linux:
v The Internet. You can access IBM message explanations directly from the LookAt
Web site at http://www.ibm.com/eserver/zseries/zos/bkserv/lookat/.
v Your z/OS TSO/E host system. You can install code on your z/OS or z/OS.e
systems to access IBM message explanations, using LookAt from a TSO/E
command line (for example, TSO/E prompt, ISPF, or z/OS UNIX System
Services).
v Your Microsoft Windows workstation. You can install code to access IBM
message explanations on the z/OS Collection (SK3T-4269), using LookAt from a
Microsoft Windows command prompt (also known as the DOS command line).
v Your wireless handheld device. You can use the LookAt Mobile Edition with a
handheld device that has wireless access and an Internet browser (for example,
Internet Explorer for Pocket PCs, Blazer, or Eudora for Palm OS, or Opera for
Linux handheld devices). Link to the LookAt Mobile Edition from the LookAt Web
site.
You can obtain code to install LookAt on your host system or Microsoft Windows
workstation from a disk on your z/OS Collection (SK3T-4269), or from the LookAt
Web site (click Download, and select the platform, release, collection, and location
that suit your needs). More information is available in the LOOKAT.ME files
available during the download process.
Licensed documents are available only to customers with a z/OS license; access to
these documents requires an IBM Resource Link user ID and password, and a key
code. Based on which offering you chose (ServerPac, CBPDO, SystemPac),
information concerning the key code is available in the Installation Guide that is
delivered with z/OS and z/OS.e orders as follows:
v ServerPac Installing Your Order
v CBPDO Memo to Users Extension
v SystemPac Installation Guide
To obtain your IBM Resource Link user ID and password, log on to:
http://www.ibm.com/servers/resourcelink
xxv
Preface
You can use the PDF format on either z/OS Licensed Product Library CD-ROM or
IBM Resource Link to print licensed documents.
Internet sources
The following resources are available through the Internet to provide additional
information about the RACF library and other security-related topics:
v Online library
To view and print online versions of the z/OS publications, use this address:
http://www.ibm.com/servers/eserver/zseries/zos/bkserv/
v Redbooks
xxvi
Preface
The documents known as Redbooks that are produced by the International
Technical Support Organization (ITSO) are available at the following address:
http://www.ibm.com/redbooks/
Include the following line in the body of the note, substituting your first name and
last name as indicated:
subscribe racf-l first_name last_name
v Sample code
You can get sample code, internally-developed tools, and exits to help you use
RACF. This code works in our environment, at the time we make it available, but
is not officially supported. Each tool or sample has a README file that describes
the tool or sample and any restrictions on its use.
To access this code from a Web browser, go to the RACF home page and select
the Downloads topic from the navigation bar, or go to
www.ibm.com/servers/eserver/zseries/zos/racf/goodies.html .
The code is also available from ftp.software.ibm.com through anonymous FTP.
To get access:
1. Log in as user anonymous.
2. Change the directory, as follows, to find the subdirectories that contain the
sample code or tool you want to download:
cd eserver/zseries/zos/racf/
xxvii
Preface
Restrictions
Because the sample code and tools are not officially supported,
There are no guaranteed enhancements.
No APARs can be accepted.
xxviii
Summary of changes
Summary of changes
for SA22-7683-06
z/OS Version 1 Release 6
This document contains information previously presented in z/OS Security Server
RACF Security Administrators Guide, SA22-7683-05, which supports z/OS Version
1 Release 6.
New information
v RRSF Considerations for JES Security on page 416
Changed information
v Technical clarifications and corrections in support of Common Criteria
v Updates suggested by reader comments.
Summary of changes
for SA22-7683-05
z/OS Version 1 Release 6
This document contains information previously presented in z/OS Security Server
RACF Security Administrators Guide, SA22-7683-04, which supports z/OS Version
1 Release 5.
New information
v Chapter 8, Administering the Dynamic Class Descriptor Table (CDT), on page
287
v Renewing an expiring certificate on page 583
v Scenario 6: Enabling Secure Outbound FTP and Scenario 7: Sharing One
Certificate Between Multiple Servers on page 600
v Chapter 25, RACF and z/OS LDAP Server, on page 623
v Chapter 26, Password enveloping, on page 627
Changed information
v Table 19 on page 215 contains information about new command operands and
the new CDTINFO segment.
v Chapter 13, Controlling Access to DB2 Objects, on page 419 includes
information on new DB2 classes and privileges.
v Supplied digital certificates on page 588 contains information about new
supplied certificates.
v Appendix A, Supplied class descriptor table entries, on page 639 includes new
classes.
v Appendix B, Summary of RACF Commands and Authorities, on page 649
includes new functions.
v Appendix C, RACF Profile Summaries, on page 661 includes new options.
v Appendix D, RACF External Security Module: Authorization Checking, on page
675 includes information on new DB2 classes and privileges.
v RACF Glossary on page 749 includes new terms.
xxix
Preface
This document includes terminology, maintenance, and editorial changes. Technical
changes or additions to the text and illustrations are indicated by a vertical line to
the left of the change.
You may notice changes in the style and structure of some content in this bookfor
example, headings that use uppercase for the first letter of initial words only, and
procedures that have a different look and format. The changes are ongoing
improvements to the consistency and retrievability of information in our books.
Summary of changes
for SA22-7683-04
z/OS Version 1 Release 5
This document contains information previously presented in z/OS Security Server
RACF Security Administrators Guide, SA22-7683-03, which supports z/OS Version
1 Release 4.
New information
v Controlling the write-down Privilege on page 103
v Restricting Access to z/OS UNIX Files and Directories (MLFSOBJ Option) on
page 139
v Restricting Access to Interprocess Communication Objects (MLIPCOBJ Option)
on page 139
v Using Name-hiding (MLNAMES Option) on page 140
v Activating Security Labels by System Image (SECLBYSYSTEM Option) on
page 140
v Program access to SERVAUTH resources in BASIC or ENHANCED mode on
page 319
Changed information
v The following topics were updated to support the multilevel-secure environment:
Understanding Security Labels on page 99
SETROPTS Options Related to Security Labels on page 135
Program security modes on page 305
Security Label Authorization Checking on page 736
Authorizing Access to z/OS UNIX Files and Directories on page 730
v Chapter 13, Controlling Access to DB2 Objects, on page 419 includes
information on new DB2 classes and privileges and includes support for APARs
OW57299 and PQ68177.
v z/OS UNIX performance considerations on page 542 includes support for APAR
OA02721.
v Supplied digital certificates on page 588 contains information about new
supplied certificates.
v Appendix A, Supplied class descriptor table entries, on page 639 includes new
classes.
v Appendix B, Summary of RACF Commands and Authorities, on page 649
includes new functions.
v Appendix C, RACF Profile Summaries, on page 661 includes new options.
v Appendix D, RACF External Security Module: Authorization Checking, on page
675 includes information on new DB2 classes and privileges and includes
support for APARs OW57299 and PQ68177.
xxx
Preface
v Appendix F, Debugging Problems in the RACF Database, on page 715 includes
information on authorization checking for multilevel secure environments.
v RACF Glossary on page 749 includes new terms.
Deleted information
v Some information that was previously presented in Chapter 4, Classifying Users
and Data, on page 95 and Appendix F, Debugging Problems in the RACF
Database, on page 715 is now presented in z/OS Planning for Multilevel
Security and the Common Criteria.
This document includes terminology, maintenance, and editorial changes.
Summary of changes
for SA22-7683-03
z/OS Version 1 Release 4
This document contains information previously presented in z/OS Security Server
RACF Security Administrators Guide, SA22-7683-02, which supports z/OS Version
1 Release 3.
New information
v
v
v
v
v
v
v
Changed information
v Reports Based on the Database Unload Utility (IRRDBU00) on page 359
includes new reports.
v Table 29 on page 366 includes new record types.
v Supplied digital certificates on page 588 contains information about new
supplied certificates.
v Glossary term updates
Moved information
v A new chapter, Chapter 9, Protecting Programs, on page 303, contains some
information that was previously presented in Chapter 7, Protecting General
Resources, on page 193.
This document includes terminology, maintenance, and editorial changes.
Summary of changes
for SA22-7683-02
z/OS Version 1 Release 3
This document contains information previously presented in z/OS SecureWay
Security Server RACF Security Administrators Guide, SA22-7683-01, which
supports z/OS Version 1 Release 2.
Summary of changes
xxxi
Preface
New information
v Storing encryption keys using the KEYSMSTR class on page 284
v Supplied digital certificates on page 588
v Controlling applications that invoke R_cacheserv on page 615
v Controlling applications that invoke R_proxyserv on page 619
v An appendix with z/OS product accessibility information has been added.
Moved information
v Storing encryption keys using the KEYSMSTR class on page 284 contains
some information that was previously presented in Single Signon Support for
DCE on page 450.
v A new chapter, Chapter 23, Controlling applications that invoke callable
services, on page 611, contains some information that was previously presented
in the following chapters:
Chapter 7, Protecting General Resources, on page 193
Chapter 14, RACF and DCE, on page 447
Chapter 20, RACF and z/OS UNIX, on page 533
Chapter 21, RACF and Digital Certificates, on page 555
Chapter 22, RACF and z/OS Security Server Network Authentication
Service, on page 603
This document includes terminology, maintenance, and editorial changes.
Summary of changes
for SA22-7683-01
z/OS Version 1 Release 2
This document contains information previously presented in z/OS SecureWay
Security Server RACF Security Administrators Guide, SA22-7683-00, which
supports z/OS Version 1 Release 1.
New information
v Defining Large Groups with the UNIVERSAL Attribute on page 54
v Limiting the Size of Your Access Lists on page 205
v Using RACFVARS with Mixed-Case Classes on page 230
v Using IRRDBU00 with Universal Groups on page 353
v Processing Universal Groups on page 384
v CREATE VIEW Privilege on page 432
v SETROPTS KERBLVL processing on page 606
v Java archive (JAR) privileges on page 684
Changed information
v User Profiles on page 62 includes new segments and new fields.
v Reports Based on the Database Unload Utility (IRRDBU00) on page 359
includes new reports supporting universal groups.
v Table 29 on page 366 includes new record types.
v Using the RACF Remove ID Utility (IRRRID00) on page 372 includes
information on new general resource classes.
v Chapter 13, Controlling Access to DB2 Objects, on page 419 includes
information on new DB2 classes.
xxxii
Preface
v Chapter 22, RACF and z/OS Security Server Network Authentication Service,
on page 603 includes information on new key encryption options.
v Appendix A, Supplied class descriptor table entries, on page 639 includes new
classes.
v Appendix B, Summary of RACF Commands and Authorities, on page 649
includes new functions.
v Appendix C, RACF Profile Summaries, on page 661 includes new options.
v Appendix D, RACF External Security Module: Authorization Checking, on page
675 includes information on new DB2 classes.
This document includes terminology, maintenance, and editorial changes, including
changes to improve consistency and retrievability.
Summary of changes
xxxiii
xxxiv
Chapter 1. Introduction
How RACF Meets Security Needs . . . . . . . . . . . . . . . . .
User Identification and Verification . . . . . . . . . . . . . . . .
Authorization Checking . . . . . . . . . . . . . . . . . . . .
Logging and Reporting . . . . . . . . . . . . . . . . . . . .
User Accountability . . . . . . . . . . . . . . . . . . . . . .
RACF Users . . . . . . . . . . . . . . . . . . . . . . .
RACF Groups . . . . . . . . . . . . . . . . . . . . . . .
What RACF Controls . . . . . . . . . . . . . . . . . . . .
How Users and Groups Are Authorized to Access Resources . . . . .
RACF Profiles. . . . . . . . . . . . . . . . . . . . . . .
Flexibility . . . . . . . . . . . . . . . . . . . . . . . . .
RACF Transparency . . . . . . . . . . . . . . . . . . . . .
Implementing Multilevel Security . . . . . . . . . . . . . . . .
Multilevel Security . . . . . . . . . . . . . . . . . . . . . . .
Characteristics of a Multilevel-Secure Environment . . . . . . . . . .
Mandatory Access Control (MAC) . . . . . . . . . . . . . . .
Security Labels . . . . . . . . . . . . . . . . . . . . . .
Discretionary Access Control (DAC) . . . . . . . . . . . . . .
Resource Reuse . . . . . . . . . . . . . . . . . . . . .
Identification and Authentication . . . . . . . . . . . . . . . .
Auditability of Security-Related Events . . . . . . . . . . . . .
Administering Security . . . . . . . . . . . . . . . . . . . . .
Delegating Administration Tasks . . . . . . . . . . . . . . . .
Administering Security When a VM System Shares the RACF Database . .
Using RACF Commands or Panels . . . . . . . . . . . . . . .
Choosing between Using RACF TSO Commands and ISPF Panels . .
RACF Group and User Structure . . . . . . . . . . . . . . . . .
Defining Users and Groups . . . . . . . . . . . . . . . . . .
Assigning Optional User Attributes . . . . . . . . . . . . . . .
Assigning Group Authorities . . . . . . . . . . . . . . . . .
Profiles Associated with Users and Groups . . . . . . . . . . .
Protecting Resources . . . . . . . . . . . . . . . . . . . .
Protecting Data Sets . . . . . . . . . . . . . . . . . . . .
Protecting General Resources . . . . . . . . . . . . . . . .
Installation-Defined Classes . . . . . . . . . . . . . . . . .
Authority to Create Resource Profiles . . . . . . . . . . . . .
Authority to Modify or Delete Resource Profiles . . . . . . . . . .
Owners of Resource Profiles . . . . . . . . . . . . . . . . .
Setting Up the Global Access Checking Table . . . . . . . . . .
Security Classification of Users and Data . . . . . . . . . . . . .
Selecting RACF Options . . . . . . . . . . . . . . . . . . .
Using RACF Installation Exits to Customize RACF . . . . . . . . . . .
The RACROUTE REQUEST=VERIFY, VERIFYX, AUTH, and DEFINE Exits
The RACROUTE REQUEST=LIST Exits . . . . . . . . . . . . .
The RACROUTE REQUEST=FASTAUTH Exits . . . . . . . . . . .
The RACF Command Exits . . . . . . . . . . . . . . . . . .
The RACF Password Processing Exit . . . . . . . . . . . . . .
The RACF Password Authentication Exits . . . . . . . . . . . . .
Tools for the Security Administrator . . . . . . . . . . . . . . . .
Using RACF Utilities . . . . . . . . . . . . . . . . . . . . .
RACF Database Initialization Utility (IRRMIN00) . . . . . . . . . .
RACF Database Split/Merge/Extend Utility (IRRUT400) . . . . . . .
RACF Database Unload Utility (IRRDBU00) . . . . . . . . . . .
Copyright IBM Corp. 1994, 2005
. 2
. 2
. 3
. 4
. 5
. 6
. 6
. 6
. 7
. 9
. 9
. 10
. 10
. 10
. 11
. 11
. 11
. 11
. 12
. 12
. 12
. 12
. 12
. 13
. 13
. 13
. 15
. 15
. 16
. 18
. 19
. 20
. 20
. 21
. 21
. 22
. 22
. 22
. 23
. 23
. 24
. 24
24
. 24
. 24
. 25
. 25
. 25
. 25
. 25
. 26
. 26
. 26
Introduction
RACF Database Verification Utility (IRRUT200) .
RACF Cross-Reference Utility (IRRUT100) . .
RACF Remove ID Utility (IRRRID00) . . . . .
RACF SMF Data Unload Utility (IRRADU00) . .
RACF Block Update Command (BLKUPD) . . . .
Using the RACF Report Writer . . . . . . . .
Using the Data Security Monitor . . . . . . .
Recording Statistics in RACF Profiles . . . . .
Listing Information from RACF Profiles . . . . .
Searching for RACF Profile Names . . . . . .
Using the LIST and SEARCH Commands Effectively
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
26
27
27
27
28
28
28
29
31
32
This chapter introduces you to using RACF to administer security on your system.
Over the past several years, it has become much easier to create and access
computerized information. No longer is system access limited to a handful of highly
skilled programmers; information can now be created and accessed by almost
anyone who takes a little time to become familiar with the newer, easier-to-use,
high-level inquiry languages. As a result of this improved ease of use, the number
of people using computer systems has increased dramatically. More and more
people are becoming increasingly dependent on computer systems and the
information they store in these systems.
As the general computer literacy and the number of people using computers has
increased, the need for data security has taken on a new level of importance. No
longer can the installation depend on keeping data secure simply because no one
knows how to access the data. Further, making data secure does not mean just
making confidential information inaccessible to those who should not see it; it
means preventing the inadvertent destruction of files by people who may not even
know that they are improperly manipulating data.
As the security administrator, it is your job to ensure that your installations data is
properly protected. RACF can help you do this.
Introduction
ID and temporary password. The user ID identifies the person to the system as a
RACF user. The password verifies the users identity.
The temporary password permits initial entry to the system, at which time the
person is required to choose a new password. Unless the user divulges it, no one
else knows the user ID-password combination.
During terminal processing, RACF allows the use of an operator identification card
(OIDCARD) in place of, or in addition to, the password. (The OIDCARD information
is also encrypted.) By requiring a user to know both the correct password and the
correct OIDCARD, you have increased assurance that the proper user has entered
the user ID.
The secured signon function provides an alternative to the RACF password called a
PassTicket, which allows workstations and client machines to communicate with a
host without using a RACF password. Using this function can enhance security
across a network. For more information, see Using the Secured Signon Function
on page 240.
Authorization Checking
Having identified a valid user, the software access control mechanism must next
control interaction between the user and the system resources. It must authorize
not only what resources that user may access, but also in what way the user may
access them, such as for reading only, or for updating as well as reading. This
controlled interaction, or authorization checking, is shown in Figure 1 on page 4.
Before this activity can take place, however, someone with the proper authority at
the installation must establish the constraints that govern those interactions.
With RACF, you are responsible for protecting the system resources (data sets,
tape and DASD volumes, IMS and CICS transactions, TSO logon information, and
terminals) and for issuing the authorities by which those resources are made
available to users. RACF records your assignments in profiles stored in the RACF
database. RACF then refers to the information in the profiles to decide if a user
should be permitted to access a system resource.
Chapter 1. Introduction
Introduction
Operating System
(2)
(1)
(3)
Resource
Manager
User
Request
(7)
RACROUTE
Interface
RACF
(5)
(6)
(4)
RACF
Database
or
in-storage
data
Introduction
With the SMF data unload utility, you can translate the RACF SMF records
into a format you can browse or upload to a database, query, or reporting
package, such as DB2.
With the report writer, you can select RACF SMF records to produce the
reports. Because the RACF report writer was stabilized at the RACF 1.9.2
level, it cannot produce reports for all records beyond that release.
You should keep in mind that, for each logging activity that RACF performs, there
is a corresponding increase in RACF and SMF processing.
For more information on logging and auditing, see z/OS Security Server RACF
Auditors Guide.For information on how to specify logging and auditing functions,
see z/OS Security Server RACF Command Language Reference.
v Sending Messages: RACF sends messages to the security console for
detected, unauthorized attempts to enter the system and for detected,
unauthorized attempts to access RACF-protected resources or modify profiles on
the RACF database.
As well as sending resource access violation messages only to the security
console, RACF allows you to send a message to a RACF-defined TSO user.
Each resource profile can contain the name of a user to be notified when RACF
denies access to the resource. If the user is not logged on to the system at the
time of the violation, the user receives the message when logging on.
If you are auditing access attempts, and you have selected the RACF function
that issues a warning message instead of failing an invalid access attempt (to
allow for a more orderly migration to a RACF-protected system), RACF records
each attempted access. For each access attempt that would have failed, RACF
sends a warning message (ICH408I) to the accessor, but allows the access. If a
notify user is specified in the resource profile, RACF also sends a message to
that user.
v Keeping Statistical Information: Optionally, RACF can keep selected statistical
information, such as the date, time, and number of times that a user enters the
system and the number of times a single user accesses a specific resource. This
information can help the installation analyze and control its computer operations
more effectively. In addition, to allow the installation to track and maintain control
over its users and resources, RACF provides commands that enable the
installation to list the contents of the profiles in the RACF database.
User Accountability
Individual accountability should probably be one of your installations prime security
objectives. A user who can be held individually accountable for actions is less likely
to make mistakes or take other actions that might disrupt or compromise operations
at your installation.
When an individual user accesses the system through a terminal, the concept of
individual user identity is fairly obvious. With a group of production programs,
however, it may be less clear just who the user is. (Is it the application owner, the
job scheduling person, or the console operator?)
RACF offers you the ability to assign each user a unique identifier. (Of course,
whether you establish this degree of accountability in all cases is an installation
decision.)
In addition, RACF permits you to assign each user to one or more groups, which
are simply collections of users having common access requirements.
Chapter 1. Introduction
Introduction
RACF Users
A RACF user is identified by an alphanumeric user ID that RACF associates with
the user. Note, however, that a RACF user need not be an individual. For example,
a user ID can be associated with a started procedure. In addition, in many systems
today a user is equated with a function, rather than an individual. For example, a
service bureau customer may comprise several people who submit work as a single
user. Their jobs are simply charged to a single account number. From the security
standpoint, as mentioned before, equating a user ID with anything other than an
individual can be undesirable because individual accountability is lost. However, it is
up to the installation, through you, to decide how much individual accountability is
required.
RACF Groups
A RACF group is normally a collection of users with common access requirements.
As such, it is an administrative convenience, because it can simplify the
maintenance of access lists in resource profiles. By adding a user to a group, you
can give that user access to all of the resources that the group has access to.
Likewise, by removing a user from a group, you can prevent the user from
accessing those resources. You can also use groups as holding groups or data
control groups. For more information, see Defining RACF Groups on page 50.
The group concept is very flexible; a RACF group can be equated with almost any
logical entity, such as a project, department, application, service bureau customer,
operations group, or systems group. Further, individual users can be connected to
any number of groups. Membership and authority in these groups can be used to
control the scope of a users activity.
Introduction
v CICS files, journals, and so forth
v Installation-defined resources
v APPC transactions and other resources
For more information, see Protecting General Resources on page 21.
Chapter 1. Introduction
Introduction
If a user is added to a RACF group (via the CONNECT command) after that user
has already logged on, that user will have to log off and log back on to have
authority based on that group when accessing resources in classes that have been
RACLISTed.
If a user is deleted from a RACF group (via the REMOVE command) after that user
is already logged on, that user will have to log off and log back on to not have
authority based on that group when accessing resources in classes that have been
RACLISTed.
Security classification: Each user and each resource can have a security
classification specified in its profile. The security classification can be a security
level, one or more security categories, or both. A security label is an
installation-defined name that refers to a combination of a security level and zero or
more security categories. A security level is an installation-defined name that
corresponds to a numerical security level (the higher the number, the higher the
security level). A security category is an installation-defined name corresponding to
a department or an area within an organization that has similar security
requirements.
When a user requests access to a resource that has a security classification, RACF
compares the security classification of the user with the security classification of the
resource. For more information on security classifications, see Chapter 4,
Classifying Users and Data, on page 95.
Access authority: The access authority determines to what extent the specified
user or group can use the resource. The owner of a profile protecting a data set or
general resource (such as a tape volume or terminal) can grant or deny a user or
group access to that resource by including the user ID or group name in the
resource profiles access list. Associated with each user ID or group name is an
access authority that determines whether the user or group can access the
resource, and if they can access the resource, how they can use it.
The access authorities are NONE, EXECUTE, READ, UPDATE, CONTROL, and
ALTER (see Table 52 on page 657).
For data set profiles and profiles in the SERVAUTH class, an entry in the access list
may also contain the name of a program that is associated with the user ID and the
access authority. In this case, the user must be executing that program to access
the resource. For more information, see Program access to data sets (PADS) in
BASIC mode on page 314 and Program access to SERVAUTH resources in
BASIC or ENHANCED mode on page 319.
For general resource profiles, an entry in the access list may also contain the name
of a RACF-defined terminal, console, JES input device, partner LU, or SERVAUTH
resource (representing the name of a network security zone) that is associated with
the user ID and the access authority. In this case, the user must be using the
terminal, console, JES input device, partner LU name, or SERVAUTH resource to
access the resource. For more information, see Conditional Access Lists for
General Resource Profiles on page 205.
Each resource also has a universal access authority (UACC) associated with it. The
UACC can be NONE, EXECUTE, READ, UPDATE, CONTROL, or ALTER. The
UACC is the access authority allowed to any group or non-restricted user who is
not authorized in the access list. UACC applies to all users, whether or not they are
Introduction
RACF-defined, unless they are defined with the RESTRICTED attribute. For
information about assigning the RESTRICTED attribute, see Defining Restricted
User IDs on page 88.
Using ID(*) on the Access List: If you have some users who are not defined to
RACF, you can use the ID(*) entry on the access list instead of UACC to ensure
that only RACF-defined users, except those with the RESTRICTED attribute, can
access the resource. The following examples illustrate the difference between
UACC(READ) and ID(*) ACCESS(READ):
v To allow all users on the system to use a terminal, specify UACC(READ) for the
profile, as follows:
RDEFINE TERMINAL profile-name UACC(READ)
Neither the ID(*) entry on the access list nor the UACC is used to allow a
restricted user to access a RACF-protected resource.
RACF Profiles
As the security administrator or a delegate defines authorized users, groups, and
protected resources, RACF builds profiles, which contain the information RACF
uses to control access to the protected resources. Each profile is owned by a user
or group. (By default, the owner of a profile is the user who creates it.)
You can work with the following types of profiles:
v User profiles
v Group profiles
v Data set profiles
v General resource profiles
User and group profiles contain descriptions of the authorized users of a
RACF-protected system. Data set and general resource profiles contain descriptions
of the resources and the levels of authority that are necessary to access these
resources.
Flexibility
Because the security requirements at every installation differ, RACF is flexible
enough to assist each installation in meeting its own security objectives. There are
a number of ways RACF accomplishes this:
v Administrative control: RACF allows you a wide range of choices in controlling
access to your installations resources. RACF allows you to use either centralized
or decentralized administration techniques by permitting you to delegate
authority, establish appropriate group ownership structures, and specify various
group-related user attributes. In addition, RACF provides a wide range of
processing options and installation exits.
All RACF command functionsexcept those performed by SET, TARGET,
RVARY, the RACF report writer command (RACFRW), and the block update
command (BLKUPD)have Interactive System Productivity Facility (ISPF) entry
panels and associated help panels. These panels make it easy to enter
command options on TSO.
Chapter 1. Introduction
Introduction
v Generic profiles: RACF generic profiles allow you, your group administrators,
and other users to define profiles that consolidate the security requirements of
several similarly-named resources that have the same access requirements.
v Protection of installation-defined classes: RACF allows you to protect your
own installation-defined resource classes. To do this, you can add entries to the
class descriptor table (CDT) for the new classes, create profiles in the class, and,
when a user requests access to a resource (or takes an action you wish to
control), issue the RACROUTE REQUEST=AUTH macro from your application to
check authorization. You can control which users and groups can access each
resource in the class by defining profiles in the class. The profiles can include
access lists and other information such as auditing, security labels, and so forth,
as with profiles in the CDT classes supplied by IBM.
See Appendix A, Supplied class descriptor table entries, on page 639 for a
description of each CDT class supplied by IBM. See Chapter 8, Administering
the Dynamic Class Descriptor Table (CDT), on page 287 for details about
creating installation-defined resource classes.
v Installation exits: RACF installation exits allow you to tailor RACF to specific
needs of your installation. For more information, see Using RACF Installation
Exits to Customize RACF on page 24.
|
|
|
|
Because of RACFs flexible design, you and your technical support personnel can
tailor RACF to operate smoothly within the local operating environment.
RACF Transparency
No users want their data destroyed or altered by other individuals (or themselves)
except when they specifically intend it. Unfortunately, users of all types are often
reluctant to take steps to protect what they have created. It is not uncommon to see
live data used as test data, or to see data deliberately under-classified to avoid
having to use the security procedures that the appropriate classification would
demand. In many cases, people find it easier to ignore security procedures than to
use them. Even conscientious users can forget to protect a critical piece of data.
The solution to implementing effective security measures, then, is to provide a
security system that is transparent (painless) to the user.
With RACF, end users need not be aware that their data is being protected for
them. Security and group administrators can use generic profiles to make using
RACF transparent to the majority of the installations end users. Administrators can
also use profile modelling to enhance RACFs transparency.
Multilevel Security
The United States Department of Defense (DoD) has established security criteria
for its computer systems and for those systems that perform government work
under contract. Each system is evaluated and awarded a security rating, depending
on the extent the system protects resources and its own processing.
10
Introduction
Although IBM does not claim compliance with any particular criteria, the multilevel
security (MLS) functions of a z/OS Version 1 Release 5 system are designed to
provide a high level of security. See z/OS Planning for Multilevel Security and the
Common Criteria for details.
Security Labels
Security labels can be associated with all users and resources in the system. The
system uses these labels to determine if access to a resource is allowed under the
mandatory access control (MAC) rules. Security labels, maintained in the RACF
database, are usually defined by the security administrator and can be changed
only by that person.
When a resource is exported to a device attached to a system, the security label of
the resource remains in effect. Whether the resource resides on a single-level
device, such as a tape drive that does not process information at different levels of
security concurrently, or a multilevel device, which is able to process data at
different security levels concurrently, the system continues to associate the security
label with the resource.
The system provides security labels on each page of print output as a default. The
system allows a user to request that no security labels be printed; however, the
system is able to audit all such requests.
Chapter 1. Introduction
11
Introduction
protects all system resources from unauthorized access down to a single user. A
user who does not have permission to access a resource can be granted this
permission by the resources owner.
Resource Reuse
Resource reuse is a practice that ensures all system resources (such as tape data
sets) that are reused, reassigned, or reallocated are purged of all residual data,
including encrypted data, belonging to the former owner.
Administering Security
The security administrators job can range from helping high-level management
initially define corporate security policy to authorizing individual end users to access
RACF-protected resources. As security administrator, you are responsible for
implementing RACF at your installation. You have the authority to review and
approve all implementation phases, select the resources to be protected, and plan
the order in which protection is implemented. You are the authority for all RACF
implementation questions. You decide the degree to which decentralization of
security controls takes place. You create profiles for the implementation team, select
the team members, and direct their efforts.
12
Introduction
eliminated. In addition, the auditor monitors operations to ensure that security
procedures are being carried out properly.
In certain installations, it is possible that some of these functions might be
combined. Further, the amount of delegation varies from installation to installation.
In some installations, there may be much delegation of authority, and there may be
more than one technical support person or more than two levels of group
administrators. Similarly, other roles may differ somewhat from the way they are
described in this publication.
For details about defining profiles to delegate administration tasks, see Planning for
Profiles in the FACILITY Class on page 218.
13
Introduction
The RACF TSO commands provide the following advantages:
v Entering commands can be faster than displaying many panels in sequence.
v Using commands from book descriptions should be relatively straightforward. The
examples in the books are generally command examples.
v Getting online help for RACF TSO commands
You can get online help for the RACF TSO commands documented in z/OS
Security Server RACF Command Language Reference.
To see online help for the PERMIT command, for example, enter:
HELP PERMIT
Note: TSO online help is not available when RACF commands are entered as
RACF operator commands.
v Getting message ID information
If a RACF TSO command fails, you will receive a message. If you do not get a
message ID, enter:
PROFILE MSGID
Reenter the RACF TSO command that failed. The message appears with the
message ID. See the z/OS Security Server RACF Messages and Codes for help
if the message ID starts with ICH or IRR.
Note: PROFILE MSGID cannot be entered as a RACF operator command.
The ISPF panels provide the following advantages:
v When you use the panels, you avoid having to memorize a command and type it
correctly. Panels can be especially useful if the command is complex or you
perform a task infrequently.
v ISPF creates in the ISPF log a summary record of the work that you do. Unless
you use the TSO session manager, the RACF commands do not create such a
record.
v From the panels, you can press the HELP key to display brief descriptions of the
fields on the panels.
v The options chosen when installing the RACF panels determine whether output
(for example, profile listings, search results, and RACF options) is displayed in a
scrollable form.
v The ISPF panels for working with password rules allow you to enter all of the
password rules on one panel. Figure 2 on page 15 shows one of these panels.
14
Introduction
ALTUSER
CONNECT
Chapter 1. Introduction
15
Introduction
DELUSER
REMOVE
Remove a user from a group and assign a new owner for group
data sets owned by the removed user.
LISTUSER
PERMIT
PASSWORD
In addition to defining individual users, you can define groups of users. Group
members can share common access authorities to a protected resource.
One benefit of grouping users is that you can authorize the entire group, as a single
unit, to access a protected resource. Another benefit is that attributes such as
OPERATIONS can be assigned so that a given user has that attribute only when
connected to a specific group, and the attribute is only effective for resources within
the scope of that group.
The following are some of the commands you might use in your group-definition
tasks.
Commands for Group Administration
ADDGROUP
ALTGROUP
DELGROUP
LISTGRP
CONNECT
REMOVE
Remove a user from a group and assign a new owner for group
data sets owned by the removed user.
PERMIT
16
Introduction
Group-SPECIAL attribute
assigned at this level.
GROUP1
GROUP2
GROUP3
USER1
GROUP4
GROUP5
Description
SPECIAL
When you assign it at the system level, the SPECIAL attribute gives the user full control over
all of the RACF profiles in the RACF database. At the system level, the SPECIAL attribute
allows the user to issue all RACF commands.
When you assign the SPECIAL attribute at the group level, the group-SPECIAL user has full
control over all of the resources that are within the scope of the group but cannot issue
RACF commands that would have a global effect on RACF processing.
Chapter 1. Introduction
17
Introduction
Table 1. User Attributes (continued)
User Attribute
Description
AUDITOR
When you assign it at the system level, the AUDITOR attribute gives the user full
responsibility for auditing the security controls and use of system resources across the entire
system. With the AUDITOR attribute at the system level, the user can specify logging options
on the RACF commands and list the auditing options of any profiles using the RACF
commands. In addition, the user can control additional logging to SMF for detecting changes
and attempts to change the RACF database and for detecting accesses and attempts to
access RACF-protected resources.
When you assign the AUDITOR attribute at the group level (that is, when you assign the
group-AUDITOR attribute), auditing authority is limited to resources that are within the scope
of the group.
OPERATIONS
When you assign the OPERATIONS attribute at the system level, the user can perform any
maintenance operations on RACF-protected resources, such as copying, reorganizing,
cataloging, and scratching data.
At the group-OPERATIONS level, authority to perform these operations is limited to resources
that are within the scope of the group.
CLAUTH
The CLAUTH (class authority) attribute allows the user to define profiles in a specific RACF
class. A user can have class authority for the USER class and any of the classes that are
defined in the class descriptor table (CDT). Examples of classes that IBM supplies in the
CDT are the TERMINAL class (for terminals) and the TAPEVOL class (for tape volumes). For
a list of valid class names, see Appendix A, Supplied class descriptor table entries, on page
639.
If the SETROPTS GENERICOWNER option is in effect, this authority is limited. See
Restricting the Creation of General Resource Profiles (GENERICOWNER Option) on page
114.
GRPACC
When a user with the GRPACC attribute creates a data set profile for a group data set,
RACF gives UPDATE access authority to other users in the group (if the user defining the
profile is a member of that group). A group data set is a data set whose high-level qualifier, or
the qualifier derived from the RACF naming convention table, is a RACF-defined group name.
ADSP
The ADSP attribute establishes an environment in which all permanent DASD data sets
created by this user are automatically defined to RACF and protected with a discrete profile.
ADSP can be assigned at the group level, in which case it is effective only when the user is
connected to that group.
REVOKE
The REVOKE attribute prevents the RACF-defined user from entering the system. REVOKE
can be assigned at the group level, in which case the user cannot enter the system and
connect to that group.
RESTRICTED
The RESTRICTED attribute prevents a user from gaining access to a protected resource,
other than a z/OS UNIX file system resource, unless the user is specifically authorized on the
access list. Global access checking, the ID(*) entry on the access list, and the UACC will not
be used to allow a restricted user to access a protected resource.
To prevent a restricted user from gaining access to a z/OS UNIX file system resource unless
specifically authorized, see Controlling access to file system resources for restricted users
on page 550.
Recommendation: You and your delegates should assign the SPECIAL, AUDITOR, and OPERATIONS attributes to
the minimum number of people necessary to administer security at your installation.
18
Introduction
and maintaining the group to which the user is connected. You can do this with the
ADDUSER, ALTUSER, or CONNECT command.
The group authorities you can assign to a user are (in order of least to most
authority): USE, CREATE, CONNECT, and JOIN. Each higher-level authority
includes the lower levels of authority. The group authorities are defined generally as
follows:
v The USE authority permits the user to access resources to which the group is
authorized.
v The CREATE authority permits the user to create group data set profiles.
v The CONNECT authority enables the user to add RACF-defined users to the
group.
v The JOIN authority enables the user to define new users and new groups.
For the specific details of each group authority, see Group Authorities on page 57.
v An OPERPARM segment, which contains initial information used when the user
enters an extended MCS console session
v A CICS segment, which contains initial information used when the user signs on
to CICS
v For z/OS UNIX, an OMVS segment, which contains z/OS UNIX information about
the user
v For OpenExtensions VM, an OVM segment, which contains OpenExtensions VM
information about the user
The Group Profile: The group profile defines a group. Some of the things the
group profile can contain are:
v Information about the group, such as who owns it and what subgroups it has
v Whether the group is a universal group
v For non-universal groups, a list of all connected users (members)
Note: Member lists for universal groups do not contain information about all
connected users, only those users with group authorities higher than USE,
Chapter 1. Introduction
19
Introduction
and those with the group-SPECIAL, group-OPERATIONS, or
group-AUDITOR attributes. For more information, see Defining Large
Groups with the UNIVERSAL Attribute on page 54.
v For non-universal groups, the group authorities of each member
v
v
v
v
Note: Information about members with group authority of USE is not available
for universal groups.
The name of an optional model profile RACF uses when a user creates new
group data set profiles
A DFP segment, which contains default DFP information for the group
For z/OS UNIX, an OMVS segment, which contains z/OS UNIX information about
the group
For OpenExtensions VM, an OVM segment, which contains OpenExtensions VM
information about the group
Protecting Resources
In the early releases of RACF, the only resources that were protected were data
sets. Over the years, enhancements to RACF, applications have broadened the
meaning of the term resource to include the following:
v Places in the system where data resides (such as data sets)
v Places in the system through which data passes during processing (such as
terminals)
v The functions by which users work with data (such as commands)
Using RACF, you can protect resources so that only authorized users can access
the resource in approved ways.
In general, you control access to a protected resource by creating a discrete or
generic profile.
Discrete profiles protect only one resource. The name of the profile identifies to
RACF which resource is protected. For example, a profile called
SMITH.REXX.EXEC in class DATASET would protect the data set named
SMITH.REXX.EXEC.
Generic profiles protect one or more resources that have the same security
requirements. In many cases, some of the characters in the resource names are
the same. For example, a profile called SMITH.** in class DATASET would protect
all of SMITHs data sets that did not have a more specific profile defined.
In most general resource classes, you can also provide a top generic profile that
protects all of the resources that are not otherwise protected.
Tip: A top generic profile for a class should have a profile name of ** (rather than *)
so that you can issue the RLIST command to display the profile itself.
Using generic profiles can greatly reduce the amount of RACF profile maintenance
done by a RACF administrator.
Examples of discrete and generic profiles are shown throughout this book.
20
Introduction
v
v
v
v
v
RACF protects data sets whether or not they are protected by passwords. When
both RACF protection and password protection are applied to a data set, access to
the data set is determined only through RACF authorization checking. That is,
password protection is bypassed.
RACF protection has an advantage over password protection. With RACF
protection, only authorized users can access the data set, With password
protection, any user who knows the password can access the data set. Also, users
can run jobs more easily using RACF protection because the system operator is not
prompted for data set passwords for RACF-protected data sets that are accessed
during a job.
To protect either a DASD or tape data set, a user issues the ADDSD command,
which creates a data set profile and stores it in the RACF database. Alternatively,
the user can specify the PROTECT=YES operand in the JCL or the PROTECT
operand on the TSO ALLOCATE command. For tape data sets, the user can also
predefine the tape volume using the RDEFINE command. (When protecting a tape
data set, RACF also creates, under certain circumstances, a profile for the tape
volume that contains the tape data set.)
You can protect data sets with either discrete or generic profiles. If a data set has
unique access-authorization or logging requirements, you should define a discrete
profile for it. If the requirements are the same for several data sets that share a
common name structure, you can define a generic profile that applies to all of the
data sets.
For information about protecting hierarchical file system (HFS) data in z/OS UNIX,
see Protecting file system resources on page 549.
Installation-Defined Classes
|
|
|
|
|
|
|
You can dynamically add new class descriptor table (CDT) entries or modify or
delete existing entries that you have added in the dynamic installation-defined CDT
by administering resources in the CDT resource class. See Chapter 8,
Administering the Dynamic Class Descriptor Table (CDT), on page 287 for details.
If you need to administer installation-defined entries in the static CDT (module
ICHRRCDE), see z/OS Security Server RACF System Programmers Guide and
consult your system programmer.
Chapter 1. Introduction
21
Introduction
When you define a new resource class, you can optionally designate that class as
either a resource group class or a resource member class. For a resource group
class, each user or group of users that is permitted access to that resource group is
permitted access to all members of the resource group. Note that for each resource
group class you create, you must also create a second class that represents the
members of the group.
RACF refers to the class descriptor table (CDT) when it needs to make a
class-related decision (such as, What is the maximum length of profile names?).
With the CDT and appropriate use of RACF authorization checking services, you
can extend RACF protection to any part of your system.
For more information on creating installation-defined classes, see Chapter 8,
Administering the Dynamic Class Descriptor Table (CDT), on page 287.
|
|
22
Introduction
v If you make a user the owner of the RACF profile, the user can modify, list, and
delete the profile, or name another user to become the owner.
v If you make a group the owner of a RACF profile, you extend the scope of the
group (and, in some cases, the scope of its superior groups) to the RACF profile.
If users have the group-SPECIAL, group-AUDITOR, or group-OPERATIONS
attributes in these groups, their authority extends to the new profile. Further, if
the profile is a group profile, the scope can extend to profiles owned by the group
itself.
For a list of the RACF commands that owners of resource profiles can issue, see
Table 53 on page 658.
The concept of ownership of any kind of RACF profile (user, group, or resource) is
different from other kinds of ownership:
v When a user attempts to access a protected resource, the user might be
considered an owner of the resource, and be given the equivalent of ALTER
access authority. This is true, for example, when a user opens a data set whose
high-level qualifier matches the users user ID.
v In data set profiles, you can specify a resource owner in the RESOWNER field.
This field is used when users allocate new SMS-managed data sets protected by
the profile. For more information, see Determining the Owner of an
SMS-Managed Data Set on page 520.
Chapter 1. Introduction
23
Introduction
24
Introduction
whether the macro is invoked in cross-memory, and which operands are specified.
See the RACROUTE REQUEST=FASTAUTH exit information in z/OS Security
Server RACF System Programmers Guide for details.
Description
IRRMIN00
Chapter 1. Introduction
25
Introduction
IRRUT400
IRRDBU00
IRRUT200
IRRUT100
IRRRID00
IRRADU00
26
Introduction
All users can run IRRUT100 for their own user IDs or any user IDs they own. To
run IRRUT100 for other users IDs, you must be defined to RACF with one of these
attributes:
v AUDITOR
v SPECIAL
v group-AUDITOR
v group-SPECIAL
IRRUT100 produces a cross-reference report that describes the occurrences of
each user ID or group name that you specify. Generic profile names are followed by
the letter G in parentheses.
For information about how to run IRRUT100 and use its output, see z/OS Security
Server RACF System Programmers Guide.
As an alternative to IRRUT100, you can use the output from the database unload
utility (IRRDBU00). For more information, see Using the Database Unload Utility
Output Effectively on page 356.
Chapter 1. Introduction
27
Introduction
structure, you must be very careful when using BLKUPD. For assistance in using
BLKUPD, contact your system programmer or the IBM support center.
For more information on BLKUPD, see z/OS Security Server RACF Diagnosis
Guide.
28
Introduction
user accesses to a protected resource) in discrete profiles. For data sets and
general resource classes, you can optionally record the following statistics:
v The number of times that a resource that is protected by a discrete profile was
accessed under a specific RACF authority level (such as READ or UPDATE).
Note: When a RACROUTE REQUEST=AUTH is accepted at a certain level of
authority (such as UPDATE), this does not necessarily mean that data is
actually updated.
v The number of times that a specific user or group accessed a resource protected
by a discrete profile.
v The date when a resource profile was last updated.
These statistics enable you to monitor the current operation of your computing
system for administrative and control purposes. You can list the statistics and other
descriptive information that is recorded in RACF profiles with various RACF
commands.
Statistics are not recorded for either of the following types of profiles:
v Generic profiles
v In-storage profiles (in classes for which the SETROPTS RACLIST command or
RACROUTE REQUEST=LIST has been issued)
Function
LISTDSD
Lists the contents of data set profiles and lets you determine
which generic profile applies to a particular data set. For a
description of how to do this, see z/OS Security Server RACF
Command Language Reference.
The listing shows:
v Owner of the profile
v UACC
v Date the profile was created
v Users and groups that are authorized to access the data set
v Your highest access authority to the data set the security
label (if there is one), and other information
v Other information
See z/OS Security Server RACF Command Language
Reference for a complete description of this listing.
Chapter 1. Introduction
29
Introduction
Table 2. Commands to List Profile Contents (continued)
Command
Function
LISTGRP
LISTUSER
RACDCERT LIST
RACDCERT LISTRING
Lists key ring information. For each digital certificate in the ring,
the listing shows:
v Ring name
v Label assigned to the certificate
v Owner of the certificate (ID(name), CERTAUTH or SITE)
v Usage within the ring
v DEFAULT status within the ring
For an example of this listing, see Figure 52 on page 563.
30
Introduction
Table 2. Commands to List Profile Contents (continued)
Command
Function
RACDCERT LISTMAP
Lists certificate name filter information. For each filter, the listing
shows:
v Label assigned to the certificate name filter
v Trust status
v Issuers name filter, if applicable
v Subjects name filter, if applicable
v Criteria information, if applicable
For examples of this listing, see Figure 58 on page 572 and
Figure 65 on page 579.
RACLINK LIST
RLIST
Chapter 1. Introduction
31
Introduction
Table 3. Command to Search for Profile Names
Command
Function
SEARCH
Searches the RACF database for the names of profiles (in a particular
resource class) that match the criteria you specify. For example, you can
search for all TERMINAL profiles that have a security level specified. You
can save the list of profile names in a data set. You can easily specify
RACF commands (or other commands) to be saved with the profile
names, generating a CLIST that you can run against the profiles.
Answer:
Question:
How can I tell if (or how) a resource (other than a data set) is
protected?
Answer:
This lists the profiles in the GTERMINL class that protect terminal
T1.
32
Introduction
This example does not work for terminals protected by a generic
member in the GTERMINL class.
Question:
How can I find the data sets that a user can access?
Answer:
Note: To find out how a user can access a particular data set
(READ, UPDATE, and so forth), analyze the profile
protecting the data set to determine how RACF
authorization processing would respond to an access
request.
3. Find the entries in the global access checking table for the
DATASET class:
RLIST GLOBAL DATASET
These entries allow all users access to data sets that match.
Question:
How can I find the general resources that a user can access?
Answer:
This must be done one class at a time. For each class, take the
following steps (which are similar to the steps for data sets):
1. Find the names of the profiles the user has access to:
SEARCH CLASS(classname) USER(userid)
33
Introduction
well over 50 resource classes (from terminals to JES input
devices to tape volumes). Thus, for any particular class, an
auditor or administrator would have to consult with the profile
owners (or system support) to determine exactly which
resources a generic profile protects.
3. Find the entries in the global access checking table for the
class:
RLIST GLOBAL classname
These entries allow all users access to data sets that match.
Question:
How can I find the user or group profiles a user can list or alter?
Answer:
Question:
Answer:
Question:
Answer:
See z/OS Security Server RACF Command Language Reference for more detail on
the output of these commands.
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
36
36
37
37
38
38
39
40
40
41
41
42
44
46
This chapter outlines the planning that your installation should do before you install
RACF.
This book describes the security administrators tasks as they relate to RACF. A
successful security program, however, goes well beyond the relationship of the
security administrator to the software security program your company has chosen to
protect its computerized data. This chapter discusses some of the early work you
and other people must do before installing RACF.
35
Responsibility
Security Administrator
The technical support person is normally a system programmer who installs RACF and
maintains the RACF database. This person has overall responsibility for the
programming aspects of system protection and provides technical input on the
feasibility of implementing various aspects of the implementation plan. In addition, the
technical support person writes, installs, and tests RACF exit routines, if they are
required. If you will have RACF installed on more than one system in your installation,
the implementation team should include a technical support person for each system on
which you are using RACF. For more information, see z/OS Security Server RACF
System Programmers Guide.
Auditor
The auditor provides guidance on good auditing practice as it relates to data security
and user access. This person implements the necessary RACF logging and reporting
options to provide an effective audit of security measures. For more information on the
auditors duties, see z/OS Security Server RACF Auditors Guide.
User Representative
36
Responsibility
Other Users
The rest of this chapter discusses some of the major responsibilities of the security
implementation team.
37
The task of protecting large quantities of data can take on significant proportions
unless you can acquire this protection automatically. In the case of RACF,
protecting data is quite simple and, after the controls are in place, practically free
from administrative overhead.
You must determine the appropriate UACC, access lists, and other information
(such as security classification, if used) for each profile.
For resources that have unique security requirements, you must create discrete
profiles.
v You can also protect existing general resources (such as tape volumes or
terminals) by using the RDEFINE command. If several resources in the same
class have the same access requirements, you can use one profile to protect
them. Not only does this save space, but it also saves administrative time.
If the names of the resources contain some identical characters, you can usually
create generic profiles whose names contain the *, **, or % character to protect
the resources.
For certain classes, such as terminals, DASD volumes, and others, you can
create resource grouping profiles to protect resources whose names do not lend
themselves to the use of the *, **, or % character.
For any general resource class, you can define a RACF variable that can be
used in the profile names in general resource classes. For more information
about how to select the type of profile to protect a resource, see Choosing
Among Generic Profiles, Resource Group Profiles, and RACFVARS Profiles on
page 199.
You must determine the appropriate UACC, access lists, and other information
(such as security classification, if used) for each profile.
For resources that have unique security requirements, you must create discrete
profiles.
38
them has the ADSP attribute or has specified the PROTECT=YES operand on
the JCL DD statement that creates the data set. This automatic definition of
discrete data set profiles occurs when the resource manager issues RACROUTE
REQUEST=DEFINE.
Notes:
1. ADSP and PROTECT=YES always cause the creation of a discrete profile,
which is desirable for data sets that have unique access-authorization
requirements. If your data sets do not have unique access-authorization
requirements, consider using generic profiles.
2. By themselves, ADSP and PROTECT=YES allow only the creator of the data
set to access the protected data. One way to allow other users access to the
protected data set is to use the PERMIT command to place them (or groups
of which they are members) on the access list of the profile with the desired
access authority. Also, if the data set being created is a group data set, and
the user creating it has the GRPACC attribute in that group, all members of
the group are given UPDATE access authority to the group data set.
v Automatic Profile Modeling: One way you can allow other users to access
protected data is by using automatic profile modeling. When you use automatic
profile modeling, the profile that protects a new user or group data set
automatically has an access list copied from the model profile. Therefore, users
defined in the access list of the model can access the newly-created user or
group data set. Automatic modeling is thus valuable for establishing the initial
access list for newly-created generic data set profiles. You can use automatic
profile modeling for profiles that are created by the users ADSP attribute, the
PROTECT=YES operand of the JCL DD statement, or the ADDSD command.
Profile Modeling
Profile modeling enables RACF or an installation exit routine to copy information
(such as the access list, owner, and logging options) from an existing (model)
profile when defining a new profile. (The copied profile is not necessarily identical to
the model profile. For a description of the differences, see Possible Changes to
Copied Profiles When Modeling Occurs on page 40.) This copying greatly reduces
the effort needed to create new profiles. Some examples of using profile modeling
are:
v A user can copy information from an existing profile into a new profile by using
the FROM operand (and related operands) on the ADDSD or RDEFINE
commands. RACF uses the specified profile as a model when creating the new
profile. However, profile segment information (CICS, DFP, DLFDATA,
LANGUAGE, OPERPARM, SESSION, TSO, WORKATTR, and so on) is not
copied to the new profile.
v A user can copy the access list from an existing profile into another existing
profile using the FROM operand (and related operands) on the PERMIT
command.
v For data sets, an installation can use automatic profile modeling. A user with the
SPECIAL attribute can specify MODEL(USER), MODEL(GROUP), or
MODEL(GDG) on the SETROPTS command. These operands specify that RACF
is to use a model data set profile for selected users, groups, or GDG data sets.
If the SETROPTS MODEL options are in effect, the MODEL operands of the
ADDUSER, ADDGROUP, ALTUSER, and ALTGROUP commands specify the
data set profile that is to be used as a model from which to copy information into
new data set profiles.
For more information on this topic, see Automatic Profile Modeling for Data
Sets on page 163.
Chapter 2. Organizing for RACF Implementation
39
v If the preceding methods are not sufficient, an installation can also use a
REQUEST=DEFINE exit routine to supply either the name of a model profile or
the profile itself.
40
41
Organizing
from existing job statement information can be a significant migration aid. It
could help you avoid the administrative effort of adding the USER=operands to
existing job statements.)
3. Look at data set names to determine the local naming conventions for data
sets. Can you determine to which functional group a data set belongs by looking
at the name? Can you say This is an IMS database, or This data set belongs
to the payroll group?
It is likely that several naming conventions already exist. RACF options enable
you to handle most existing variations.
Whatever you choose, consider carefully the longer term security objectives. Adding
new groups and users to an existing structure presents few administrative
problems. Even deleting users and groups can be done without much difficulty.
However, a major reassignment of user IDs and group names, although possible, is
best avoided by careful initial selection.
42
Organizing
SYS1
Group-SPECIAL
USER1
IBMUSER
GROUP1
Connect
X.DATA
GROUP1.DATA
GROUP3
USER2
USER2.DATA
Y.DATA
USER3
USER3.DATA
U3A
in class TIMS
GROUP2
GROUP2.DATA
Z.DATA
USER4
USER4.DATA
Figure 4. User and Group Relationships
In
v
v
v
v
Figure 4:
The users default groups are their owning groups.
Groups X and Y exist and are owned by GROUP1.
Group Z exists and is owned by GROUP2.
The highest level group, SYS1, owns subgroups GROUP1 and GROUP3 and the
user IBMUSER.
v GROUP1 owns subgroup GROUP2 and the users USER1 and USER2.
v USER1 is connected to GROUP1 with group-SPECIAL authority. This gives
USER1 (who is a RACF administrator) control over GROUP1s resources and
resources in GROUP1s scope, but not over GROUP3s resources.
43
Organizing
Note: If you run with list-of-groups checking inactive (that is, with the SETROPTS
NOGRPLIST option in effect), the scope of USER1s group-SPECIAL
attribute is limited to his default group or the group he specified when
logging on, and the groups below that group in the hierarchy. For more
information on list-of-groups checking, see Activating List-of-Groups
Checking (GRPLIST Option) on page 112.
v If you want them to be able to change their password intervals, how to use the
PASSWORD command.
v How to use the LISTUSER command to list their own profile information.
Users of RRSF Functions: RRSF users need to understand RRSF network
concepts and know RRSF node names. Depending on your security plan, some
RRSF users might also need to know how to:
v Direct commands
v Synchronize passwords
v Establish and approve user ID associations using the RACLINK command.
Users Who RACF-Protect General Resources: Depending on your security plan,
users might work with profiles in the TAPEVOL, JESSPOOL, or other general
resource classes. These users must know:
v How to define and modify profiles in the general resource class, including
whether generic profiles are allowed in the class
v What user IDs and group names they can use when giving access to the profiles
v The meaning of the access authorities (such as NONE, READ, and WRITE) in
the general resource class
v What your installations security policy is towards specific security enhancements
like security levels, categories, and security labels
44
Organizing
In addition to the education needed for administrators who are using generic
profiles, even more education is required on generic profiles for those who are
switching to enhanced generic naming (that is, from the SETROPTS NOEGN to the
SETROPTS EGN option).
For more information, see Defining Profiles for General Resources on page 195
and the sections of this book that describe how to use the class.
|
|
|
|
|
|
|
Technical Support Personnel: Users who install the RACF component of the
Security Server must be familiar with migration planning considerations and the
steps that are required to install or reinstall RACF. For complete RACF information,
see all of the following z/OS publications:
v z/OS Migration
v z/OS and z/OS.e Planning for Installation
v z/OS Summary of Message and Interface Changes.
Users who maintain the RACF database must be familiar with the RACF utilities,
which are described in z/OS Security Server RACF System Programmers Guide.
Group Administrators: Group administrators either have one of the group
authorities, have a group attribute (such as group-SPECIAL), or own group
resources. These users need to use the information in this book and z/OS Security
Server RACF Command Language Reference.
RACF Auditors: Users with the AUDITOR attribute should see z/OS Security
Server RACF Auditors Guide for information on using RACF for auditing.
Note that if ISPF and TSO/E are installed, the user can use the RACF ISPF panels
to perform the same functions as the RACF commands. Using the RACF ISPF
panels frees users from the need to know the details of command syntax.
Note: You can ask a user with the AUDITOR attribute to issue the SETROPTS
command with the CMDVIOL operand. This causes RACF to log all of the
RACF command violations that it detects. The auditor can then use the
RACF report writer to produce a printed audit trail of command violations.
From the report, you can determine how many command violations are
occurring and which users are causing the violations. A significant number of
command violations, especially when RACF is first installed, may mean
users need more education. The report can also help you to identify any
specific users who are persistently trying to alter profiles without the proper
authority.
z/OS Security Server RACF Command Language Reference contains detailed
information on the RACF commands used.
Programmers Writing Unauthorized Applications: Programmers writing
unauthorized applications can use the RACROUTE macro to request many
security-related services, including controlling access to protected resources
(RACROUTE REQUEST=AUTH).
Note: Your installation can create installation-defined resource classes. If your
installation creates profiles in those classes, an application can issue a
RACROUTE REQUEST=AUTH to check if a user has sufficient authority to
complete a user action. How much authority is needed for any particular user
action is defined by the way in which the application invokes the
45
Organizing
RACROUTE REQUEST=AUTH macro. For more information on creating
installation-defined classes, see z/OS Security Server RACF System
Programmers Guide.
Programmers Writing Authorized Applications: Programmers writing authorized
applications (that is, APF-authorized programs) can use the RACROUTE macro to
request security-related services, including:
v Identifying and verifying users (RACROUTE REQUEST=VERIFY)
v Replacing or retrieving fields in RACF profiles (RACROUTE
REQUEST=EXTRACT)
For more information on using the RACROUTE macro, see z/OS Security Server
RACROUTE Macro Reference.
Summary
As an overall strategy in organizing for RACF implementation, the implementation
team should strive for a policy of security by evolution, rather than revolution.
Wherever transparency can be used, it should be. In some cases, you must actively
solicit management support.
You should examine organizational structures to establish the most efficient profile
ownership structures, educate users with the level of information they need to
perform their assigned functions, and prepare guidelines for the various
administrators.
Finally, you and the implementation team should prepare an implementation plan to
guide the work of the team. Table 5 provides a checklist for the implementation
team to use while preparing the implementation plan. Note that this checklist
represents only a starting point; it is not meant to be exhaustive.
Table 5. Checklist for Implementation Team Activities
Item
Comments
Objectives
Protection
Naming Conventions
h What installation data set or general resource naming conventions already exist?
h Are changes necessary?
h Does implementing RACF provide an opportunity to enforce naming conventions?
h If so, can they be enforced across the entire installation or only over a subset of the
installation?
h Immediately or eventually?
46
Organizing
Table 5. Checklist for Implementation Team Activities (continued)
Item
Comments
Organization
h Can the definition of RACF groups (and their associated users) be mapped to the
existing organizational structure?
h What changes to the organizational structure, if any, are necessary?
h How is RACF to be controlled and administered?
h Which functions are to be retained centrally?
h Which functions are to be delegated, wholly or in part?
h Which users should have what RACF attributes?
Transparency
RACF Tailoring
h Which RACF exits are to be used, if any, and under what conditions?
Authorizations
h What authorizations are required for the program properties table (PPT), APF libraries,
and similar items?
Recovery
Violation Procedures
h What security procedures for logging, reporting, and auditing must be established?
Subsystems
h What are the security requirements for IMS, CICS, and other subsystems?
Storage Management
Subsystem (SMS)
Test Plan
Education
h What is the plan for preparing user documentation and other educational material?
h If it is, what is required for your SMS constructs, application IDs, and data set owners?
h Should there be a newsletter for most users and more detailed education for group
administrators?
Install RACF
Monitor
h After beginning to define groups, users, generic profiles, and data for a pilot group,
how will progress against your implementation plan be monitored?
h What procedures will be established to ensure that future applications receive the
appropriate security considerations?
47
Organizing
48
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
50
50
51
51
51
52
52
52
53
53
54
54
54
55
55
55
56
56
56
57
57
57
58
59
59
60
61
62
63
65
65
66
66
66
67
67
67
68
68
69
70
70
71
72
72
73
73
73
73
73
73
74
49
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
74
75
77
78
78
78
79
79
80
84
85
85
85
86
87
87
88
88
89
89
89
91
93
Types of Groups
When you define a group, you should consider the basic purpose of the group. Is it
an administrative group, a holding group, a data control group, a functional group,
or a user group?
When setting up RACF groups, keep in mind that the maximum number of users
that you can connect to any one group is approximately 5900. See the section on
determining storage requirements for profiles in z/OS Security Server RACF Macros
and Interfaces for information about how to determine the exact maximum number.
For groups that may become large, and for which a quick listing of members is not
needed, you may wish to consider defining the groups using the UNIVERSAL
operand of the ADDGROUP command. Universal groups may be appropriate for
holding groups and other types of groups. See Defining Large Groups with the
UNIVERSAL Attribute on page 54.
Administrative Groups
You can create a group simply as an administrative convenience. For example, you
might create a group to represent an organizational entity, such as a region or a
division.
50
Holding Groups
A popular technique that retains user definition centrally, yet allows the effective use
of group administrators, is to establish a holding group. You define all users
centrally and initially connect them to a group named HOLD with the minimum of
authorities. HOLD does not appear in any access lists, and therefore has no real
significance to the user.
Group administrators, to whom you give CONNECT (but not JOIN) authority, can
connect the appropriate users to the groups under their control and change the
users default group name as appropriate. This technique allows the installation to
assign correct account numbers and control other installation considerations while
allowing flexibility in the grouping of the user population.
Note: A group cannot contain more than approximately 5900 users. Therefore, if
you have more than this number of users, you cannot assign them to a
single holding group. Also, you should be aware that extremely large groups
can have performance implications for the RACF database. For more
information, see z/OS Security Server RACF System Programmers Guide.
Functional Groups
A group can represent a functional area of the installation for the purpose of data
sharing. For example, a financial analyst might need to access a variety of
resources across many groups, such as accounting, payroll, marketing, and others.
Of course, the owners of each resource could permit the financial analyst to access
their resources by placing the analysts user ID on an access list. But if a new
financial analyst takes over the job, it is then necessary to add the new user ID to
each RACF profile. Likewise, the RACF profiles must be updated when the analyst
no longer has a need to access the data. This arrangement involves a great deal of
unnecessary activity by the resource owners.
Instead, you can create a group that represents the financial analyst function and
permits access to the data defined to the group. Access to the entire range of data
can then be managed by controlling the user population in the defined group. For
those cases involving one-time access, owners of the needed data would simply
PERMIT access by the defined group. Where appropriate, the group name could be
included in profile access lists to ensure automatic availability of needed data to the
financial analyst group. New financial analysts could be connected to the group, as
required, to gain access to the entire range of data. Likewise, analysts could be
removed from the group whenever necessary. By controlling the user population of
such a functional group, resource profile changes on a day-to-day basis become
unnecessary.
51
User Groups
You can define a group to serve as an anchor point for users who otherwise have
no common access requirements. For example, engineers and scientists, as well as
other problem-solving users, might have no need to access application-related data
in the system. Their only interest might be in their own personal data. You can
place this set of users in a single group that has no access to other data.
Also, you can define groups based on access level. For example, if PAY.DATA is a
RACF-defined data set, two groups could be defined, PAYREAD and PAYUPDTE,
both of which would appear in the PAY.DATA access list, but with READ and
UPDATE access, respectively. Any users requiring access would be connected, as
appropriate, by the group administrator.
Group Profiles
When you define a group to RACF, you create a group profile in the RACF
database. A group profile consists of segments: a base segment and optionally,
DFP, OMVS, and OVM segments.
Each segment of a group profile consists of fields. When you define a groups
profile (using the ADDGROUP command) or change a groups profile (using the
ALTGROUP command), you can specify the information contained in each field of
each segment. To define or change information in a non-base segment of a group
profile, you must have the SPECIAL attribute or at least UPDATE authority to the
segment through field-level access control.
You can list the contents of an entire group profile or the contents of individual
segments of the group profile using the LISTGRP command. To display information
in a non-base segment of a group profile, you must have the SPECIAL or AUDITOR
attribute or at least READ authority to the segment through field-level access
control.
For more information, see Field-Level Access Checking on page 213 and
Controlling Access to the DFP Segment on page 520.
For information on how to use the ADDGROUP, ALTGROUP, and LISTGRP
commands, see z/OS Security Server RACF Command Language Reference.
OWNER
SUPGROUP
TERMUACC or NOTERMUACC
For RACF-protected terminals: Indicates whether to allow access
based on the UACC of the terminal profile
52
DATA
Installation-defined data
MODEL
Name of the profile used as a model for new group data set
profiles, either generic or discrete
UNIVERSAL
Universal group
DATACLAS
Groups default data class for attributes used during allocation of all
new data sets
MGMTCLAS
STORCLAS
To define or change information in the DFP segment of a group profile, you must
have the SPECIAL attribute or at least UPDATE authority to the segment by way of
field-level access control. To display information in the DFP segment of a group
profile, you must have the SPECIAL attribute or at least READ authority to the
segment by way of field-level access control. For more information, see Controlling
Access to the DFP Segment on page 520.
To define or change information in the OMVS segment of a group profile, you must
have the SPECIAL attribute or at least UPDATE authority to the segment through
field-level access control.
To display information in the OMVS segment of a group profile, you must have the
SPECIAL attribute or at least READ authority to the segment through field-level
access control.
You can authorize users to access to the OMVS segment of a group profile using
the GROUP.OMVS.* or the GROUP.OMVS.GID profile in the FIELD class.
When a GID is assigned to a group, all users connected to this group as their
default group who have an z/OS UNIX user identifier (UID) in their user profile can
use z/OS UNIX functions and can access z/OS UNIX files based on the GID and
UID values assigned. If a users current connect group is not their default group, a
GID must also be assigned to the current connect group.
For information, see Defining group identifiers (GIDs) on page 534 and Using
default OMVS segments in USER and GROUP profiles on page 541.
53
To define or change information in the OVM segment of a group profile, you must
have the SPECIAL attribute or at least UPDATE authority to the segment through
field-level access control.
To display information in the OVM segment of a group profile, you must have the
SPECIAL attribute or at least READ authority to the segment through field-level
access control.
To define or change information in the TME segment of a group profile, you must
have the SPECIAL attribute or at least UPDATE authority to the segment through
field-level access control.
To display information in the TME segment of a group profile, you must have the
SPECIAL attribute or at least READ authority to the segment through field-level
access control.
The TME segment fields are intended to be updated only by the Tivoli product,
which manages updates, permissions, and cross references. Security administrators
should directly update TME fields only on an exception basis.
54
55
Attention
If the users membership in the group allows the user to create profiles,
and the user becomes the OWNER of such profiles, the user might still
have access to the profiles after the revoke date.
56
Group Authorities
Each user in a group requires a level of group authority for that group. If a user is
connected to several groups, the user has a level of group authority for each group.
The group authorities are described in Table 6.
Table 6. Group Authorities
Authority
Functions Permitted
USE
A user with the USE group authority can enter LISTDSD, RLIST
the system under control of that group, and
can access resources (such as data sets,
terminals, and others) to which the group is
authorized.
57
Functions Permitted
CREATE
JOIN
plus:
GROUP, AUTHORITY, or UACC
operands only
All operands except
SPECIAL/NOSPECIAL,
OPERATIONS/NOOPERATIONS,
and AUDITOR/NOAUDITOR
LISTGRP
REMOVE
All operands
All operands
ADDUSER
ALTGROUP
DELGROUP
All operands
LISTGRP
For a list of the RACF commands that the group authorities allow users to issue,
see Table 51 on page 656.
58
59
6. If the group requires access to z/OS UNIX resources, alter the profile to include
an OMVS segment with an z/OS UNIX group identifier (GID). For example:
ALTGROUP DEPTA OMVS(GID(100))
60
As specified, the CLIST operand generates a CLIST that you can run to
list all of the information in the data set profiles. This can help you
assess whether to use the profiles as models.
2) You can use the FROM operand on the ADDSD command to create new
profiles modeled on the old profiles.
5. To research the following steps, use the IRRRID00 utility to list the occurrences
of the group name in the RACF database. For information, see Using the
RACF Remove ID Utility (IRRRID00) on page 372.
6. For each subgroup of the group to be deleted, change the subgroups superior
group to an existing group.
ALTGROUP subgroupname SUPGROUP(new-superior-groupname)
7. If the group is the owner of any profiles (the groups group name was specified
on the OWNER operand), change the owner of the profiles to a new group or
user.
Tip: Use the appropriate command for changing profiles, such as ALTUSER,
ALTGRP, ALTDSD, or RALTER.
8. Remove the group from any access lists in which the groups group ID is
specified.
Tip: Use the DELETE operand on the PERMIT command.
9. After all occurrences of the group name are deleted from the RACF database,
use the DELGROUP command to delete the group profile.
Defining Users
As a general objective, all users should be defined to RACF. Users who are not
defined to RACF can use the system virtually unimpeded, unless, of course, they
attempt to access data to which they are unauthorized.
The users you must initially define are those you have selected for the pilot project
and the central core of personnel who maintain and operate the system itself. Other
users can then be defined as determined by convenience and the priority of their
security needs.
You should consider defining the following users to RACF:
v Interactive users of CICS, IMS, TSO/E, NetView, or other products that support
logging on at a terminal.
v z/OS UNIX users. You use RACF commands to define users to z/OS UNIX. The
z/OS UNIX attributes are kept in the OMVS segment of the users profile and can
be specified in addition to any existing attributes. The new attributes extend the
users capabilities to include the use of z/OS UNIX functions. In order to use
z/OS UNIX services, a user must have z/OS UNIX attributes defined, such as an
z/OS UNIX user identifier (UID) in his or her user profile and an z/OS UNIX
group identifier (GID) in the group profile of his or her current connect group (the
users default group or the one specified on the TSO LOGON screen or job
card). For more information, see Chapter 20, RACF and z/OS UNIX, on page
533.
v Users who submit batch jobs without first logging on to a terminal (such as
through a physical card reader).
v MVS or JES system operators. You should work with your MVS or JES system
programmer to determine which MVS and JES system operators should be
defined to RACF. For more information, see Defining and Grouping Operators
on page 470.
Chapter 3. Defining Groups and Users
61
Started procedures.
Node names in an NJE network.
RJP or RJE remote workstations or nodes.
Console IDs if LOGON(AUTO) is specified in the CONSOLxx member of
SYS1.PARMLIB. For more information, see z/OS MVS Initialization and Tuning
Reference.
User Profiles
When you define a user to RACF, you create a user profile in the RACF database.
A user profile consists of a base segment and, optionally, any of the following
segments: CICS, DCE, DFP, KERB, LANGUAGE, LNOTES, NDS, NETVIEW,
OMVS, OPERPARM, OVM, PROXY, TSO, and WORKATTR.
Each segment of a user profile consists of fields. When you define a users profile
(using the ADDUSER command) or change a users profile (using the ALTUSER
command), you can specify the information contained in each field of each segment
of the profile.
To define or change information in a non-base segment of a user profile, including
your own, you must have the SPECIAL attribute or at least UPDATE authority to the
segment through field-level access checking.
To list the contents of a user profile or the contents of individual segments of the
user profile, use the LISTUSER command.
To display the information in a non-base segment of a user profile, including your
own, you must have the SPECIAL or AUDITOR attribute or at least READ authority
to the segment through field-level access checking.
IBM recommends that you use field-level access control to let users view, and
optionally modify, some or all of the information in the non-base segments of their
user profiles.
For more information, see Field-Level Access Checking on page 213, Controlling
Access to the DFP Segment on page 520, and Field-Level Access Checking for
TSO on page 529.
When you use the RACDCERT command to add a certificate definition and
associate it with a specified RACF-defined user ID, information about the definition
is added to the user profile. To see the certificate definitions, enter:
RACDCERT LIST
To issue this command, you must have one of the following authorities:
62
To issue this command, you must have one of the following authorities:
v The SPECIAL attribute
v Sufficient authority to resource IRR.DIGTCERT.LISTMAP in the FACILITY class:
READ access to IRR.DIGTCERT.LISTMAP to list this information for yourself
UPDATE access to IRR.DIGTCERT.LISTMAP to list this information for others
When you use the RACDCERT command to add a certificate key ring and
associate it with a specified RACF-defined user ID, information about the definition
is added to the user profile. To see the ring definitions, enter:
RACDCERT LISTRING
To issue this command, you must have one of the following authorities:
v The SPECIAL attribute
v Sufficient authority to resource IRR.DIGTCERT.LISTRING in the FACILITY class:
READ access to IRR.DIGTCERT.LISTRING to list this information for yourself
UPDATE access to IRR.DIGTCERT.LISTRING to list this information for
others
When you use the RACLINK command to establish a user ID association,
information about the association is added to the user profile. To see the user ID
associations, enter:
RACLINK LIST
Users identification
NAME
Users name
OWNER
DFLTGRP
AUTHORITY
PASSWORD
Users password
63
Date on which RACF prevents the user from having access to the
system
RESUME
Date on which RACF lets the user have access to the system again
UACC
WHEN
Days of the week and hours of the day during which the user has
access to the system
ADDCATEGORY
Users installation-defined security category
SECLEVEL
CLAUTH
SPECIAL
AUDITOR
Installation-defined data
ADSP
Indicates that all permanent data sets the user creates are to be
RACF-protected with discrete profiles
GRPACC
Indicates that other group members can have access to any group
data set the user protects with a data set profile
MODEL
Name of the data set model profile to be used when creating new
data set profiles, either generic or discrete
OIDCARD
RESTRICTED Indicates that global access checking, the ID(*) entry on the
access list, and the UACC will not be used to allow this user
access to a protected resource.
To prevent a restricted user from gaining access to a z/OS UNIX
file system resource unless specifically authorized, see Controlling
access to file system resources for restricted users on page 550.
SECLABEL
CERTNAME
CERTLABL
The certificate labels for the profiles in the DIGTCERT class that
are associated with this RACF user ID
CERTPUBK
The public key associated with a public key certificate. This is the
BER-encoded public key as specified in the certificate.
CERTSJDN
64
NMAPLABL
The labels for the certificate name filters that are associated with
this RACF user ID
See z/OS Security Server RACF Command Language Reference for information
about the authorization required to create, change, or view information in the base
segment.
OPIDENT
OPPRTY
TIMEOUT
Time that the operator is allowed to be idle before being signed off
XRFSOFF
UUID
HOMECELL
HOMEUUID
AUTOLOGIN
65
DATACLAS
Users default data class for attributes used during allocation of all
new data sets
MGMTCLAS
STORCLAS
To define or change information in the DFP segment of a user profile, including your
own, you must have the SPECIAL attribute or at least UPDATE authority to the
segment through field-level access checking. To display information in the DFP
segment of a user profile, you must have the SPECIAL attribute, the AUDITOR
attribute, or at least READ authority to the segment through field-level access
checking. For more information, see Controlling Access to the DFP Segment on
page 520.
MAXTKTLFE
ENCRYPT
66
Users short name for use with Lotus Notes for z/OS
Users user name for use with Novell Directory Services for OS/390
67
DOMAINS
Domain identifier
IC
MSGRECVR
NGMFADMN
OPCLASS
CPUTIMEMAX
Users z/OS UNIX RLIMIT_CPU (maximum CPU time)
FILEPROCMAX
Users z/OS UNIX maximum number of files per process
HOME
MEMLIMIT
MMAPAREAMAX
Users z/OS UNIX maximum memory map size
PROCUSERMAX
Users z/OS UNIX maximum number of processes per UID
PROGRAM
SHMEMMAX
THREADSMAX
Users z/OS UNIX maximum number of threads per process
UID
68
AUTH
CMDSYS
DOM
KEY
LEVEL
LOGCMDRESP
Indicates whether command responses received by the operator
are to be recorded on the hardcopy log
MFORM
MIGID
MONITOR
MSCOPE
ROUTCODE
STORAGE
UD
FSROOT
HOME
69
To define or change information in the OVM segment of a user profile, you must
have the SPECIAL attribute or at least UPDATE authority to the segment through
field-level access control.
To display information in the OVM segment of a user profile, you must have the
SPECIAL attribute or at least READ authority to the segment through field-level
access control.
COMMAND
JOBCLASS
MSGCLASS
MAXSIZE
SIZE
SECLABEL
UNIT
USERDATA
If a user logs on to TSO and you have defined a TSO segment in the users profile,
TSO checks the users authority to use certain TSO resources such as account
numbers and logon procedures. If the user is authorized to use a resource such as
an account number, TSO continues building a session for the user. Otherwise, TSO
prompts the user for a valid account number.
If a user logs on to TSO and you have not defined a TSO segment for that user,
TSO checks the SYS1.UADS data set for the information it needs to build a
session. If TSO does not find an entry for the user in SYS1.UADS, the user is
denied access to the system.
You can move TSO user attribute information from SYS1.UADS to the RACF
database. (SYS1.UADS contains an entry for each TSO user that describes the
attributes that regulate the users access to the system.) When you move this TSO
70
71
WABLDG
Building on SYSOUT
WADEPT
Department on SYSOUT
WAROOM
Room on SYSOUT
WAADDR1
WAADDR2
WAADDR3
WAADDR4
WAACCNT
Account number
72
User Attributes
User attributes are extraordinary capabilities, limitations, or environments that can
be assigned to a user either all of the time or when the user is connected to a
specific group or groups. When an attribute is to apply all of the time, it is specified
at the system level and is called a user attribute. When an attribute is to apply only
Chapter 3. Defining Groups and Users
73
74
75
|
|
|
|
|
SETROPTS OPERAUDIT
To reduce the number of users who have the OPERATIONS attribute at the system
level (and therefore have the attribute for all resources in the system), you can
assign the OPERATIONS attribute at the group level. When you do, the
group-OPERATIONS users authority is limited to resources within the scope of the
group. For more information, see The Scope of Authority for the Users with
Group-Level Attributes on page 80 and User Attributes at the Group Level on
page 79.
OPERATIONS and DASDVOL Authority: If a person needs to perform
maintenance activities on DASD volumes, it is more efficient (for RACF processing)
and better (for limiting the resources the person can access) to give the person
authority to those volumes using the PERMIT command than to assign the person
the OPERATIONS or group-OPERATIONS attribute. To give the person authority to
those DASD volumes, define the volumes to RACF and add the person to the
76
|
|
|
|
|
|
2. You must activate the class for which a user has the CLAUTH attribute to
enable the user to define profiles in that class.
3. A users authority to define profiles extends to any class that has the same
POSIT value in the class descriptor table (CDT). For example, if you give a user
CLAUTH(TERMINAL), that user can also define profiles in class GTERMINL,
because both of these classes have the same POSIT value.
For information about the POSIT values of classes in the dynamic portion of the
CDT, and for general information about the CDT, see Chapter 8, Administering
the Dynamic Class Descriptor Table (CDT), on page 287. For the information
about the POSIT values of the classes in the static CDT, see the description of
the class descriptor table (CDT) in z/OS Security Server RACF Macros and
Interfaces.
You should give the CLAUTH attribute only to those users who are responsible
for defining profiles to RACF in the specified classes and in any classes with the
same POSIT value.
4. A user to whom you assign the CLAUTH attribute for the USER class is
authorized to define new users to RACF with the ADDUSER command, as long
as the user is the owner of or has JOIN authority in the new users default
group.
The CLAUTH attribute can be delegated only by a user with the SPECIAL attribute,
or by a user who has both the authority to update the user profile and the CLAUTH
attribute for the class authority being delegated.
For a list of the RACF commands that the CLAUTH attribute allows users to issue,
see Table 50 on page 655.
Chapter 3. Defining Groups and Users
77
78
Attention
A DASD data set is defined to RACF at allocation. If the data set disposition is
changed at deallocation (through dynamic deallocation), the change is not
reflected in the RACF database. For example, if the data set disposition is
DELETE at allocation and KEEP at deallocation, the data set is not
automatically RACF-protected. However, RACF performs generic profile
checking if you have activated this option for the DATASET class by specifying
GENERIC(DATASET) on the SETROPTS command.
79
|
|
|
|
|
Resources, not users or other groups, that are within the scope of the group include
the following.
v Resources owned by the group (for example, GROUP1.DATA owned by
GROUP1)
v Resources that are owned by users who are owned by the group (for example,
USER2.DATA owned by USER2 who is owned by GROUP1)
v Resources that are owned by subgroups that are owned by the group (for
example, GROUP2.DATA owned by GROUP2, which is owned by GROUP1)
v Resources that are owned by subgroups that are owned by subgroups, owned by
the group, and so on (for example, GROUPZ.DATA owned by GROUPZ, which is
owned by GROUP2, which in turn is owned by GROUP1).
Note that the scope of the group does not extend to the following resources:
v Resources that are owned by groups that are owned by users who are owned by
the group (for example, GROUPY.DATA owned by GROUPY which is owned by
USER2 who is owned by GROUP1)
v Resources owned by users who are, in turn, owned by users who are owned by
the group (for example, USER6.DATA owned by USER6 who is, in turn, owned
by USER5 who is owned by GROUP2).
By establishing the group structure so that subgroups are owned by their superior
groups, the authority of the group-SPECIAL, group-OPERATIONS, and
group-AUDITOR user can be made to percolate down through the group tree
structure as far as the security administrator desires. When a users attribute
percolates down from a group to which the user is connected with the group
attribute, the users authority in the subgroups is the same as if the user was
connected directly to the subgroups with the group attribute.
Note: The data security monitor (DSMON) produces a group tree report that lists,
for each requested group, all of its subgroups, all of the subgroups
subgroups, and so on. This report can be very useful in checking to which
subgroups the authority of the group-SPECIAL, group-OPERATIONS, or
group-AUDITOR applies. For more information on the group tree report, see
z/OS Security Server RACF Auditors Guide.
The limits of the security administrator, group administrator, auditor, and operations
personnel authority at the group level are described in Table 7 on page 81. (Of
course, these users continue to have whatever authorities they possess from other
sources, such as ownership, that are not covered by their group-level authorities.)
80
General
Resources
Group-SPECIAL Attribute:
A user who has the group-SPECIAL attribute has full authority to work with:
v Resource profiles that are owned by that group
v Resource profiles belonging to users or groups that are owned by the group
To create new resources, the user must have the CLAUTH attribute in the applicable
class.
Group-AUDITOR and Group-OPERATIONS attributes:
A user who has the AUDITOR or OPERATIONS attribute can perform all of the functions
of an auditor or operator, but is limited to the same above subset of resources as the
user with the group-SPECIAL attribute.
Users
Group-SPECIAL Attribute:
A user with the group-SPECIAL attribute has full authority to work with:
v User profiles that are owned by the group
v User profiles that are owned by a subgroup that is owned by the group, by a subgroup
that is owned by a subgroup that is owned by the group, and so on
The group-SPECIAL user must have the CLAUTH attribute in a class in order to give the
CLAUTH attribute to another user in that class. The group-SPECIAL user cannot give a
user the SPECIAL, AUDITOR, or OPERATIONS attribute at a system level, but can
assign these attributes at the group level. To create new users, the group-SPECIAL user
must have the CLAUTH attribute in the USER class.
Group-AUDITOR Attribute:
A user who has the group-AUDITOR attribute can perform all of the functions of an
auditor, but is limited to the same subset of users as the user with the group-SPECIAL
attribute.
Groups
Group-SPECIAL Attribute:
A user who has the group-SPECIAL attribute has authority over that group, over
subgroups owned by that group, and so on. The group-SPECIAL user can connect any
user to, or remove any user from, any group that is included in this authority.
The following two figures show the scope of authority of a group-SPECIAL user.
Figure 5 on page 83 shows a typical authority structure containing three major
groups: Groups 1, 2, and 3.
81
82
SYS1
IBMUSER
GROUP1
GROUP1.DATA
GROUPX
GROUPX.DATA
GROUP3
USER2
USER2.DATA
GROUPY
GROUPY.DATA
Connect
GROUP2
GROUP2.DATA
USER5
USER3
USER4
USER3.DATA
GROUP2.CLIST
USER4.DATA
U4A
in class
TIMS
GROUPZ
USER5.DATA
GROUPZ.DATA
USER6
USER6.DATA
Figure 5. Group-Level Authority Structure
83
SYS1
Group-SPECIAL
USER1
Connect
IBMUSER
GROUP1
GROUP1.DATA
GROUPX
GROUPX.DATA
GROUP3
USER2
USER2.DATA
GROUPY
GROUPY.DATA
Connect
GROUP2
GROUP2.DATA
USER5
USER3
USER4
USER3.DATA
USER4.DATA
GROUP2.CLIST
U4A
in class
TIMS
GROUPZ
USER5.DATA
GROUPZ.DATA
USER6
USER6.DATA
Figure 6. Scope of Authority of a Group-SPECIAL User
84
85
86
Similarly, to control when users can access the system from a specific terminal,
specify the WHEN operand on the RDEFINE and RALTER commands for the
appropriate profile. For example, to specify that terminal TRM07C can be used at
any time during the week, but not at all during the weekend, enter:
RDEFINE TERMINAL TRM07C WHEN(DAYS(WEEKDAYS))
87
A protected user ID will have the PROTECTED attribute displayed in the output of
the LISTUSER command.
To remove the PROTECTED attribute from an existing user ID, use the ALTUSER
command to assign a password:
|
|
|
88
A restricted user ID has the RESTRICTED attribute displayed in the output of the
LISTUSER command.
89
90
6. Create a top generic profile for the user in the DATASET class using the
ADDSD command.
For example, if the users user ID is STEVEH, enter:
ADDSD STEVEH.** UACC(NONE)
7. If users at your installation manage their own resource profiles, give them the
information they need. For example, they might need to use portions of z/OS
Security Server RACF Command Language Reference.
8. If the user is to define general resource profiles, (as, for example, an
administrator might), give the user the CLAUTH attribute in the appropriate
classes and the information needed for working with those profiles, for example,
the JESSPOOL class.
Note: If the SETROPTS GENERICOWNER option is in effect, you must create
a top profile for the user in the JESSPOOL class, make the user the
owner of the profile, and give the user CLAUTH(JESSPOOL). For more
information, see Letting Users Create Their Own JESSPOOL Profiles
on page 503 and Defining Profiles for SYSIN and SYSOUT Data Sets
on page 501.
9. If needed, give the user access to RACF-protected resources. This can be done
using one or both of the following:
v Connect the user to groups that have the same access requirements as this
user, using the CONNECT command.
For example, to allow user STEVEH to have access to his departments
resources (that is, to resources belonging to group DEPTA), enter:
CONNECT STEVEH GROUP(DEPTA) OWNER(DEPTA)
2. If the user is already logged onto the system, or has a job running on the
system, ask the system operator to examine any logons (or jobs) for the user
and cancel those that should not be allowed to continue.
Chapter 3. Defining Groups and Users
91
As specified, the CLIST operand generates a CLIST that you can run
to list all of the information in the data set profiles. This can help you
assess whether to use the profiles as models.
2) You can use the FROM operand on the ADDSD command to create
new profiles modeled on the old profiles.
If the user has profiles in other classes (such as the JESSPOOL,
JESJOBS, and NODES classes) that might have the users user ID in their
profile names, use the FILTER operand on the SEARCH command. For
example:
SEARCH CLASS(classname) FILTER(**.userid.**)
CLIST(RDELETE classname)
5. To research the following steps, use the IRRRID00 utility to list the
occurrences of the user ID in the RACF database. For information, see Using
the RACF Remove ID Utility (IRRRID00) on page 372.
6. If the user is the owner of group data set profiles (the users user ID was
specified on the OWNER operand on the ADDSD or ALTDSD command for the
group data set profile), decide which user or group is to be the new owner of
the group data set profiles.
Tip: If the user is the owner of any group data set profiles, specify the new
owner on the OWNER operand of the REMOVE command.
7. If the user is a TSO user and has a SYS1.UADS entry, work with the TSO
administrator to delete the entry.
8. If the user is a CICS user and has an entry in the CICS signon table, work
with the CICS administrator to delete the entry.
9. Remove the user from any access lists in which the users user ID is specified.
Tip: To do this, use the DELETE operand on the PERMIT command.
For example, suppose user ELVIS has update permission to a set of data sets
defined in the PROJA.** profile. To remove ELVIS from the profiles access list,
enter:
PERMIT PROJA.** ID(ELVIS) DELETE
10. If the user owns any RACF profiles, change the OWNER field of the profile.
92
93
In order to:
Create new
RACF users
JOIN
Connect or remove
existing
RACF users
CONNECT
Owner
of
Group
AND
GroupSPECIAL
OR
CLAUTH
(USER)
SystemSPECIAL
94
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 95
. 96
. 96
. 96
. 97
. 98
. 98
. 98
. 98
. 99
. 99
. 100
. 101
. 102
. 102
. 102
. 102
. 102
. 103
. 103
. 103
. 103
. 104
This chapter contains an overview of using security levels, categories, and labels to
classify users and data.
Reference: For detailed information and procedures for implementing security
levels, categories, and labels to achieve a multilevel-secure environments, see z/OS
Planning for Multilevel Security and the Common Criteria.
95
Security Classification
Attention
Because RACF performs global access checking before many of the other
kinds of access authority checks, such as security label checking or access list
checking, global access checking might allow access to a resource you are
otherwise protecting. To avoid a security exposure to a sensitive resource, do
not create an entry in the global access checking table for a resource
protected by a profile that contains a security level, security category, or
security label (if the security label in the profile is SYSLOW, a global access
checking table entry with an access authority of READ can be created). See
Authorization Checking for RACF-Protected Resources on page 719.
Security Labels
Security label authorization checking is dependent on the concept of controlling
user access to resources on the basis of three factors:
1. The sensitivity of the data that the resource contains
2. The users authorization to access information at that level of sensitivity
3. The purpose for which the user is attempting to access the resource
The security administrator indicates the sensitivity of the data in the resource as
well as the authorization of the user by assigning appropriate security labels in the
resource or user profile.
96
Security Classification
Security label authorization checking involves comparing the users security label
with the security label of the resource. A user who lacks sufficient authorization is
prevented from accessing information in the resource.
Three requested access levels are supported for security label authorization
checking:
Read-only
Write-only
Read-write
For detailed information, see Security Label Authorization Checking on page 736.
97
Security Classification
Attention
Before converting from the use of LEVEL to SECLEVEL, all user profiles must
have the appropriate SECLEVELs (if the SECDATA class is activated).
98
Security Classification
99
Security Classification
2. All of the categories (if any) used to define the security label of the resource are
the same as the categories used to define the users current security label.
To have equivalence, the names of the security labels do not have to be the same.
When security labels are equivalent, each security label can be said to dominate
and be dominated by the other.
To be considered disjoint, the users current security label and the resource security
label must not be equivalent and neither one can dominate the other. When a
disjoint occurs, both of the following conditions are true:
1. The set of security categories that defines the users current security label
includes only a subset, or none, of the security categories that define the
security label of the resource.
2. The set of security categories that defines the security label of the resource
includes only a subset, or none, of the security categories that define the users
current security label.
Note that a disjoint can occur in the relationship between the security labels of two
users.
100
Security Classification
6. If your system includes products that do not support security labels when they
invoke RACF, you should consider using the SETROPTS COMPATMODE
option. See Activating Compatibility Mode For Security Labels
(COMPATMODE Option) on page 137.
7. If your installation uses the SETROPTS MLFSOBJ option, all files and
directories must have security labels. No users (except trusted and privileged
started tasks) will be able to access files and directories that do not have
security labels. See Restricting Access to z/OS UNIX Files and Directories
(MLFSOBJ Option) on page 139.
8. If your installation uses the SETROPTS MLIPCOBJ option, all resources
related to interprocess communication must have security labels. No users
(except trusted and privileged started tasks) will be able to access interprocess
communication resources that do not have security labels. See Restricting
Access to Interprocess Communication Objects (MLIPCOBJ Option) on page
139.
9. If your installation uses the SETROPTS MLNAMES option, users cannot view
the names of data sets, files, and directories that cannot be read from their
current user security labels. Users are similarly restricted from seeing
authorized resource names when they list catalogs and directories. This option
is also called name-hiding. Note that if the SECLABEL class is not active
while MLNAMES is active, data set names will still be hidden from users who
do not have at least READ access to the data sets. See Using Name-hiding
(MLNAMES Option) on page 140.
10. If your installation uses the SETROPTS SECLBYSYSTEM option, certain
security labels may be activated on certain systems, based on the system
identifiers specified in the SECLABEL class profile for each security label. See
Activating Security Labels by System Image (SECLBYSYSTEM Option) on
page 140.
101
Security Classification
3. The profile covering the terminal has a security label.
When you are migrating from security levels and security categories to security
labels, consider setting the SECLABEL field using the ADDUSER and ALTUSER
commands as follows:
ADDUSER userid SECLABEL(security-label)
ALTUSER userid SECLABEL(security-label)
When you issue the LISTUSER command with any operand, such as the user ID,
the default security label will be displayed.
When RACF displays a users security label, RACF also displays the security level
and any security categories that define it.
Note: The SECLABEL class must be active when you execute this command.
For example:
SEARCH CLASS(TERMINAL) SECLABEL(EAGLE)
This command displays all of the terminal profiles that have security label EAGLE
specified.
SEARCH CLASS(USER) SECLABEL(EAGLE)
This command displays all of the user profiles in which security label EAGLE is the
default security label.
Restrictions:
1. Your results will be different if SECLBYSYSTEM is active.
102
Security Classification
2. You can search only one class at a time. If you do not specify a class, the
DATASET class is searched by default.
3. To list all profiles, you must have SPECIAL or AUDITOR authority. Otherwise,
RACF lists only those profiles that you own, that have high-level qualifiers
matching your user ID, or to which you have at least READ access authority.
4. If the SECLABEL class is active, RACF lists only the names of profiles that
have security labels that are equal or lower level to that of the users current
security label.
1.
_____________________________________________________________
2.
Identify which users require the write-down privilege and determine which
level of access they require: READ or UPDATE authority. Both access
authorities allow users to query, set and reset the write-down mode of their
address spaces by executing a user command. The following user commands
are available for this purpose:
For TSO/E users
103
Security Classification
Security Server RACF Command Language
Reference for syntax information.)
For z/OS UNIX users
UPDATE
READ
_____________________________________________________________
3.
Authorize users for the write-down privilege by adding those users, or one of
their groups, to the access list with either READ or UPDATE authority, based
on the users requirements.
Example:
PERMIT IRR.WRITEDOWN.BYUSER CLASS(FACILITY) ID(users or groups) ACCESS(READ)
PERMIT IRR.WRITEDOWN.BYUSER CLASS(FACILITY) ID(users or groups) ACCESS(UPDATE)
_____________________________________________________________
4.
When SETROPTS MLS is active, refreshing the FACILITY class also causes
ACEEs to be purged from the VLF.
_____________________________________________________________
For example, if SMITH needs to use security labels EAGLE and THRUSH, create
profiles like:
SMITH.EAGLE.* UACC(NONE) SECLABEL(EAGLE)
SMITH.THRUSH.* UACC(NONE) SECLABEL(THRUSH)
104
Security Classification
Some services create new data sets based on the users user ID. If the SETROPTS
MLS option is in effect, authorization failures occur whenever the user uses a
security label that is different from the security label that was in use when the data
set was created. Applications that create such data sets should consider using the
REXX RACVAR function package to determine the current security label for
inclusion in the names of such data sets.
v Read-only
In general, these resources pose no problem if they are protected by a profile
with the lowest security label that is used. By being protected in this manner,
they can be accessed any time the user is logged on. For example, system
resources that are read by all users should be protected with the SYSLOW
security label.
v Read mostly
These resources must also be protected by a profile at the lowest security label
that is used. This allows the user to access them for read any time the user is
logged on. If the resource needs to be updated (for example: new names being
added to the nickname file userid.NAMES.TEXT), the user must log on at his or
her lowest security label in order to update the file.
v Read/write but able to be preallocated
Data sets such as the ISPF list and log data sets fall into this category. These
data sets can be allocated from within a logon CLIST with a different data set
used for each security label. It should be noted, however, that due to multiple
data sets being used, updates to a data set at one security label would not cause
updates to occur to a data set that is used for the same purpose at a different
security label (for example, an SPF profile data set).
v Data sets written to from multiple levels
An example of this type of data set is the SPF EDIT recovery data sets. The
CLIST ISREDRTI that creates the ISPF edit recovery table sets the default data
set names for the recovery data sets to:
&ZUSER.&ZAPPLID&ZEROS&I.BACKUP
RACF has provided sample exits in SYS1.SAMPLIB that show how to solve the
problem (data sets written to from multiple levels) for ISPF and PDF data sets.
A data set profile would cause a security label authorization failure when an
attempt was made to write to the data set while logged on with a security label
that was different from the one in the profile. Applications that create data sets in
this manner can be used only if each user has access to only one security label.
When RACF checks a users authority to use a terminal or console, or the authority
of outbound work to use a JES writer, RACF uses reverse MAC (mandatory
access checking). That is, the security label of the profile protecting the writer must
be equal to or greater than the security label of the user or outbound work.
105
106
108
109
109
110
110
111
112
113
113
114
115
115
116
116
117
117
118
118
119
120
120
121
122
122
123
123
123
124
124
125
126
126
126
127
127
127
128
129
129
130
130
131
131
132
132
132
133
133
134
134
107
RACF Options
SETROPTS Options Related to Security Labels . . . . . . . . . . .
Restricting Changes to Security Labels (SECLABELCONTROL option)
Preventing Changes to Security Labels (MLSTABLE Option) . . . . .
Quiescing RACF Activity (MLQUIET Option) . . . . . . . . . . . .
Preventing the Copying of Data to a Lower Security Label (SETROPTS
MLS Option) . . . . . . . . . . . . . . . . . . . . . .
Activating Compatibility Mode For Security Labels (COMPATMODE Option)
Enforcing Multilevel Security (MLACTIVE Option) . . . . . . . . . .
Restricting Access to z/OS UNIX Files and Directories (MLFSOBJ Option)
Restricting Access to Interprocess Communication Objects (MLIPCOBJ
Option) . . . . . . . . . . . . . . . . . . . . . . . .
Using Name-hiding (MLNAMES Option) . . . . . . . . . . . . .
Activating Security Labels by System Image (SECLBYSYSTEM Option)
SETROPTS Options for Automatic Control of Access List Authority . . . .
Automatic Addition of Creators User ID to Access List . . . . . . . .
Automatic Omission of Creators User ID from Access List . . . . . .
Specifying the Encryption Method for User Passwords . . . . . . . . .
Using Started Procedures . . . . . . . . . . . . . . . . . . .
Assigning RACF User IDs to Started Procedures . . . . . . . . . .
Protected User IDs . . . . . . . . . . . . . . . . . . . .
Undefined User IDs . . . . . . . . . . . . . . . . . . . .
Authorizing Access to Resources . . . . . . . . . . . . . . . .
Setting Up the STARTED Class . . . . . . . . . . . . . . . .
Defining Profile Data . . . . . . . . . . . . . . . . . . .
Specifying STARTED Class Profile Names . . . . . . . . . . .
Using the Started Procedures Table (ICHRIN03) . . . . . . . . . .
Started Procedure Considerations . . . . . . . . . . . . . . .
. 135
135
. 135
. 136
. 136
137
. 137
139
. 139
. 140
140
. 141
. 141
. 141
. 142
. 143
. 143
. 143
. 144
. 144
. 144
. 145
. 145
. 146
. 147
This chapter describes the RACF options you can specify to control how RACF
operates on your system.
108
RACF Options
109
RACF Options
Restrictions: The password syntax rules you define are not enforced when users
log on with their current passwords. Therefore, changes you make to your
password syntax rules will not affect users with current passwords. Your changes
will take effect for current users only when they change their passwords. For new
users, the changes will take effect when the new user logs on for the first time. In
addition, password syntax rules are not enforced when you define a temporary
password for another user using the ALTUSER PASSWORD command unless you
specify the NOEXPIRED option.
You establish these rules by using the RULEn suboperand specified by the
PASSWORD operand of the SETROPTS command. The following example shows
how you can establish a syntax rule for new passwords for your installation.
SETROPTS PASSWORD(RULE1(LENGTH(8) VOWEL(1,3,5:8) NUMERIC(2,4)))
The command establishes syntax rule RULE1. Syntax rule RULE1 specifies that
new passwords must be 8 characters in length, must contain vowels in positions 1,
3, 5, 6, 7, and 8, and must contain numbers in positions 2 and 4. Thus, the
password A2E2EAEE follows the rule, and C3DMIER5 does not.
If you do not define a value for every position specified by the LENGTH value, the
undefined positions can contain any combination of alphanumeric characters.
Note: If the RACF ISPF panels are installed, you should consider using the RACF
ISPF panels to set up password syntax rules.
110
RACF Options
v The WARNING suboperand enables you to specify when RACF should issue a
password expiration message. If you specify WARNING, RACF issues a
message each time a user logs on to TSO or submits a batch job with a
password a specified number of days before the password expires. The following
example specifies that RACF issue a warning message 5 days before a
password expires:
SETROPTS PASSWORD(WARNING(5))
Note: When the user attempts to change his or her own password, RACF
verifies that the intended new password does not match a previous entry
in the history list, saves the current password in the list, and changes the
password to the new value. NOHISTORY specifies that the new password
information is compared only to the current password. Any previous
password history information is neither deleted nor changed.
v REVOKE enables you to specify how many consecutive password verification
attempts RACF is to permit before it revokes a user ID on the next attempt.
Protected user IDs are not revoked based on consecutive incorrect password
attempts. See Defining Protected User IDs on page 87 for more information.
The following example specifies that RACF is to allow 4 consecutive incorrect
password attempts. A fifth incorrect password attempt revokes the user ID:
SETROPTS PASSWORD(REVOKE(4))
After RACF revokes the user ID, you can activate the user ID with the RESUME
operand of the ALTUSER command if you have the SPECIAL or group-SPECIAL
attribute or are the owner of the profile. If NOREVOKE is in effect, consecutive
incorrect passwords are ignored.
111
RACF Options
Notes:
1. New users who never use the system are not revoked because of inactivity.
This is true unless an administrator has used the ALTUSER or PASSWORD
commands to set their password or someone makes an unsuccessful attempt to
log on.
2. If you issue the SETROPTS INACTIVE(30) command and a user has not done
any of the following in 31 days:
v Logged on
v Submitted a job
v Changed their password by any method
v Attempted an unsuccessful logon
v Received a directed command or output from RACF
that user is considered revoked. However, the user is not actually revoked and
the output of the LISTUSER command does not show that the user is revoked
until the user next attempts to log on or submit a job.
3. When you allow the user to start using the system again (using the RESUME
operand on the ALTUSER command), RACF resets the effective date with which
the period of inactivity starts.
If NOINACTIVE is in effect, RACF does not check the user ID against an unused
user ID interval.
If NOINITSTATS is in effect, the INACTIVE, REVOKE, HISTORY, and WARNING
options cannot be used.
112
RACF Options
assigned the attribute. (For more information on the scope of a group, see
Chapter 3, Defining Groups and Users, on page 49.)
For example, in Figure 6 on page 84, say USER1 is also connected to GROUP3,
but without group-SPECIAL for GROUP3. If list-of-groups checking is not active and
USER1 logs on to GROUP3, RACF does not recognize that USER1 has
group-SPECIAL authority to GROUP1 resources.
If list-of-groups checking is active and USER1 logs on to GROUP3, USER1 has
group-SPECIAL authority to GROUP1 resources. However, USER1 does not have
group-SPECIAL authority to GROUP3 resources. Likewise, if list-of-groups checking
is active and USER1 logs on to GROUP1, USER1 has group-SPECIAL authority to
GROUP1 resources, but not GROUP3 resources.
If you have the SPECIAL attribute, you can specify list-of-groups checking by using
the GRPLIST option of the SETROPTS command as shown in the following
example:
SETROPTS GRPLIST
To use current connect group checking, specify the NOGRPLIST option on the
SETROPTS command.
IBM recommends the use of the GRPLIST option because it eases administration
and minimizes the number of times the user might have to log off and log back on
to access resources.
113
RACF Options
When RACF is first initialized, the switch password and the status password are
both set to YES.
114
RACF Options
v All characters preceding the asterisks or percent signs (* or ** or %) match the
corresponding characters in the resource name exactly.
v The characters matching the percent signs (%) in the less-specific profile are not
an asterisk (*) or period (.) in the resource name. The length of the profile must
be the same for this case.
For example, to allow USERX to RDEFINE A.B in the JESSPOOL class, you need
profile A.* in the JESSPOOL class, which is owned by USERX.
To cancel this option, specify NOGENERICOWNER on the SETROPTS command.
Attention
Issuing SETROPTS GENERICOWNER can prevent users with the CLAUTH
attribute in general resource classes from creating profiles as they are
accustomed to. Therefore, make these users OWNER of appropriate top
generic profiles in the class. For an example, see Delegating Authority to
Profiles in the FACILITY Class on page 219.
IBM does not recommend that you activate all RACF classes. You should activate
only the classes that are important to your installation, as some classes have a
default return code of 8. Those classes should only be activated after you have
defined the necessary profiles to allow access to resources. RACF prevents you
from accidentally activating all classes using the SETROPTS CLASSACT(*)
operand.
For information on activating protection for specific general resource classes, check
the index of this book for the class name.
If you have the SPECIAL attribute, you can also specify the NOCLASSACT operand
on the SETROPTS command. This operand indicates that RACF performs no
access authorization checking for selected general resource classes. If you specify
NOCLASSACT(*), RACF does not perform access authorization checking for any of
the classes in the class descriptor table (CDT). However, you can still define
resource profiles to RACF through the RDEFINE command.
115
RACF Options
v PROCACT
v PROCESS
No profiles can be defined in these classes. They are used to define the auditing
options for z/OS UNIX security events. The classes do not need to be active to
control auditing.
SETROPTS LOGOPTIONS can be used to specify logging options for all of the
classes. Additionally, SETROPTS AUDIT options are used to control auditing of
some events for the FSOBJ and the PROCESS classes. For more information on
the SETROPTS command, see z/OS Security Server RACF Command Language
Reference.
If you specify GENERIC(*), you activate generic profile checking for the DATASET
class and all classes in the class descriptor table (CDT) except resource group
classes (such as GTERMINL and GDASDVOL).
If you want to perform maintenance on the generic profiles in the RACF database,
you may want to temporarily deactivate generic profile checking but allow RACF
command processors to update generic profiles. You can specify this environment
with the NOGENERIC and GENCMD operands of the SETROPTS command. The
following example shows how to specify this environment for the DATASET class.
SETROPTS NOGENERIC(DATASET) GENCMD(DATASET)
116
RACF Options
To see how that resource is being accessed and how many times it is being
accessed, you can initiate STATISTICS. Remember that the initiation of
STATISTICS is system-wide for all discrete profiles within a particular resource
class across your system. Depending on the number of discrete profiles in the
various resource classes, turning on STATISTICS may negatively affect
performance.
STATISTICS Example
To help you understand how RACF maintains statistics, consider the following:
v USER1.DATA is a data set profile.
v USER1.DATA has a universal access (UACC) of READ.
v USER2 is in the access list with READ authority.
v USER3 is in the access list with UPDATE authority.
v GROUP1 is in the access list with READ authority.
v GROUP2 is in the access list with UPDATE authority.
v USER4 belongs to both groups, GROUP1 and GROUP2.
v There is no entry for &RACUID.* in the global access checking table.
If USER1 reads USER1.DATA, the overall READ count in the profile increases by
one. No counts in the access list are changed, because access lists are not used
when users process their own data.
If USER2 reads the data set, two counts are updated: the overall READ count and
the count in USER2s access list entry.
If USER3 reads the data set, two counts are updated: the overall READ count and
the count in USER3s access list entry (even though the entry says UPDATE). The
counts in the access list merely record that access was granted by that entry. The
access granted can be as specified by the entry, or a lower level, as in this
example.
If list-of-groups processing is active (through SETROPTS GRPLIST) and USER4
reads the data set, RACF examines the access list to see if any of USER4s groups
are in the list. If any of the groups is found, the entry with the highest authority is
used. In this case, the access list entry for GROUP2 (UPDATE) increases, along
with the overall READ count for the profile.
If any other user or group reads the data set, it gains access because of the
universal access of READ, and the overall READ count increases. If any user with
OPERATIONS authority updates the data set, the overall UPDATE count increases.
117
RACF Options
If, for your system, you do not need all of the statistics, you do not need to use the
above four options, and you have the SPECIAL attribute, you can issue SETROPTS
NOINITSTATS which reduces the RACF database I/O associated with a
REQUEST=VERIFY function.
If NOINITSTATS is in effect, the INACTIVE, REVOKE, HISTORY, and WARNING
options cannot be used.
If you have the SPECIAL attribute, you can also specify the INITSTATS operand on
the SETROPTS command to indicate that you want RACF to record
REQUEST=VERIFY statistics, as shown in the following example:
SETROPTS INITSTATS
118
RACF Options
If you specify GLOBAL(*), you activate global access checking for all valid classes.
Valid classes you may specify are:
v The DATASET class
v The NODE grouping class
v The SECLABEL grouping class
v All other classes defined in the class descriptor table, except for the remaining
grouping classes
When you use the SETROPTS command to activate (or reactivate) global access
checking for a class, RACF builds (or updates) the in-storage global access
checking tables. However, you can use the RDEFINE and RALTER commands to
maintain profiles on the database, regardless of whether the global access checking
option is active for a class.
NOGLOBAL is in effect when RACF is first initialized.
Note: The SETROPTS GLOBAL(classname) command is propagated when the
system is enabled for sysplex communication.
Notes:
1. PROTECTALL requires that you RACF-protect all data sets. This protection
includes tape data sets if your installation specifies TAPEDSN on the
SETROPTS command.
2. After defining, altering, or deleting a generic profile, the following command
ensures that the profile is in effect during authorization checking:
SETROPTS GENERIC(DATASET) REFRESH
3. Started procedures with the privileged or trusted attribute and users with the
SPECIAL attribute can access a data set that has no RACF profile, even if
protect-all is in effect. These exceptions allow recovery if a critical profile is
accidentally deleted.
4. If there is a global access checking table entry of &RACUID.**/ALTER for data
sets, users can create unprotected data sets even if protect-all is in effect.
However, other users cannot access those data sets.
Protect-all also has a warning option that allows the request even though the data
set is not protected, but sends a warning message to the user and the MVS
console. For example:
SETROPTS PROTECTALL(WARNING)
119
RACF Options
v Ensure that all RACF users and groups have a generic data set profile of
the form:
high-level-qualifier.*
Protect-all applies to all data sets that do not have system-generated temporary
names and that do not have names that begin with **SYSUT. You can extend
protect-all to include temporary data sets with system-generated names by using
the naming conventions table to modify the name that RACF uses to look like a
permanent name. If your installation uses nonstandard names for temporary data
sets, you must also predefine entries in the global access checking table that allow
these data sets to be created and accessed.
If you have the SPECIAL attribute, you can also deactivate protect-all processing by
using the NOPROTECTALL operand.
NOPROTECTALL is in effect when RACF is first initialized.
Go to section
SETROPTS JES(BATCHALLRACF)
SETROPTS JES(XBMALLRACF)
SETROPTS JES(EARLYVERIFY)
SETROPTS JES(NJEUSER)
SETROPTS JES(UNDEFINEDUSER)
|
|
|
|
|
|
|
|
120
RACF Options
|
|
|
For a detailed view of the sequence of RACF checking, see Authorizing Access to
RACF-Protected Resources on page 720. The CATDSNS processing is covered in
Step 29 on page 724.
There are some exceptions. For example, CATDSNS processing does not fail the
request:
v If the user has READ access to a resource called ICHUNCAT.dataset-name in
the FACILITY class
v If the data set is protected by a discrete profile
v If the data set is created and used within the same job or TSO session. If this
data set is not cataloged before job termination or TSO logoff, it is not accessible
to any other job or TSO session.
To activate the CATDSNS option, enter:
SETROPTS CATDSNS
The CATDSNS option prevents users from using STEPCAT or JOBCAT statements.
An installation that wants to allow its users to use those functions can override the
restriction by granting users READ access to the ICHUSERCAT resource in the
FACILITY class.
In addition, if SETROPTS MLACTIVE is in effect, RACF produces one or more type
83 SMF records whenever a data set profile is added, changed, or deleted. This
record contains the list of the cataloged data sets that are affected by the change,
addition, or deletion of the profile.
If the SETROPTS CATDSNS option is not in effect, the list of the affected data sets
may not be complete. Therefore, using the SETROPTS CATDSNS option allows
you to list and audit the data sets affected by the change in a particular profile.
Because the SETROPTS CATDSNS option prevents users without the SPECIAL
attribute from accessing uncataloged data sets (except as noted above), the list of
data set names provided by the DSNS operand on the LISTDSD command is
identical to the list of all data sets affected by the profile change.
You can also specify CATDSNS(WARNING), which allows accesses, but sends a
warning message to the user and the security administrator.
To cancel the CATDSNS option, specify NOCATDSNS on the SETROPTS
command.
When you activate this option, RACF allows you to specify the generic character **
(in addition to the generic characters * and %) when you define any of the following:
v A generic profile in the DATASET class
v An entry in the global access checking table for the DATASET class
Note that enhanced generic naming changes the meaning of the generic character *
for generic data set profiles. (SETROPTS EGN has no effect on general resource
Chapter 5. Specifying RACF Options
121
RACF Options
profiles.) In addition, a generic profile such as hlq.* defined while SETROPTS
NOEGN is in effect, will appear as hlq.*.** when listed after EGN is activated.
For information on specifying profile names with enhanced generic naming, see
z/OS Security Server RACF Command Language Reference.
To deactivate enhanced generic naming for the DATASET class, issue the
SETROPTS command with the NOEGN operand.
Note: IBM strongly recommends that you not deactivate enhanced generic naming
after data set profiles have been created while enhanced generic naming
was active.
NOEGN is in effect when a RACF database is first initialized using IRRMIN00.
With the SETROPTS NOADSP operand in effect, RACF does not automatically
create discrete data set profiles when users who have the ADSP attribute create
new data sets. IBM recommends the NOADSP option because it reduces the
number of data set profiles in the RACF database. Using generic data set profiles is
generally more efficient.
You can reinstate normal ADSP processing with the ADSP operand.
ADSP is in effect when a RACF database is first initialized using IRRMIN00.
122
RACF Options
Putting the REALDSN option into effect ensures that log printouts and operator
messages identify data sets by their real names rather than by the data set names
that are created by installation exit routines to conform to RACF naming
conventions. To specify this option, you must have the SPECIAL attribute.
Note: This option has no effect on single-qualifier data set names (unless they
have been modified by the naming conventions table or an exit routine),
whose real data set names continue to be the prefixed ones. For more
information, see z/OS Security Server RACF System Programmers Guide.
NOREALDSN is in effect when a RACF database is first initialized using IRRMIN00.
Attention
If you do not issue the SETROPTS command with the PREFIX operand, a
system ABEND occurs if a discrete profile is created when a user tries to
create a data set with a single-qualifier name.
To specify the PREFIX or NOPREFIX operands, you must have the SPECIAL
attribute.
If you have the SPECIAL attribute, you can also deactivate tape data set protection
by using the NOTAPEDSN operand on the SETROPTS command.
NOTAPEDSN is in effect when a RACF database is first initialized using IRRMIN00.
Chapter 5. Specifying RACF Options
123
RACF Options
If you have the SPECIAL attribute, you can also deactivate tape volume protection
by using the NOCLASSACT(TAPEVOL) operand on the SETROPTS command.
Note: If your installation has a tape management system, you might consider
running with TAPEDSN active and TAPEVOL inactive. In this case, you
maintain tape volume security because the tape management system
controls access to volumes. For more information, see Choosing Which
Tape-Related Options to Use on page 175.
RACF uses the default security retention period for a tape data set in the following
situations:
124
RACF Options
v When a user defines a data set (using ADDSD) without specifying a retention
period
v When a user defines a data set (using ADDSD) or changes a data set profile
(using ALTDSD) and specifies RETPD(0)
v When a user specifies RETPD=0 on the JCL statement
v When a user specifies EXPDT=todays date on the JCL statement
v When a user omits the RETPD and EXPDT parameters on the JCL statement
For example, if a user specifies RETPD=0 on the JCL statement and your
installation has established a default retention period of 365 using SETROPTS
RETPD, RACF uses 365 as the retention period for the users data set.
The default security retention period when RACF is installed is RETPD(0), to
indicate no retention period.
Notes:
1. The RACF security retention period is independent of the data set retention
period specified by the EXPDT/RETPD JCL operands. However, the two
retention periods are the same initially if the data set has a discrete profile. You
can modify the security retention period by using the ALTDSD command, but
you cannot change the data set retention period in the tape label of tape data
sets.
2. The security retention period tape data sets has meaning only when both the
TAPEVOL class and TAPEDSN are active.
If you specify the ERASE operand without the ALL suboperand, erase-on-scratch
processing applies only to DASD data sets that do not have system-generated
temporary names and do not have names that begin with **SYSUT. You can extend
Chapter 5. Specifying RACF Options
125
RACF Options
erase-on-scratch to include temporary data sets with system-generated names by
using the naming conventions table to modify system-generated names to look like
permanent names. In this case, you need not specify ALL.
If you have the SPECIAL attribute, you can also deactivate erase-on-scratch
processing by using the NOERASE operand on the SETROPTS command.
NOERASE is in effect when a RACF database is first initialized using IRRMIN00.
You must specify a 3-character language code unless RACF is running with the
MVS message service active.
LANGUAGE(PRIMARY(ENU) (SECONDARY(ENU)), which means American
English, is in effect when a RACF database is first initialized using IRRMIN00.
126
RACF Options
To activate this function, issue the SETROPTS GENLIST(classname), where
classname is one of the following:
v A member class specified in the class descriptor table (CDT)
v Grouping class RACFVARS or NODES
RACF processes classname and all classes that share the same POSIT value on
their class descriptor table (CDT) entries. The following example shows how to
activate SETROPTS GENLIST processing for the TERMINAL class.
SETROPTS GENLIST(TERMINAL)
After you activate SETROPTS GENLIST processing for a general resource class,
RACF copies a generic profile in that class from the RACF database into common
storage the first time an authorized user requests access to a resource protected by
it. The profile is retained in common storage and is available to all authorized users,
thereby saving real storage because the need to retain multiple copies of the same
profile (one copy for each requesting user) in common storage is eliminated. Also,
because RACF does not have to retrieve the profile each time a user requires
access to it, this function saves processing overhead.
Note that a general resource class must be active before you can activate
SETROPTS GENLIST processing for that class. If the class is not active, issue the
SETROPTS command with both the GENLIST and CLASSACT operands and
specify the desired class. The following example shows how to activate the
TERMINAL class and SETROPTS GENLIST processing for that class on the same
command.
SETROPTS CLASSACT(TERMINAL) GENLIST(TERMINAL)
For more information on activating protection for specific general resource classes,
check the index of this book for the class name.
127
RACF Options
GENERIC and REFRESH operands and specify the appropriate resource classes.
For more information, see Refreshing In-Storage Generic Profile Lists (GENERIC
REFRESH Option) on page 131.
For information about SETROPTS REFRESH processing on shared systems, see
Refreshing Shared Systems (REFRESH Option) on page 132.
Notes:
1. If the system is enabled for sysplex communication and a command is
successful on the system on which it was issued, RACF propagates the
command to the other members of the data sharing group.
2. If the command fails on any of the peer systems and the system is in data
sharing mode, RACF stops processing the command and backs it out of all the
member systems, including the system on which it was issued.
3. In non-data sharing mode, the command can fail on a peer system without
backing out of the other systems.
4. If the system is not enabled for sysplex communication, the command does not
take effect on the other systems sharing the database until you issue it on those
systems or the systems are IPLed.
When you activate SETROPTS RACLIST processing for a general resource class,
RACF loads both discrete and generic profiles for the class into a data space.
These profiles are available to all authorized users, thereby eliminating the need for
RACF to retrieve a profile each time a user requests access to a resource protected
by it. As a result, when you activate this function, you reduce processing overhead.
If the RACGLIST class is active and has a profile with the same name as the
RACLISTed class, RACF saves the results on the database as classname_nnnnn
profiles in the RACGLIST class, in addition to loading them into a data space. For
example, RACF would save the RACLISTed data for the TERMINAL class as
TERMINAL_00001, TERMINAL_00002, and so forth. For more information on RACGLIST,
see The RACGLIST Class on page 259.
If RACROUTE REQUEST=LIST,GLOBAL=YES was previously issued for the class,
issuing SETROPTS RACLIST deletes the data space created by the RACROUTE
128
RACF Options
request and replaces it with a new one. The SETROPTS RACLIST overrides the
GLOBAL=YES RACLIST. Output from a SETR LIST command displays the class in
the SETR RACLIST CLASSES = line rather than in the GLOBAL=YES RACLIST ONLY = line.
For more information, see Using RACROUTE REQUEST=LIST,GLOBAL=YES
Support on page 259.
Note that a general resource class must be active before you can activate
SETROPTS RACLIST processing for that class. If the class is not active, issue the
SETROPTS command with both the RACLIST and CLASSACT operands and
specify the desired class. The following example shows how to activate the
TERMINAL class and SETROPTS RACLIST processing for that class on the same
command.
SETROPTS CLASSACT(TERMINAL) RACLIST(TERMINAL)
For more information on activating protection for specific general resource classes,
check the index of this book for the class name.
|
|
|
||
Topic
Reference (See...)
|
|
|
|
|
|
If you have the SPECIAL attribute, you can deactivate SETROPTS RACLIST
processing for general resource classes. To deactivate this option, issue
SETROPTS NORACLIST(classname). RACF processes classname and all classes
that share the same POSIT value on their class descriptor table (CDT) entries.
You can also use SETROPTS NORACLIST to delete a data space created by a
RACROUTE REQUEST=LIST,GLOBAL=YES command. Therefore, the command
must operate on classes even though RACLIST=DISALLOWED is specified in the
class descriptor table (CDT). If RACGLIST is active and RACGLIST
classname_nnnnn profiles exist, RACF deletes them and keeps the base
RACGLIST profile name. For more information, see The RACGLIST Class on
page 259 and Using RACROUTE REQUEST=LIST,GLOBAL=YES Support on
page 259.
Notes:
1. You should issue a SETROPTS NORACLIST command for classes RACLISTed
by RACROUTE REQUEST=LIST,GLOBAL=YES only after all classes that
issued RACROUTE REQUEST=LIST,ENVIR=CREATE,GLOBAL=YES have
given up their access to the RACLIST data space by issuing RACROUTE
REQUEST=LIST,ENVIR=DELETE.
2. If the system is enabled for sysplex communication and a command is
successful on the system on which it was issued, RACF propagates the
command to the other members of the data sharing group.
3. If the command fails on any of the peer systems RACF does not back it out of
the member systems.
129
RACF Options
4. If the system is not enabled for sysplex communication, the command does not
take effect on the other systems sharing the database until you issue it on those
systems or the systems are IPLed.
NORACLIST is the default and is in effect for all eligible classes that are defined in
the class descriptor table (CDT) when a RACF database is first initialized using
IRRMIN00.
See z/OS Security Server RACF System Programmers Guide for more information
about SETROPTS RACLIST processing.
130
RACF Options
For information about SETROPTS REFRESH processing on shared systems, see
Refreshing Shared Systems (REFRESH Option) on page 132.
If you use SETROPTS GENLIST to activate shared in-storage generic profiles for a
general resource class, RACF refreshes the profiles as well as the profile lists for
that class when you specify the class with GENERIC and REFRESH. For more
information, see SETROPTS Options to Activate In-Storage Profile Processing on
page 126.
If you specify GENERIC(*), RACF refreshes profile lists for the DATASET class and
all active classes in the class descriptor table (CDT) except group resource classes.
If you specify NOGENERIC on the SETROPTS command, RACF stops using
in-storage generic profile lists but does not immediately delete them. RACF deletes
the profile lists at the end of the job or TSO session, or when you again specify
GENERIC. When you specify GENERIC, RACF rebuilds the profile lists.
Note: You must have the SPECIAL attribute to issue the SETROPTS GENERIC
command by itself. However, to issue SETROPTS GENERIC (classname)
REFRESH, you do not need the SPECIAL attribute. However, you must have
the group-SPECIAL, group-AUDITOR, group-OPERATIONS, AUDITOR, or
OPERATIONS attribute.
For information about SETROPTS REFRESH processing on shared systems, see
Refreshing Shared Systems (REFRESH Option) on page 132.
131
RACF Options
If you specify GLOBAL(*), RACF refreshes access checking lists for the DATASET
class and all active classes in the class descriptor table (CDT).
If you specify NOGLOBAL, you disable global access checking for the class that
you specify.
For information about SETROPTS REFRESH processing on shared systems, see
Refreshing Shared Systems (REFRESH Option).
132
RACF Options
Attention
Before you specify NONE, be sure that you define your terminals to RACF
and give the appropriate users and groups proper authorization to use them.
Otherwise, users cannot access the terminals.
When you specify READ or NONE, you establish a default UACC for all users to
undefined terminals on your system. If you specify READ, all users can access all
terminals on your system (if allowed to by the security classifications of the
terminals). If you specify NONE, only users and groups that you authorize to use a
terminal through its access list can use it. If you do not specify either READ or
NONE, the default value is READ. For more detailed information, see Protecting
Terminals on page 235.
For undefined terminals, READ access authority is in effect when a RACF database
is first initialized using IRRMIN00.
133
RACF Options
where n is the maximum number of days that can be specified and must be
between 1 and 32767.
To remove the system-wide maximum (allowing any value in the profiles to take
effect), enter:
SETROPTS NOSESSIONINTERVAL
Access control to load modules allows only authorized users to load and execute
specified load modules (programs). RACF uses profiles in the PROGRAM general
resource class to control access to programs.
Program access to data sets allows an authorized user or group of users to access
specified data sets in conjunction with the users authority to execute a certain
program. That is, some users can access specified data sets at a specified access
level only while executing a certain program.
Program access to SERVAUTH class resources allows an authorized user or group
of users to access certain IP addresses in conjunction with the users authority to
execute a certain program. That is, some users can access specified IP addresses
at a specified access level only while executing a certain program.
If you have the SPECIAL attribute, you can also deactivate program control by
using the NOWHEN(PROGRAM) operand on the SETROPTS command.
NOWHEN(PROGRAM) is in effect when a RACF database is first initialized using
IRRMIN00.
Notes:
1. If the system is enabled for sysplex communication and a command is
successful on the system on which it was issued, RACF propagates the
command to the other members of the data sharing group.
2. If the command fails on any of the peer systems and the system is in data
sharing mode, RACF stops processing the command and backs it out of all the
member systems, including the system on which it was issued.
134
RACF Options
3. If the system is not enabled for sysplex communication, the command does not
take effect on the other systems sharing the database until you issue it on those
systems or the systems are IPLed.
4. In non-data sharing mode, the command can fail on a peer system without
backing out of the other systems.
For more information, see Chapter 9, Protecting Programs, on page 303.
When the SECLABELCONTROL option is in effect, only certain users can specify
the SECLABEL operand on RACF commands:
v Users with the SPECIAL attribute can specify the SECLABEL operand on any
RACF command.
v Users with the group-SPECIAL attribute can specify the SECLABEL operand only
on the ADDUSER and ALTUSER commands when they add a user to a group
within their scope of control. Also, group-SPECIAL users must be permitted to the
SECLABEL profiles with at least READ access authority.
v Users without the SPECIAL attribute cannot specify the SECLABEL operand.
To cancel this option, specify NOSECLABELCONTROL on the SETROPTS
command.
135
RACF Options
v Prevent any user from changing a SECLABEL profile using the RALTER
command unless SETROPTS MLQUIET is in effect. Changes to the access list
using the PERMIT command are allowed.
To do this, enter:
SETROPTS MLSTABLE
Restriction: This option cannot be activated when the SECLABEL class is inactive.
To cancel this option, specify NOMLSTABLE on the SETROPTS command.
Note: If you must change security labels while the system is in multilevel stable
state, you can issue SETROPTS MLQUIET before making the changes. See
Quiescing RACF Activity (MLQUIET Option).
Restrictions:
v You cannot activate this option when the SECLABEL class is inactive.
v The resource you want to protect must be in a resource class that is defined in
the CDT with neither the RVRSMAC nor EQUALMAC attribute. (If the class has
136
RACF Options
the RVRSMAC attribute, users are prevented from writing-up. If the class as
EQUALMAC, users are not restricted in their write actions.)
You can authorize certain users to copy data from a resource with one security
label to a resource with a lower security label by defining and controlling the
write-down privilege. (For more information, see Controlling the write-down
Privilege on page 103.)
You can specify MLS(WARNING), rather than MLS(FAILURES), to allow the user
request, but to send a warning message to the user and the security administrator.
If you do not specify the FAILURES option with the SETROPTS MLS command,
then MLS(WARNING) will be activated.
Restriction: SETROPTS MLS(WARNING) does not apply to resources controlled
by the SETROPTS MLFSOBJ option (z/OS UNIX files and directories) and the
SETROPTS MLIPCOBJ option (interprocess communication objects).
To cancel the SETROPTS MLS option, specify NOMLS on the SETROPTS
command.
Restriction: This option cannot be activated when the SECLABEL class is inactive.
To investigate the source of a security label failure, obtain a copy of the RACF audit
records using output from the SMF data unload utility (IRRADU00). (See z/OS
Security Server RACF Auditors Guide.) Examine the records for the call to see if
the failure occurred because of insufficient security label authority. Next, examine
the token information for the caller. If the callers token is identified as being created
by a pre-RACF 1.9 protocol that either did not, or was unable to, specify a security
label, RACF failed the security label authorization check.
NOCOMPATMODE is in effect when a RACF database is first initialized using
IRRMIN00.
137
RACF Options
Requirements:
v All work entering the system must be run by a RACF-defined user.
v A security label must be assigned to all work entering the system, including batch
jobs and users logging on to TSO and MVS consoles, started procedures, and to
any application that supports security labels when users log on.
v All user tasks running in a servers address space must have a security label that
is equivalent to the security label of the address space.
v You must either assign and grant permission to a default security label for every
RACF user ID, or permit user IDs to SYSLOW. Users without a default security
label will attempt to run with SYSLOW when MLACTIVE(FAILURES) is in effect
v A security label must be assigned to all profiles in the following classes:
APPCPORT
APPCSERV
APPCTP
APPL
DATASET
DEVICES
DIRECTRY
DSNADM
DSNR
FILE
GDSNCL and MDSNCL
GDSNDB and MDSNDB
GDSNJR and MDSNJR
GDSNPN and MDSNPN
GDSNSC and MDSNSC
GDSNSG and MDSNSG
GDSNSM and MDSNSM
GDSNSP and MDSNSP
GDSNSQ and MDSNSQ
GDSNTB and MDSNTB
GDSNTS and MDSNTS
GDSNUF and MDSNUF
SERVAUTH
SERVER
TAPEVOL
TERMINAL
USER
WRITER
To enforce multilevel security, enter:
SETROPTS MLACTIVE(FAILURES)
138
RACF Options
To cancel the MLACTIVE option, specify NOMLACTIVE on the SETROPTS
command.
Attention: Do not issue the SETROPTS MLACTIVE(FAILURES) command
unless you have assigned appropriate security labels to users and to the
resources they must access. To recover from such a situation, logon as a user
with the SPECIAL attribute, specifying SYSHIGH as the current security label.
Then, either assign security labels or issue SETROPTS NOMLACTIVE. If you
turn on MLACTIVE and do not correctly define all profiles that need SECLABELs,
IPL failures or other serious problems can occur.
Recommendations:
Back up your RACF database with a database that you know you can use to
IPL.
Define new system profiles (including classes such as DATASET, TERMINAL,
TAPEVOL, APPL or any other active class that has SLBLREQ=YES in the
class descriptor table) and ensure they have the correct security labels.
Turn MLACTIVE on in WARNING mode.
Watch out for relevant warning messages.
Restriction: This option cannot be activated when the SECLABEL class is inactive.
To cancel the MLFSOBJ option, specify MLFSOBJ(INACTIVE) on the SETROPTS
command.
Note: Do not specify SETROPTS MLFSOBJ(ACTIVE) if any system sharing the
RACF database is not at the necessary software level for multilevel security
support. Use of the SETROPTS MLFSOBJ option should not cause
problems on these systems, but it does not provide full protection on these
systems. For details, see z/OS Planning for Multilevel Security and the
Common Criteria.
139
RACF Options
Restriction: This option cannot be activated when the SECLABEL class is inactive.
To cancel the MLIPCOBJ option, specify MLIPCOBJ(INACTIVE) on the SETROPTS
command.
Recommendation: Assign security labels to all users before activating MLIPCOBJ
to ensure that all interprocess communication objects in progress are assigned
security labels. One way to ensure this is to activate MLIPCOBJ at IPL time.
Note: Do not specify SETROPTS MLIPCOBJ(ACTIVE) if any system sharing the
RACF database is not at the necessary software level for multilevel security
support. Use of the SETROPTS MLIPCOBJ option should not cause
problems on these systems, but it does not provide full protection on these
systems. For details, see z/OS Planning for Multilevel Security and the
Common Criteria.
140
RACF Options
v SYSNONE
v SYSMULTI
When SECLBYSYSTEM is in effect, a batch job submitted with no security label
executes with the security label of the JESINPUT class profile, unless the
JESINPUT class security label is SYSMULTI.
After activating SECLBYSYSTEM, you must issue SETROPTS
RACLIST(SECLABEL) REFRESH to complete the activation of security labels by
system. This option cannot be activated when the SECLABEL class is inactive.
To activate this option, enter:
SETROPTS SECLBYSYSTEM
SETROPTS RACLIST(SECLABEL) REFRESH
141
RACF Options
Even if the NOADDCREATOR option is used, in the DATASET and TAPEVOL
classes created through RACROUTE REQUEST=DEFINE, the user ID of any
profile creator is placed on the new profiles access list with ALTER authority.
This will occur when a user creates a permanent data set, if the user has ADSP
and ADSP is active on the system, or when a user specifies PROTECT or
SECMODEL on the JCL DD statement or TSO allocate command for a new
permanent data set.
If IRRMIN00 is run with PARM=NEW, this option is the default.
142
RACF Options
that share the RACF database after all of these systems have been converted to a
version of RACF that supports the DES algorithm.
143
RACF Options
See Using Protected User IDs for Batch Jobs on page 474 for more information.
Note: If the associated user ID is revoked for any reason, the started procedure
may have problems allocating new SMS-managed data sets, submitting
batch jobs, and obtaining printed output.
144
RACF Options
Attention
Be sure to specify a group name (not =MEMBER) as the GROUP value of the
STDATA segment, if both of the following are true:
1. The profile name contains generic characters (*, %, or &).
2. The USER value of the STDATA segment is the character string =MEMBER.
If you do not specify a group name, a new started procedure or job could be
assigned on execution to a user ID that matches an existing user ID on your
system. Consider defining a special group (for example, STCGROUP) for
started procedures and job user IDs, and using this group name as the
GROUP value of the STDATA segment.
In addition, be careful which libraries your started procedures come from and
do not let your users update them. Refer to the JES customization manuals for
information on specifying procedure libraries.
job
For each sample START command issued, Table 9 on page 146 shows the
resource name that will be used for STARTED class processing, and a list of names
Chapter 5. Specifying RACF Options
145
RACF Options
for STARTED class profiles that could be defined for each STARTED class
resource.
Table 9. Sample Profile Names for STARTED Class Resources
START Command
S CICS
CICS.CICS
CICS.CICS
CICS.*
CICS.**
S CICSP
CICS.CICSP
CICSP.CICSP
CICSP.*
CICSP.**
CICS*.**
CICS*
S CICST
CICS.CICST
CICST.CICST
CICST.*
CICST.**
CICS*.**
CICS*
S IMS,JOBNAME=IMSPROD
IMS.IMSPROD
IMS.IMSPROD
IMS.IMSP*
IMS.*
IMS.**
S IMS,JOBNAME=IMSTEST
IMS.IMSTEST
IMS.IMSTEST
IMS.IMST*
IMS.*
IMS.**
146
RACF Options
See z/OS Security Server RACF System Programmers Guide for information on
how to code the started procedures replaceable module, and for a complete
description of the started procedures table (ICHRIN03).
147
RACF Options
started procedures table, and issues message IRR813I or IRR814I if the
STARTED class is active but one of the following occurs:
a. RACF cannot find a matching profile in the STARTED class.
b. RACF finds a matching profile but the profile does not assign a user ID.
148
150
151
151
151
152
152
153
153
155
155
155
156
156
156
157
157
158
161
161
162
162
163
163
164
166
166
166
167
167
167
168
168
168
168
168
169
169
169
169
169
171
171
172
172
172
173
173
174
174
175
149
Data Sets
Tape Data Set and Tape Volume Protection (TAPEDSN Active and
TAPEVOL Active) . . . . . . . . . . . . . . . . . . . . .
Tape Data Set Protection (TAPEDSN Active and TAPEVOL Inactive)
Tape Volume Protection (TAPEVOL Active and TAPEDSN Inactive) . . .
No Tape Volume or Tape Data Set Protection (TAPEVOL Inactive and
TAPEDSN Inactive) . . . . . . . . . . . . . . . . . . . .
Protecting Existing Data on Tape (SETROPTS TAPEDSN in Effect) . . . .
Protecting New Data on Tape . . . . . . . . . . . . . . . . . .
Protecting Tape Volumes . . . . . . . . . . . . . . . . . . .
Security Levels and Security Categories for Tapes . . . . . . . . . .
Security Labels for Tapes . . . . . . . . . . . . . . . . . . .
Tape Volume Profiles That Contain a TVTOC . . . . . . . . . . . .
Tape Volume Table of Contents (TVTOC) . . . . . . . . . . . . .
Automatic TVTOC Tape Volume Profiles . . . . . . . . . . . . .
Nonautomatic Tape Volume Profiles . . . . . . . . . . . . . . .
Predefining Tape Volume Profiles for Tape Data Sets . . . . . . . . .
RACF Security Retention Period Processing (TAPEDSN Must Be Active)
Authorization Requirements for Tape Data Sets When Both TAPEVOL and
TAPEDSN Are Active . . . . . . . . . . . . . . . . . . . .
Authorization Requirements for Tape Data Sets When TAPEVOL Is Inactive
and TAPEDSN Is Active . . . . . . . . . . . . . . . . . . .
Authorization Requirements for Tape Data Sets When TAPEVOL Is Active
and TAPEDSN Is Inactive . . . . . . . . . . . . . . . . . .
JCL Changes . . . . . . . . . . . . . . . . . . . . . . . .
Installations with HSM . . . . . . . . . . . . . . . . . . . . .
IEC.TAPERING Profile in the FACILITY Class . . . . . . . . . . . .
Password-Protected Tape Data Sets . . . . . . . . . . . . . . .
Using the PROTECT Parameter for Tape Data Set or Tape Volume
Protection . . . . . . . . . . . . . . . . . . . . . . . .
Multivolume Tape Data Sets . . . . . . . . . . . . . . . . . .
RACF Authorization of Bypass Label Processing (BLP) . . . . . . . .
Authorization Requirements for Labels . . . . . . . . . . . . . . .
Tape Data Set and Tape Volume Protection with Nonstandard Labels (NSL)
Tape Data Set and Tape Volume Protection for Nonlabeled (NL) Tapes
Opening an Unlabeled Tape for Input . . . . . . . . . . . . . .
Opening an Unlabeled Tape for Output . . . . . . . . . . . . .
175
176
176
177
177
178
178
181
181
182
182
183
184
184
185
187
187
188
188
188
188
189
189
189
190
191
191
191
191
191
This chapter contains in-depth information on protecting data sets on DASD and
tape.
150
Data Sets
151
Data Sets
Naming convention processing is done by RACF immediately before the
preprocessing/naming convention installation exits are called. (The exits can still be
used for additional processing.)
The RACF table-driven naming convention feature largely replaces the need for the
ICHCNX00 exit routine. (The naming convention table is processed before each call
to ICHCNX00.)
For more information on creating and using the RACF naming convention table, see
z/OS Security Server RACF System Programmers Guide.
Attention
If you do not issue the SETROPTS command with the PREFIX operand, a
system ABEND occurs when a user attempts to create a data set with a
single-qualifier name. This abend occurs only when creating a discrete profile
as part of data set allocation.
Note: The real data set names option (specified by the REALDSN operand on the
SETROPTS command) applies only to name conversions made by the
naming conventions table or installation exit routines. This option has no
effect on single-qualifier data set names (unless they have been modified by
the naming conventions table or an exit routine), whose real data set
names continue to be the prefixed ones.
For more information on specifying the prefix, see Protecting Data Sets with
Single-Qualifier Names (PREFIX Option) on page 123.
152
Data Sets
The user who is protecting the data set has the group-SPECIAL attribute, and
the high-level-qualifier of the data set name is a user within the
group-SPECIAL users scope of authority. A discrete or generic profile can be
created.
The user who is protecting a data set has the OPERATIONS attribute (or the
group-OPERATIONS attribute if the data set is within his scope of authority)
and is simultaneously creating the data set.
In this case, the user can create a discrete profile:
- Through ADSP
- By specifying the PROTECT operand on the TSO ALLOCATE command
that creates the data set
- By specifying the PROTECT=YES OR SECMODEL=profile-name operands
on the JCL DD statement that creates the data set
v The REQUEST=DEFINE preprocessing exit routine allows RACF protection.
153
Data Sets
If PROTECTALL is not in effect, the creation is allowed, but RACF does not
create a profile. See Note 2.
v The user has ADSP and the data set is the users own data set.
The creation is allowed and RACF creates a discrete profile for the data set.
v The REQUEST=DEFINE preprocessing exit routine allows RACF protection.
v The user has the OPERATIONS attribute. If the user has the
group-OPERATIONS attribute (that is, the user is connected to a group with the
OPERATIONS attribute), the high-level qualifier of the new data set must be the
ID of a user who is within the scope of that group.
A user can create a new group data set in the following situations:
v The data set name is protected by an existing generic profile and the user does
not have ADSP.
The creation is allowed if at least one of the following is true:
The user has ALTER authority to the data set through the generic profile or
global access checking.
The user has CREATE authority in the group.
RACF does not create a profile.
v The data set name is not covered by an existing generic profile and the user
does not have ADSP.
If PROTECTALL is not in effect, the creation is allowed, but RACF does not
create a profile. See Note 2.
v The user has ADSP and the data set belongs to a group of which the user is a
member.
The creation is allowed only if the user has CREATE authority in the group. If the
creation is allowed, RACF creates a discrete profile for the data set.
v The REQUEST=DEFINE preprocessing exit routine allows RACF protection.
v The user has the OPERATIONS attribute except when both of the following are
true:
1. The user is connected to the group with less than CREATE authority.
2. The user has less than ALTER access to the data set if it protected by a
generic profile.
If the user has the group-OPERATIONS attribute (that is, the user is connected
to a superior group with the OPERATIONS attribute), the group for which the
new data set is being created must be within the scope of that superior group.
If PROTECTALL is not in effect, any user without ADSP can create a data set
whose high-level qualifier is neither a RACF user ID (user data set) nor a RACF
group name (group data set), but the data set cannot be RACF-protected. Note that
a dummy group (a group that has no users connected to it) can be defined for the
high-level qualifier of these data sets so that they can then be RACF-protected.
Notes:
1. In all cases, if the user specifies the PROTECT=YES or SECMODEL parameter
on the JCL DD statement, or the PROTECT or SECMODEL operand on the
TSO ALLOCATE command (these operands request that RACF create a
discrete profile), RACF treats the user the same as a user with ADSP. However,
because the use of these operands is voluntary, an installation cannot use the
operands to control the creation of data sets.
2. If PROTECTALL is in effect at your installation, a user cannot create a new data
set unless the data set is RACF-protected by either a discrete or generic profile.
154
Data Sets
However, instead of rejecting all creation requests for unprotected data sets,
PROTECTALL also allows installations to issue warning messages. For more
information on the PROTECTALL option, see RACF-Protecting All Data Sets
(PROTECTALL Option) on page 119.
155
Data Sets
Notes:
1. Scratching a DASD data set that is RACF-protected with a discrete profile
causes RACF to delete the data set profile from the RACF database.
2. Specifying DISP=DELETE for a tape data set only causes the data set to be
uncataloged if it was cataloged; it does not remove RACF protection from the
data set.
156
Data Sets
v For profiles in the DATASET class, the high-level qualifier of the profile name can
neither contain nor be a generic character. Here are some examples:
ABC.EF*
Valid
ABC.EF.**
Valid
A%C.EFG
Invalid
*.EFG
Invalid
ABC*.XYZ
Invalid
**.XYZ
Invalid
Note: You may see data set names with the high-level qualifiers of &&TEMP and
**SYSUT. These data sets are created internally by the IEHMOVE
program and should not be used for any other reason.
RACF enforces the rule that data set qualifiers can be no longer than eight
characters. Therefore, in generic data set profiles, the generic characters * and **
cannot be used to match qualifiers that are longer than eight characters.
Also, changes to RACFVARS variables require a generic refresh on all classes that
use those variables.
157
Data Sets
3. For a generic profile, unit and volume information is ignored because the data
sets that are protected under the generic profile can reside on many different
volumes.
v If generic profile checking is in effect for the DATASET class, RACF examines
the profiles as follows:
For a discrete profile (if the caller indicates that the data set is
RACF-indicated).
For a fully qualified generic profile.
For other generic profiles in the order of most specific to least specific profile
name. See Table 10 and Table 11 on page 159.
v After a profile is found, RACF uses information in the profile to do authorization
checking. For a complete description, see Authorization Checking for
RACF-Protected Resources on page 719.
If the data set is RACF-indicated, RACF first checks for a discrete profile. If a
discrete profile does not exist, RACF examines the generic profiles in the order of
most specific to least specific profile name. Therefore, if a discrete profile does not
exist, RACF uses the most specific matching generic profile.
If the data set is not RACF-indicated, RACF examines the generic profiles in the
order of most specific to least specific, and uses the most specific matching generic
profile.
Note: To determine which generic profile is the most specific match to a particular
data set name, you can use the LISTDSD command with the GENERIC
option.
Table 10 and Table 11 on page 159 list some generic profiles from the DATASET
class. This figure represents the order in which RACF checks the generic profiles
when it performs access-authorization checking. (This order is also the order that
RACF commands such as SEARCH would list these generic profiles.)
Table 10. Sample Data Set Profile Names in Order from Most Specific to Least Specific (EGN Off)
Data Sets Being Accessed
Profile Name
Profile Type
SALES.A
Fully qualified
generic
SALES.DATA
Discrete
SALES.DATA
Fully qualified
generic
SALES.DATA.%
Generic
SALES.DATA.*
Generic
SALES.DATA%
Generic
SALES.DATA*
Generic
158
SALES.DATA
SALES.DATA.TEST
SALES.YEARLY.QUOTA
Data Sets
Table 10. Sample Data Set Profile Names in Order from Most Specific to Least Specific (EGN Off) (continued)
Data Sets Being Accessed
Profile Name
Profile Type
SALES.DATA
SALES.DATA.TEST
SALES.YEARLY.QUOTA
SALES.DAT%
Generic
SALES.DAT*
Generic
SALES.DISK.*
Generic
SALES.YEARLY.QUOTA
Discrete
SALES.YEARLY.QUOTA
Fully qualified
generic
SALES.YEARLY.*
Generic
SALES.%ATA
Generic
SALES.*.QUOTA
Generic
SALES.*.QUOTA*
Generic
SALES.*
Generic
Note: RACF ignores a discrete profile if a data set is not RACF-indicated. Any data set that has a discrete profile
must be RACF-indicated.
Table 11. Sample Data Set Profile Names in Order from Most Specific to Least Specific (EGN On)
Data Sets Being Accessed
Profile Name
Profile Type
SALES.DATA
SALES.DATA.TEST
SALES.YEARLY.QUOTA
SALES.A
Fully qualified
generic
SALES.DATA
Discrete
SALES.DATA
Fully qualified
generic
SALES.DATA.%
Generic
SALES.DATA.*
Generic
SALES.DATA.**
Generic
SALES.DATA%
Generic
SALES.DATA*
Generic
SALES.DAT%
Generic
SALES.DAT*
Generic
SALES.DISK.*
Generic
SALES.YEARLY.QUOTA
Discrete
SALES.YEARLY.QUOTA
Fully qualified
generic
SALES.YEARLY.*
Generic
SALES.%ATA
Generic
SALES.*
Generic
SALES.*.QUOTA
Generic
SALES.*.QUOTA*
Generic
SALES.**.DATA
Generic
SALES.**.QUOTA
Generic
SALES.**
Generic
X
X
X
X
X
159
Data Sets
Table 11. Sample Data Set Profile Names in Order from Most Specific to Least Specific (EGN On) (continued)
Data Sets Being Accessed
Profile Name
Profile Type
SALES.DATA
SALES.DATA.TEST
SALES.YEARLY.QUOTA
Note: RACF ignores a discrete profile if a data set is not RACF-indicated. Any data set that has a discrete profile
must be RACF-indicated.
To find out which profiles could protect a data set, take the following steps:
1. Find out if there is a discrete profile protecting the data set:
LISTDSD DATASET(dataset-name)
If a discrete profile exists for the data set, this command lists the contents of the
profile.
2. If no discrete profile protects the data set, issue the LISTDSD command again
with the GENERIC option:
LISTDSD DATASET(dataset-name) GENERIC
If a generic profile exists for the data set, this command lists the contents of the
profile.
3. There may well be other generic profiles that have the potential to protect the
data set. These profiles are listed by the SEARCH command in the order that
RACF would use them. Because all data set profiles begin with a user ID or
group name, you can use the FILTER operand to show only those profiles that
could protect a data set, as shown in the following examples:
SEARCH CLASS(DATASET) FILTER(userid.**)
SEARCH CLASS(DATASET) FILTER(groupname.**)
To see which of two generic profiles is more specific, compare the profile names,
character by character. Where they first differ, if one has a discrete character and
the other has a generic character, the one with the discrete character wins. If both
have a generic character where they differ, then:
v If one has a % and the other has a * or **, the one with % wins.
v If one has a * and the other has a **, the one with * wins.
If two profile names fit except for one character position, the following is the order in
which RACF examines them:
blank
.
$ (X'5B')
# (X'7B')
@ (X'7C')
AZ
09
%
*
160
Data Sets
A.B0
A.B9
A.B%
A.B*
When in doubt about the search order, create sample profiles and check the order
of profile names shown by the SEARCH command.
RACF is invoked whenever a data set is accessed (whether or not the data set is
RACF-indicated) and whenever DASD space is allocated for a data set (whether or
not the user has the ADSP attribute or has specified PROTECT=YES on the JCL
statement). When RACF is invoked for a data set that is not RACF-indicated, RACF
checks only predefined generic profiles and the global access checking table. If
PROTECTALL is not in effect and RACF cannot find an appropriate generic profile
or a matching entry in the global access checking table, RACF accepts the access
request by default.
Attention
Data sets that are not RACF-indicated but are protected by a generic profile
are not protected if they are transferred (in any way) or available (such as
through shared DASD) to another system that does not have RACF and
appropriate predefined generic profiles.
161
Data Sets
162
Data Sets
v If you set UACC to NONE, all users are refused access to the data set because
they are not authorized to access the data set through an access list, global
access checking, the OPERATIONS attribute, or the WARNING indicator.
v If you set UACC to READ, EXECUTE, UPDATE, CONTROL, or ALTER, all users
can access the data set at the specified level of authority, unless they are
specifically excluded by security classification checking or an entry in the
standard access list, or the user ID has the RESTRICTED attribute.
Note: If you have users who are not defined to RACF, you can use ID(*) instead
of UACC to ensure that only RACF-defined users access the resource. The
following examples illustrate the difference between UACC(READ) and ID(*)
ACCESS(READ).
v To allow all users on the system to use a data set, specify UACC(READ)
for the profile, as follows:
RDEFINE profile-name UACC(READ)
Note: When specifying the MODEL operand, do not specify the users user ID
on the model profile name.
2. If necessary, create a model data set profile:
ADDSD userid.model-profile-name MODEL
...other appropriate operands such as UACC and AUDIT...
PERMIT userid.model-profile-name ID(appropriate-users-or-groups)
ACCESS(access-authority)
Notes:
a. With the MODEL operand specified, no actual data set need exist with the
specified profile name. A generic profile cannot be a model profile.
b. A profile created with the MODEL operand is not intended to actually protect
a data set (and does not cause an existing data set to be RACF-indicated).
Chapter 6. Protecting Data Sets on DASD and Tape
163
Data Sets
However, if a data set with the same name exists, the model profile might
be used to protect that data set. Therefore, IBM recommends that you
choose a profile name such that the profile does not match any data sets.
3. When you are ready to start using model profiles for user data sets, issue the
SETROPTS command with MODEL(USER) specified:
SETROPTS MODEL(USER)
4. After the SETROPTS command has been issued, if a user creates a user data
set profile for another user, and that profile had the MODEL operand specified,
information from the model profile is always copied into the new user data set
profile.
Example:
The following commands set up a model profile named SUE.SAMPMOD for user
SUE. The model specifies a UACC of NONE and gives READ access to SAM,
JOE, and GROUP1:
(1)
(2)
(3)
(4)
In this example:
(1) indicates to RACF that automatic profile modeling is to be used for new
profiles beginning with SUE.
(2) creates a profile named SUE.SAMPMOD. With the MODEL operand
specified, no actual data set named SUE.SAMPMOD needs to exist. However, if
a data set named SUE.SAMPMOD does exist, it is protected by the profile
named SUE.SAMPMOD.
(3) specifies an access list for profile SUE.SAMPMOD.
(4) turns on automatic profile modeling for all of the users who have the MODEL
operand set in their user profiles.
(5) creates profile SUE.DATA with UACC(READ). RACF copies the access list
from SUE.SAMPMOD (SAM, JOE, and GROUP1 have READ access). With
UACC(READ) specified on the ADDSD command, the UACC(NONE) value from
SUE.SAMPMOD is not used. Note that the copied information can be changed
during the copy. See Possible Changes to Copied Profiles When Modeling
Occurs on page 40.
Note: When specifying the MODEL operand, do not specify the groups group
name on the model profile name.
164
Data Sets
2. If necessary, create a model data set profile:
ADDSD groupname.model-profile-name MODEL
...other appropriate operands such as UACC and AUDIT...
PERMIT groupname.model-profile-name ID(appropriate-users-or-groups)
ACCESS(access-authority)
Notes:
a. With the MODEL operand specified, no actual data set need exist with the
specified profile name.
b. A profile created with the MODEL operand is not intended to actually protect
a data set (and does not cause an existing data set to be RACF-indicated).
However, if a data set with the same name exists, the model profile might
be used to protect that data set. Therefore, IBM recommends that you
choose a profile name such that the profile does not protect any data sets.
3. When you are ready to start using model profiles for group data sets, issue the
SETROPTS command with MODEL(GROUP) specified:
SETROPTS MODEL(GROUP)
4. After the SETROPTS command has been issued, if a user creates a group data
set profile for a group for which the MODEL operand has been specified,
information from the model profile is always copied into the new group data set
profile.
Example:
The following commands set up a model profile named GROUP1.SAMPMOD for
group GROUP1. The model specifies a UACC of NONE and gives READ access to
SAM, JOE, and GROUP1:
(1)
(2)
(3)
(4)
In this example:
(1) indicates to RACF that automatic profile modeling is to be used for new
profiles beginning with GROUP1.
(2) creates a profile named GROUP1.SAMPMOD. With the MODEL operand
specified, no actual data set named GROUP1.SAMPMOD needs to exist.
However, if a data set named GROUP1.SAMPMOD does exist, it is protected by
the profile named GROUP1.SAMPMOD.
(3) specifies an access list for profile GROUP1.SAMPMOD.
(4) turns on automatic profile modeling for all groups that have the MODEL
operand set in their group profiles.
(5) creates profile GROUP1.DATA with UACC(READ). RACF copies the access
list from GROUP1.SAMPMOD (SAM, JOE, and GROUP1 have READ access).
With UACC(READ) specified on the ADDSD command, the UACC(NONE) from
GROUP1.SAMPMOD is not used. Note that the copied information can be
changed during the copy. See Possible Changes to Copied Profiles When
Modeling Occurs on page 40.
165
Data Sets
EGN
GDG.BASENAME*
Off
GDG.BASENAME
GDG.BASENAME.G0123V00
GDG.BASENAME.**
On
GDG.BASENAME
GDG.BASENAME.G0123V00
Note: For GDG profiles, with enhanced generic naming active, you can no
longer define a profile name such as GDG.ABCDEFGH* whose last
qualifier contains an asterisk as the ninth character. Externally, an existing
profile name of this format is shown as GDG.ABCDEFGH.**. Internally, no
conversion is required because the two names are equivalent. However,
you should examine existing CLISTs that generate commands to ensure
that any profile names that appear in those commands are in the correct
format.
166
Data Sets
v You can define discrete profiles to protect GDG data sets in the same way that
you define discrete profiles to protect non-GDG data sets.
Note: Catalog management also checks authority to the GDG base name. You
should create a discrete profile for the GDG base with the unit and volume
of the catalog on which the GDG base resides. This protects the GDG for
catalog and uncatalog functions.
v You can use the MODEL(GDG) operand on the SETROPTS command to specify
that each member of a GDG can use a common profile identified by the GDG
base name. The owner of the GDG data set can establish a base (index) name
profile containing an access list that is accessible by all related users and
groups. When MODEL(GDG) is in effect and REQUEST=AUTH processes a
RACF-indicated GDG data set, RACF first looks for a profile with the base name,
and, if one exists, uses this common profile.
If you want individual access lists, do not create the profile for the base name. If
the GDG base name is not defined in the RACF database, RACF uses the profile
for the individual GDG name (which is the same as the RACF-processing for
non-GDG data sets).
Notes:
1. To use GDG modeling, each generation must be RACF-indicated.
2. Catalog management also checks authority to the GDG base name. You
should create a discrete profile for the GDG base with the unit and volume of
the catalog on which the GDG base resides. This protects the GDG for
catalog and uncatalog functions.
167
Data Sets
168
Data Sets
When an existing multivolume physical sequential data set is opened for output, a
RACF-protection consistency check is performed. All volumes of the data set that
are processed by end-of-volume (when a volume switch occurs) must indicate the
same RACF-protection status as the first volume opened. That is, if the first volume
is RACF-protected (the DSCB indicator is on and the volume is defined in the data
set profile), succeeding volumes must be RACF-protected as part of the same
profile. If the first volume is not RACF-protected, succeeding volumes must not be
RACF-protected.
For multivolume non-physical sequential DASD data sets, RACF performs
authorization checking for each volume on which the data set resides.
169
Data Sets
information about authorizing users to perform data set and catalog operations with
protected catalogs, see the following publications:
v z/OS DFSMS Access Method Services for Catalogs
v z/OS DFSMS: Using Data Sets
v z/OS DFSMS: Managing Catalogs
Table 13. Access Authorities for DASD Data Sets
NONE
EXECUTE
For a private load library, allows users to load and execute, but not read
or copy, programs (load modules) in the library.
Note: For more information about EXECUTE authority, see Using
EXECUTE access for programs and libraries in ENHANCED mode on
page 321.
Attention
Anyone who has READ, UPDATE, CONTROL, or ALTER authority
to a protected data set can create a copy of it. As owner of the
copied data set, that user has control of the security characteristics
of the copied data set and can downgrade it. For this reason, you
should assign a UACC of NONE, and then selectively permit a
small number of users to access your data set, as their needs
become known. (For information on how to permit selected users
or groups to access a data set, see z/OS Security Server RACF
Command Language Reference.)
READ
Allows users to access the data set for reading only. (Note that users
who can read the data set can copy or print it.)
UPDATE
Allows users to read from, copy from, or write to the data set. However,
UPDATE does not authorize a user to delete, rename, move, or scratch
the data set.
Allows users to perform normal VSAM I/O (not improved control interval
processing) to VSAM data sets.
CONTROL
For VSAM data sets, allows users to perform improved control interval
processing. This is control-interval access (access to individual VSAM
data blocks), and the ability to retrieve, update, insert, or delete records
in the specified data set.
For non-VSAM data sets, CONTROL is equivalent to UPDATE.
170
Data Sets
Table 13. Access Authorities for DASD Data Sets (continued)
ALTER
Allows users to read, update, delete, rename, move, or scratch the data
set.
When specified in a discrete profile, ALTER allows users to read, alter,
and delete the profile itself including the access list.
Note: ALTER does not allow users to change the owner of the profile
using the ALTDSD command. However, if a user with ALTER access
authority to a discrete data set profile renames the data set, changing the
high-level qualifier to his or her own user ID, then both the data set and
the profile are renamed, and the OWNER of the profile is changed to the
new user ID.
When specified in a generic profile, ALTER gives users no authority over
the profile itself.
When specified in a generic profile, ALTER allows users to create new
data sets that are covered by that profile.
171
Data Sets
Notes:
1. RACF does not perform the actual erasure, but maintains an indicator for data
management.
2. If you have not specified that you want all data sets erased, you can still provide
for the erasing of sensitive temporary data sets by using the naming
conventions table or RACF exit routines to conditionally convert the temporary
data set names to the form of a permanent name that is covered by a profile
that specifies erase-on-scratch.
3. In addition to the RACF-controlled erasure, any VSAM data set with a catalog
entry that specifies erase is erased.
Protecting Catalogs
You can protect many catalog functions including catalog locking and SMS-related
functions, by creating profiles in the FACILITY class. For information on creating
these profiles and authorizing users to perform catalog operations on protected
catalogs, see the following publications:
v z/OS DFSMS: Managing Catalogs
v z/OS DFSMS Access Method Services for Catalogs
v z/OS DFSMS: Using Data Sets
172
Data Sets
SYS1.PARMLIB
SYS1.PROCLIB
SYS1.SVCLIB
System data sets that are frequently accessed by all users (for example,
SYS1.HELP and SYS1.MACLIB) are good candidates for inclusion in a global
access checking table.
173
Data Sets
Note: If a data set protected by a discrete profile is scratched, the discrete
profile is deleted, or, in the case of a multivolume data set, the volume
serial number is removed from the data set profile.
v If the user is using the Device Support Facilities (ICKDSF) program, ALTER
allows the user to rename DASD volumes.
v Other products can also check for authorization in the DASDVOL class.
v Exception: DASDVOL authority does not allow users to work with
SMS-managed volumes. Instead, you can either give the user the OPERATIONS
(or group-OPERATIONS) attribute or, if you have the necessary software, define
the user as a DFDSS-authorized storage administrator. For more information on
the latter alternative, see DFDSS-Authorized Storage Administration.
As an alternative to assigning the OPERATIONS or group-OPERATIONS attribute,
DASDVOL authority allows you to authorize operations personnel to access only
those volumes that they must maintain. Using DASDVOL authority is also more
efficient for functions such as volume dumping, because only one authorization
check for the volume needs to be issued, instead of individual requests for each
data set on the volume. For a description of the OPERATIONS attribute, see The
OPERATIONS Attribute on page 75.
If the volume serials do not readily allow the use of * or % as generic characters in
DASDVOL profile names, consider creating profiles in the GDASDVOL class. See
Creating Resource Group Profiles on page 221.
174
Data Sets
RACF allows you to establish access requirements for both tape data sets and tape
volumes. To protect data on tape, you can do either or both of the following:
v Control access to the tape volume by issuing SETROPTS
CLASSACT(TAPEVOL).
The TAPEVOL class is not active when RACF is first installed.
v Control access to individual tape data sets on the tape volume by issuing
SETROPTS TAPEDSN.
NOTAPEDSN is in effect when RACF is first installed.
Tape Data Set and Tape Volume Protection (TAPEDSN Active and
TAPEVOL Active)
v Using the ADDSD command for a tape data set results in two discrete profiles:
an automatic tape volume profile that contains a tape volume table of contents
(TVTOC) and a tape data set profile. This means that RACF provides:
Checking of the RACF security retention period (the number of days that must
elapse before the data set can be deleted or overwritten).
Verification for the full 44-character data set names.
Protection for multiple data sets on a volume if all of the data sets have the
same access requirements.
Multivolume data set protection.
RACF protection for the volume.
Automatic deletion of the data set and tape volume profiles when the data set
or tape volume is overwritten and discrete protection for the data set has
expired.
Normally, you use the SET operand (which is the default) on the ADDSD
command. If the tape volume and data set profiles get out of synchronization
(that is, if the tape volume profile refers to a data set profile that does not
exist or vice versa), use either the NOSET or SETONLY operand. Use
NOSET if you have a data set profile but no tape volume profile. Use
SETONLY if you have a tape volume profile but no data set profile.
Having ADSP or specifying PROTECT=YES on the JCL DD statement also
results in two discrete profiles, just as the ADDSD command does.
Data management calls RACF in the DATASET class.
For tapes being opened for input, data management issues a RACROUTE
REQUEST=AUTH, CLASS=DATASET, DSTYPE=T macro. For tapes being
opened for output, data management issues a RACROUTE REQUEST=DEFINE,
CLASS=DATASET, DSTYPE=T macro.
RACF authorizes access to protected tape data sets through RACF authorization
checking. RACF bypasses any tape data set password protection. If the tape
data set is not RACF-protected or the tape protection option is not active, data
management authorizes access to tape data sets by password protection.
Note: If you have a tape management system, you might find that the RACF
TVTOC provides some of the same information that the tape management
system provides. Therefore, to avoid duplication of information, you might
consider running your system with TAPEVOL inactive and TAPEDSN
active as described in the following section.
175
Data Sets
176
Data Sets
If the cataloged tape data set resides on more than one volume (a multivolume tape
data set), RACF uses the data set name specified on the ADDSD command and
the information supplied in the catalog to protect the data set on all of the volumes
on which it resides.
To protect an existing tape data set that is uncataloged, issue the ADDSD
command with the TAPE operand and specify:
v The data set name
v The tape volume on which the data set resides
v The unit name
v The file sequence number of the data set on the tape
For example, suppose you want to protect an uncataloged tape data set named
USER03.TEST.DATA with a discrete RACF profile. The data set resides on a tape
volume labeled 123456 and has a file sequence of 1. To protect this data set, enter:
ADDSD USER03.TEST.DATA TAPE UNIT(TAPE) VOLUME(123456) FILESEQ(1)
From this information, RACF builds a discrete profile for both the data set and the
tape volume. When you issue the ADDSD command to protect an existing tape
data set, RACF creates an automatic tape volume profile. For more information, see
Tape Volume Profiles That Contain a TVTOC on page 182.
Note that when you issue the ADDSD command to RACF-protect an uncataloged
tape data set, you protect that data set only on the volume that you specify.
If you have an uncataloged tape data set that resides on more than one volume,
you can RACF-protect this data set with a discrete profile using several commands.
For example, suppose you want to RACF-protect a tape data set named
USER02.TEST.DATA that resides on volumes 111111 and 222222.
1. To protect that portion of the data set residing on volume 111111, issue the
ADDSD command:
ADDSD USER02.TEST.DATA TAPE UNIT(TAPE) VOLUME(111111) FILESEQ(1)
2. To protect that portion of the data set residing on volume 222222, issue the
ALTDSD command with the ADDVOL operand as follows:
ALTDSD USER02.TEST.DATA ADDVOL(222222)
177
Data Sets
Notes:
a. You can protect only one volume at a time with the ALTDSD command and
the ADDVOL operand. If your data set resides on more than two volumes,
issue the ALTDSD command and specify the appropriate volume on the
ADDVOL operand for each additional volume. For a tape data set with an
entry in the TVTOC, the maximum number of volumes the data set can span
is 42.
b. Before you can use the ALTDSD command to protect a portion of a
multivolume data set, at least one other portion of that data set must already
be RACF-protected.
c. RACF ignores this command if you specify a generic profile name for the
data set.
178
Data Sets
the first user of the volume, and any users added to the access list with UPDATE
authority can write additional data sets to the volume.
For example, to define a tape volume labeled TX0050 with the attribute that it can
hold a TVTOC and assign it a UACC of NONE, enter:
RDEFINE TAPEVOL TX0050 TVTOC UACC(NONE)
After you define a tape volume with a TVTOC, you can use generic profiles to
protect data sets that reside on that volume. To define a generic profile for data
sets, use the ADDSD command and specify the profile name.
The following example shows how to define the generic profile USER03.*.
ADDSD USER03.*
Notes:
1. The user ID of the issuer of RDEFINE is placed automatically on the access list
with ALTER only if SETROPTS ADDCREATOR is in effect.
2. The TAPEVOL class must be active for the RDEFINE command to succeed. For
more information, see Activating Tape Volume Protection
(CLASSACT(TAPEVOL) Option) on page 124.
3. The TVTOC operand applies only to discrete tape volume profiles.
4. When you issue the RDEFINE command with the TVTOC operand, you create a
nonautomatic tape volume profile. For more information, see Tape Volume
Profiles That Contain a TVTOC on page 182.
5. When you issue the ADDSD command, you can predefine a generic data set
profile, or define a generic profile after the data set and TVTOC entry have been
created. You can also use existing generic profiles that were created to protect
DASD data sets. If you are using generic data set profiles for tape data sets,
you should specify a retention period in those profiles because the SETROPTS
retention period is not used.
6. The access authorities that apply to tape volume profiles are as follows:
NONE
READ
UPDATE
CONTROL
Is equivalent to UPDATE.
ALTER
179
Data Sets
1. RACF checks the users authority to the volume on which the data set resides.
If the user has sufficient authority to the volume, RACF grants access to the
data set. If the user does not have sufficient authority to the volume, access
checking proceeds with Step 2.
2. RACF checks to see if the data set is RACF-indicated. (For more information on
RACF-indicated data sets, see Protection Through Discrete Profiles on page
155.) If the data set is RACF-indicated, access checking proceeds with Step 3.
If the data set is RACF-indicated, RACF checks for a discrete profile that
protects the data set. If RACF finds a discrete profile and the user has sufficient
authority to the data set, RACF grants access. If the user does not have
sufficient authority to the data set, RACF denies access. If RACF does not find
a discrete profile, access checking proceeds with Step 3.
3. If the data set is RACF-indicated but RACF does not find a discrete profile,
RACF searches for an appropriate generic profile. If RACF finds a generic
profile, RACF grants or denies access based on the users authority. If RACF
does not find a generic profile, RACF fails the request.
4. If the data set is not RACF-indicated, RACF searches for an appropriate generic
profile that protects the data set. If RACF finds a generic profile and the user
has sufficient authority to access the data set, RACF grants the request. If the
user does not have sufficient authority to access the data set, RACF fails the
request.
If RACF does not find a generic profile, the data set is not RACF-protected and,
therefore, any user can access the data set.
Defining Tape Volumes Without a TVTOC: You can also define tape volumes
without using the TVTOC operand. When you define a tape volume in this manner,
RACF does not maintain a TVTOC to control access to data sets on the volume.
Instead, RACF controls access to data sets on the tape volume using only the
access list in the volumes profile. Users with at least READ authority to the volume
can read any data on the tape. Users with at least UPDATE authority to the volume
can write data on the tape.
The following sequence of commands shows how to define a tape volume without a
TVTOC and how to control access to the data sets on that volume.
1. To define and protect a tape volume, issue the RDEFINE command with the
appropriate operands and assign a UACC of NONE to the volume.
RDEFINE TAPEVOL profile-name UACC(NONE)
For example, to define a tape volume labeled 123456 and assign it a UACC of
NONE, issue the following command:
RDEFINE TAPEVOL 123456 UACC(NONE)
The RDEFINE command adds a profile for the tape volume to the RACF
database.
2. To allow a user access to the volume for the purpose of creating data sets,
issue the PERMIT command with the appropriate operands and give the user
UPDATE access authority. For tape volume 123456, enter the command as
follows:
PERMIT 123456 CLASS(TAPEVOL)
ID(userid or groupname) ACCESS(UPDATE)
UPDATE access authority allows a user to read and write data sets to the tape
volume. You should not assign ALTER access authority to a general user
because ALTER allows a user to overwrite the tape label.
180
Data Sets
3. If other users wish to access the data on the tape volume, issue the PERMIT
command with the appropriate operands and access authority. For example, to
give another user READ access authority to tape volume 123456, issue the
following command:
PERMIT 123456 CLASS(TAPEVOL) ID(userid or groupname) ACCESS(READ)
Note that a user must have sufficient authority to issue the PERMIT command.
Because you gave the user who requested the tape volume UPDATE access
authority, that user does not have sufficient authority to allow other users to
access the tape volume.
4. When a user has finished working with the tape volume, issue the PERMIT
command and specify the RESET(ALL) operand. RESET(ALL) deletes the
entire current standard and conditional access lists from the tape volumes
profile. For tape volume 123456, enter the command as follows:
PERMIT 123456 CLASS(TAPEVOL) RESET(ALL)
If you delete only the access lists from a tape volume profile, you retain RACF
protection for data on the volume. (In this case, no users can access the data.)
If you delete the tape volume profile itself, you have no RACF protection for
data on the volume. (Any user can access the data.)
When a user creates data sets on tape volume 123456, the user should ensure that
each data set has the same security level and security categories as specified on
the RALTER command.
To delete the security level and all of the security categories from the volumes
profile (for example, when a user has finished working with a tape volume), issue
the RALTER command with the NOSECLEVEL and DELCATEGORY(*) operands.
For tape volume 123456, enter the command as follows:
RALTER TAPEVOL 123456 NOSECLEVEL DELCATEGORY(*)
When a user creates data sets on tape volume 123456, the user should ensure that
each data set has the same security label (LABEL1) as was specified on the
RALTER command that defined the tape volume.
Note: When the SECLABEL class is active, and both the SETROPTS
MLS(FAILURES) and SETROPTS MLACTIVE options are in effect, the
security label of the tape volume profile is used for all data sets on the
volume. For tape volume profiles without TVTOCs, the security label is
assigned when the tape volume profile is defined. Tape volume profiles with
TVTOCs are assigned a security label when the first data set is written to the
tape.
Chapter 6. Protecting Data Sets on DASD and Tape
181
Data Sets
To delete the security label from the volumes profile (for example, when a user has
finished working with a tape volume), issue the RALTER command rather than the
RDELETE command with the NOSECLABEL operand. For tape volume 123456,
enter the command as follows:
RALTER TAPEVOL 123456 NOSECLABEL
Attention
Processing that creates large numbers of TVTOC entries and large access
lists, for example, could result in an attempt to exceed the maximum
profile size.
182
Data Sets
2. The maximum number of volumes that any data set on the tape with an entry in
the TVTOC can span is 42.
3. The maximum number of volumes that any data set on tape without a TVTOC
can span is limited only by the maximum profile size.
When both TAPEDSN and TAPEVOL are active, RACF can create two different
types of TVTOC profiles:
v An automatic TVTOC tape volume profile
v A nonautomatic TVTOC tape volume profile
v The NOSET option on the DELDSD command can be used to remove a discrete
tape data set profile without deleting the tape volume profile. For more
information, see z/OS Security Server RACF Command Language Reference.
The sections that follow describe these profiles.
183
Data Sets
184
Data Sets
When the tape librarian needs more tape volumes for the scratch pool, the librarian
can issue the SEARCH command with the EXPIRES operand to find tape volumes
for which the security retention period for all of the data sets is expired (or close to
expiring). The librarian can then use the RDELETE and RDEFINE commands to
redefine these tape volumes.
Unlike DASD data sets, tape data sets are not deleted. A tape data set exists until it
is overwritten by another program or by a utility such as IEHINITT. Specifying
DISP=DELETE for a tape data set only causes the data set to be uncataloged if it
was cataloged. DISP=DELETE does not remove RACF protection from the data set
or delete the data on the tape volume.
185
Data Sets
A user can specify the security retention period for a tape data set by one of the
following methods:
v For a data set protected by either a discrete or generic profile, by using the
RETPD operand on the ADDSD or ALTDSD command
v For a data set protected by a discrete profile, by specifying the EXPDT or
RETPD operand on the JCL DD statement
For discrete profiles, if a user does not specify a security retention period for a tape
data set, the retention period can be provided by one of the following:
v Profile modeling
v An installation exit routine
v A system-wide default set by the RETPD operand on the SETROPTS command
For generic profiles that protect tape data sets, the user must assign a security
retention period to the profile by specifying the RETPD operand on the ADDSD or
ALTDSD command. (If the security retention period is omitted, a zero value is used
and the profile is treated as if it expired.)
When RACF is installed, the default security retention period is RETPD(0). If your
installation specifies a different default security retention period for tape data sets,
RACF uses the specified value in any of the following situations:
v When a user specifies RETPD=0 on the JCL DD statement
v When a user specifies EXPDT=current-date on the JCL DD statement
v When a user does not specify the EXPDT/RETPD JCL operands
Note: The RACF security retention period is independent of the data set retention
period specified by the EXPDT/RETPD JCL operand. However, the two
retention periods are initially the same if the user who creates the data set
has ADSP or specifies PROTECT=YES on the JCL DD statement. You can
modify the security retention period in the data set profile by using the
ALTDSD command.
If a tape volume contains more than one data set, RACF protects each data set
independently. RACF achieves this protection by not allowing users with UPDATE
authority to one or more of the data sets to rewrite any data set until one of the
following occurs:
v The profiles for all of the data sets that sequentially follow that data set on the
tape volume have been deleted.
v The security retention periods for all of the data sets that sequentially follow that
data set on the tape volume have expired.
Note, however, that users who have at least UPDATE authority to the volume can
write to the volume unconditionally.
In response to RDELETE or DELDSD commands, RACF deletes tape volume
profiles and the discrete tape data set profiles for all data sets residing on tapes
when all of the data sets that the TVTOC points to have expired. For generation
data groups (GDGs), RACF does not automatically delete RACF protection of the
volumes containing the oldest generation when a new generation is defined.
Because residual data remains on a tape volume even after the security retention
period of the RACF profiles has expired, installations should consider degaussing
tape volumes on which all of the data sets have an expired security retention
186
Data Sets
period. The librarian can then redefine these tape volumes to RACF using the
RDEFINE command with the TVTOC operand and, thereby, reenter the volumes
into the common scratch pool.
187
Data Sets
data set for output or, to catalog an existing tape data set after opening it for output,
the user must have ALTER authority to the data set.
JCL Changes
To protect tape data sets, installations should provide generic profiles or code
PROTECT=YES (when TAPEVOL is active) for each data set that requires
protection. Data management allows you to specify PROTECT=YES for each data
set on a tape volume.
Attention
You should only allow access to the IEC.TAPERING resource for users who
can be trusted not to abuse the authority to write to tapes they are allowed to
read.
For IBM 3490 tape drives and for IBM 3480 tape drives with the IDRC feature,
this profile is not checked. Instead, the tape device cannot use WRITE
operations when the user has only READ authority.
188
Data Sets
See the following example for setting up an IEC.TAPERING profile:
1. Create a profile to protect the IEC.TAPERING resource:
RDEFINE FACILITY IEC.TAPERING UACC(NONE)
Note: If you wish to allow this for all users on your system, specify
UACC(READ) and omit the following PERMIT command.
2. Permit users or groups, as appropriate:
PERMIT IEC.TAPERING CLASS(FACILITY) ID(userid or groupname)
ACCESS(READ)
Using the PROTECT Parameter for Tape Data Set or Tape Volume
Protection
To define a tape data set or a tape volume to RACF for protection by a discrete
profile, specify the PROTECT parameter on the JCL DD statement that identifies a
tape data set on the volume. If generic profile checking is active, do not use the
PROTECT parameter unless a discrete profile is required for the data set. If the
data set is also password-protected, the password must be supplied before the tape
volume is RACF-protected.
189
Data Sets
When attempting to effect changes to multivolume tape data sets, use the RALTER
command rather than the RDELETE command. If the resource you specify is a
member of a tape volume set, RACF deletes the definitions for all of the volumes in
the set.
A single profile is maintained in the RACF database for a tape volume set. Thus all
volumes in the volume set share the same access list and the same statistics and
auditing options. (For additional information on protecting multivolume tape data
sets, see Protecting Existing Data on Tape (SETROPTS TAPEDSN in Effect) on
page 177.)
190
Data Sets
Tape Data Set and Tape Volume Protection with Nonstandard Labels
(NSL)
Data management does not do authorization checking for nonstandard labeled
tapes. However, if the user is going to destroy standard labels, data management
calls RACF to determine whether the tape volume is protected. If the tape is
RACF-protected and TAPEDSN is active, the user must have ALTER authority to
the volume and to the data sets on the volume. For more detailed information,
consult the DFSMS/MVS publications.
Tape Data Set and Tape Volume Protection for Nonlabeled (NL) Tapes
Opening an Unlabeled Tape for Input
To open an unlabeled tape for input, the user must have at least READ authority to
one of the following:
v To the volume
v If TAPEDSN is active, to the data sets that may have previously been defined to
RACF within the TVTOC for the volume. Because this is a nonlabeled tape
volume, RACF does not automatically create or maintain TVTOC data set entries.
However, TVTOC data set entries can be manually created and maintained with
the ADDSD command.
If data management finds a labeled tape when opening the volume for input, it
rejects the request.
191
Data Sets
2. RACF protection of nonlabeled tapes does not depend on tape data set
protection being active.
3. RACF does not maintain the TVTOC for nonlabeled tapes. But if the TVTOC
contains any entries, RACF uses these entries during authorization checking.
4. You cannot RACF-protect nonlabeled tapes that have a volume serial number of
Lnnnnn.
192
. 195
. 196
. 198
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
199
199
199
200
200
200
202
204
205
205
206
207
207
207
210
210
210
211
212
212
213
218
219
219
220
221
221
221
221
223
223
223
224
225
225
226
226
227
227
227
227
228
228
230
231
233
234
234
193
General Resources
Protecting Terminals . . . . . . . . . . . . . . . . . . .
Creating Profiles in the TERMINAL and GTERMINL Classes . . .
Controlling the Use of Undefined Terminals . . . . . . . . . .
Combining the SETROPTS TERMINAL Command with TERMINAL
Profiles . . . . . . . . . . . . . . . . . . . . .
Limiting Specific Groups of Users to Specific Terminals . . . . .
Limiting the Times That a Terminal Can Be Used . . . . . . . .
Using Security Labels to Control Terminals . . . . . . . . . .
Using the TSO LOGON Command with the RECONNECT Operand .
Protecting Consoles . . . . . . . . . . . . . . . . . . .
Using Security Labels to Control Consoles . . . . . . . . . .
Using the Secured Signon Function . . . . . . . . . . . . . .
The RACF PassTicket . . . . . . . . . . . . . . . . . .
Activating the PTKTDATA Class . . . . . . . . . . . . . .
Defining Profiles in the PTKTDATA Class . . . . . . . . . . .
Determining Profile Names . . . . . . . . . . . . . . .
Protecting the Secured Signon Application Keys . . . . . . .
Example of Defining a PTKTDATA Class Profile . . . . . . .
When the Profile Definitions Are Complete . . . . . . . . . .
How RACF Processes the Password or PassTicket . . . . . . .
Bypassing PassTicket Replay Protection . . . . . . . . . .
Enabling the Use of PassTickets . . . . . . . . . . . . . .
Verifying the Secured Signon Environment . . . . . . . . .
Preventing Errors . . . . . . . . . . . . . . . . . .
Protecting the Vector Facility . . . . . . . . . . . . . . . .
Controlling Access to Program Dumps . . . . . . . . . . . . .
Using RACF to Control Access to Program Dumps . . . . . . .
Protecting Program Dumps Using a Data Set Profile . . . . .
Protecting Program Dumps Using the FACILITY Class . . . . .
Using Non-RACF Methods to Control Access to Program Dumps . .
Controlling the Allocation of Devices . . . . . . . . . . . . .
Protecting LLA-Managed Data Sets . . . . . . . . . . . . . .
Controlling Data Lookaside Facility (DLF) Objects (Hiperbatch) . . . .
Using RACROUTE REQUEST=LIST,GLOBAL=YES Support . . . .
The RACGLIST Class . . . . . . . . . . . . . . . . . .
Administering the Use of Operator Commands . . . . . . . . . .
Authorizing the Use of Operator Commands . . . . . . . . .
Command Authorization in an MCS Sysplex . . . . . . . . . .
Controlling the Use of Operator Commands . . . . . . . . . .
Controlling the Use of Remote Sharing Functions . . . . . . . . .
Controlling Access to the RACLINK Command . . . . . . . . .
Controlling the Use of the RACLINK DEFINE Operand . . . . .
Controlling the Use of the RACLINK PWSYNC Operand . . . .
Controlling Password Synchronization . . . . . . . . . . . .
Controlling the Use of the AT Operand . . . . . . . . . . . .
Controlling the Use of the ONLYAT Operand . . . . . . . . .
Controlling Automatic Direction . . . . . . . . . . . . . .
Controlling Automatic Direction of Commands . . . . . . . .
Controlling Automatic Direction of Passwords . . . . . . . .
Controlling Automatic Direction of Application Updates . . . . .
Establishing Security for the RACF Parameter Library . . . . . . .
Controlling Message Traffic . . . . . . . . . . . . . . . . .
Controlling the Opening of VTAM ACBs . . . . . . . . . . . .
RACF and PSF (Print Services Facility) . . . . . . . . . . . .
Auditing When Users Receive Message Traffic . . . . . . . . . .
RACF and APPC . . . . . . . . . . . . . . . . . . . .
194
. . . 235
. . . 235
. . . 236
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
237
237
238
238
238
239
240
240
241
241
241
242
245
247
247
247
248
249
249
249
250
251
251
251
251
253
253
255
256
259
259
260
261
261
262
266
267
267
267
267
268
268
269
269
271
272
273
273
274
275
276
276
General Resources
User Verification during APPC Transactions . . . . . . .
Partner LU as Port of Entry (POE) . . . . . . . . .
Local LU Name as Application (APPL) . . . . . . . .
Protection of APPC/MVS Transaction Programs (TPs) . . .
LU Security Capabilities . . . . . . . . . . . . . .
Conversation Security Options . . . . . . . . . . .
Origin LU Authorization . . . . . . . . . . . . . .
Protection of APPC Server IDs (APPCSERV) . . . . . .
RACF and CICS . . . . . . . . . . . . . . . . . .
RACF and DB2 . . . . . . . . . . . . . . . . . .
RACF and ICSF . . . . . . . . . . . . . . . . . .
RACF and z/OS UNIX . . . . . . . . . . . . . . . .
RACF Support for NDS and Lotus Notes for z/OS . . . . .
Administering Application User Identities . . . . . . . .
Adding Application Identity Segments . . . . . . . .
Modifying USER Identity Segments . . . . . . . . .
Removing User Identity Segments . . . . . . . . .
System Considerations . . . . . . . . . . . . . .
Mapping Profiles in the NOTELINK and NDSLINK Classes
Authorizing Applications to Use Identity Mapping . . . . .
Defining Applications as RACF Users . . . . . . . .
Permitting Access to the IRR.RUSERMAP Resource . .
Activating Identity Mapping . . . . . . . . . . . .
Considerations for Application User Names . . . . . . .
Storing encryption keys using the KEYSMSTR class . . . .
Steps for storing a key in a KEYSMSTR profile . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
276
276
277
277
278
278
278
278
279
279
279
280
280
280
280
281
281
281
281
282
283
283
283
284
284
285
Command
Defining
RDEFINE
Listing
RLIST
Changing
RALTER
Searching
Deleting
RDELETE
Note: For the authority needed to issue any of these commands, see z/OS Security Server
RACF Command Language Reference.
195
General Resources
If you specify a discrete profile name, the profile can protect only one
resource.
The rules for specifying profile names for most supplied general resource
classes are described elsewhere in this book.
Notes:
a. For some kinds of resources, (such as terminals, DASD volumes, and
CICS, IMS, and SDSF classes), you should consider using resource
group profiles instead of generic profiles. Creating resource group profiles
can save a significant amount of work. See Creating Resource Group
Profiles on page 221 for more information.
b. You can use RACFVARS profiles to specify values for variables (indicated
by an ampersand &) in profile names. For more information, see Using
RACF Variables in Profile Names (RACFVARS Class) on page 226.
v Decide which access is to be allowed to all users on the system who are not
otherwise limited. In RACF, this is called the universal access authority
(UACC). This has the same meaning as the access authority on access lists
(see step 3 on page 197). In most cases, the UACC should be NONE or
READ.
v Decide which user or group is to be the owner of the new resource profile. By
default, this is the user who creates the profile.
If the owner is a user, the owner can list, modify, or delete the resource
profile. Note that being the owner of a resource profile does not, by itself,
allow a user to have access to the resource or resources that are
protected by the profile. For more information, see step 16 on page 722 in
Authorizing Access to RACF-Protected Resources on page 720.
196
General Resources
If the owner is a group, the authority of a user who has a group-level
attribute in that group (such as group-SPECIAL or group-AUDITOR)
extends to resources that are protected by this profile.
v Decide which user, if any, should be notified by a message when users make
unsuccessful attempts to access resources that are protected by the profile
(NOTIFY operand).
v Decide whether RACF should log access attempts to resources that are
protected by the profile (AUDIT operand).
Note: To see the results of the logging done by RACF, use the RACF report
writer. For more information, see z/OS Security Server RACF Auditors
Guide.
v If your installation is using some form of security classification, do one of the
following:
If security labels are used on your system, decide which security label (if
any) to assign to the profile.
When security labels are being used on your system, be aware that
security levels and categories are ignored.
If security levels are used on your system, decide which security level (if
any) to assign to the profile.
If security categories are used on your system, decide which security
categories (if any) to assign to the profile.
If your installation has written RACF installation exits to use the LEVEL
operand, decide which value to specify for LEVEL.
v Depending on the class of the resource, the profile might have additional
fields for which you should assign values. For example:
Profiles in the APPCLU class have SESSION segments
Profiles in the TAPEVOL class have the SINGLEDSN and TVTOC
operands
Profiles in the TERMINAL and GTERMINL classes have the WHEN and
TIMEZONE operands (both optional). WHEN determines the times and
days a terminal may be used.
Note: This WHEN is not the same as the WHEN operand in a conditional
access list.
See the appropriate section of this book or the description of the RDEFINE
command in z/OS Security Server RACF Command Language Reference for
specific information on these operands.
v To copy an existing profile, specify the name of the existing profile on the
FROM operand. If the existing profile is in a different class, specify FCLASS
also.
2. Create the general resource profile using the RDEFINE command:
RDEFINE classname profile-name other-operands
197
General Resources
v Each entry in the conditional access list states which access (such as NONE
or READ) a specific user or group has, and also states which condition a
user must meet to get the specified access:
PERMIT profile-name CLASS(classname)
ID(userid or group) ACCESS(access-authority)
WHEN(condition)
Notes:
a. Access authorities that you can specify with UACC or specifically assign to
users vary from class to class, and are described in the sections of this
book that describe the specific classes.
b. Not all classes are described in this book (for example, the DSNR class is
not described in this book). Also, in some classes (notably the FACILITY
class), the access required by some resource managers to specific profiles
is described in the documentation of the resource manager. Therefore, go to
that resource manager to find the descriptions of that class. (In the case of
DSNR, which is used by DB2, see RACF and DB2 on page 279.)
c. The profile creator may be automatically added to the access list with
ALTER authority. For more information, see Automatic Addition of Creators
User ID to Access List on page 141.
4. If you have not already done so, activate the resource class:
SETROPTS CLASSACT(classname)
198
General Resources
Reference
199
General Resources
Generic Naming
Some of the generic profile naming for general resources has been enhanced with
some of the same concepts as generics for data set profiles. You may now have an
asterisk (*) within a profile name, representing one qualifier of a resource name.
You may also use a double asterisk (**) to represent zero or more qualifiers within a
general resource generic profile or at the end of such a profile. Use of the double
asterisk (**) in general resource generic profiles is not controlled by the SETROPTS
EGN option which applies only to the data set profiles.
Some of the rules for generic characters are different between general resource
and data set generic profiles. See z/OS Security Server RACF Command Language
Reference for more information.
200
General Resources
201
General Resources
What do the access authorities (READ, UPDATE, CONTROL, ALTER) mean?
Remember, these values are hierarchical (UPDATE is higher than READ, and
so forth), and do not necessarily mean what the English word means. For
example, for terminals, READ means allowed to logon, not allowed to read
information.
v If the class is not active, RACF does not check for profiles. RACF returns the
default return code of the class to the resource manager. For a complete
description, see Authorization Checking for RACF-Protected Resources on
page 719.
v If more than one profile covers a particular resource, RACF searches for profiles
in the following order:
Discrete profile
Matching generic profiles (see Table 16)
Table 16. Sample General Resource Profile Names in Order from Most Specific to Least Specific
Resources Being Accessed
Profile Name
Profile
Type
COPY.A
Discrete
COPY.WEB.FINAL
Discrete
COPY.WEB.*
Generic
COPY.PAPER
Discrete
COPY.PAPER.TEST
Discrete
COPY.PAPER.%
Generic
COPY.PAPER.*
Generic
COPY.PAPER.**
Generic
COPY.PAPER%
Generic
COPY.PAPER*
COPY
COPY.PAPER
COPY.PAPER.TEST
COPY.WEB.FINAL
X
X
X
X
Generic
COPY.PAPE%
Generic
COPY.PAP*
Generic
COPY.PRINT.*
Generic
COPY.&X (where:
&X = PAPER in
RACFVARS profile)
Generic
COPY.&Y (where:
&Y = WEB.FINAL in
RACFVARS profile)
Generic
COPY.%APER
Generic
COPY.*.FINAL
Generic
COPY.*.FINAL*
Generic
COPY.**.FINAL
Generic
COPY.**.PAPER
Generic
202
General Resources
Table 16. Sample General Resource Profile Names in Order from Most Specific to Least Specific (continued)
Profile Name
Profile
Type
COPY.*
Generic
COPY.**
Generic
COPY*.**
Generic
*.*
Generic
*.**
Generic
*
**
COPY.PAPER
COPY.PAPER.TEST
COPY.WEB.FINAL
Generic
Generic
To determine which profiles have the potential to protect any particular resource,
use the FILTER or MASK operands on the SEARCH command to generate a list of
profiles that might match the resource. For example, you might specify the users
user ID on the FILTER operand to limit the list of profiles displayed. Some
examples follow:
SEARCH CLASS(TAPEVOL) FILTER(**.userid.**)
SEARCH CLASS(JESSPOOL) FILTER(**.userid.**)
In general, the list of profiles generated by the SEARCH command is the order in
which RACF searches for a matching profile. To review the list:
1. Find all profiles that match the resource name.
2. If no profile names match, check for profile names that include an ampersand
(&) (RACF variables). You must list the RACFVARS profile to determine the
value of a RACF variable:
RLIST RACFVARS variable-name
Also, the SEARCH command does not list grouping profiles (such as
GTERMINL) that protect the resource. To do this, use the RESGROUP operand
on the RLIST command.
RLIST member-class resource-name RESGROUP
203
General Resources
blank
.
$ (X'5B')
# (X'7B')
@ (X'7C')
AZ
09
& (X'50')
%
*
For example, the following profile names all match in the first three character
positions (A.B), and are shown in the order RACF examines them:
A.B
A.B.B
A.BA
A.BZ
A.B0
A.B9
A.B&X
A.B%
A.B*
When in doubt about the search order, create sample profiles and check the order
of profile names shown by the SEARCH command.
204
General Resources
Table 17. ALTER, NONE, and CONTROL, UPDATE, and READ Access Authorities for
General Resources
ALTER
For discrete profiles, the specified user or group has full control over the
resource and the resource profile, and can authorize other users and
groups to access the resource.
For generic profiles, only the profile owner, users with the SPECIAL
attribute, and group-SPECIAL users whose groups own the profile have
control over the resource profile and can authorize other users and
groups to access the resource.
For both profiles, full resource access is allowed.
NONE
The specified user or group is not permitted to access the resource or list
the profile.
CONTROL,
UPDATE, READ
205
General Resources
v You can require the batch job accessing the resource to have been submitted
from a particular JES input device by specifying WHEN(JESINPUT(...)) on the
PERMIT command.
The JESINPUT class must be active for this support to take effect.
v You can require that a user enter the system from a particular partner LU by
specifying WHEN(APPCPORT(...)) on the PERMIT command.
The APPCPORT class must be active for this support to take effect.
v You can require that a user enter the system from an IP address contained in a
particular network access security zone by specifying the name of the
SERVAUTH profile protecting that network access security zone on the
WHEN(SERVAUTH(...)) operand of the PERMIT command.
The SERVAUTH class must be active for this support to take effect.
v You can require that a user enter the system from an IP address contained in a
particular network access security zone only when executing a particular program
by specifying the program on the WHEN(PROGRAM) operand of the PERMIT
command, and by specifying the name of the SERVAUTH profile protecting that
network access security zone as the resource.
The PROGRAM and SERVAUTH classes must be active for this support to take
effect.
Note: If an access list contains more than one condition, any of the conditions
allows the specified access. For example, if you enter the PERMIT command
with WHEN(CONSOLE(01) TERMINAL(20)) specified, you allow the access
when either console 01 or terminal 20 is used.
Examples:
To ensure that an operator (or group of operators) can issue certain operator
commands only when logged on at a particular console, enter:
PERMIT profile-name CLASS(OPERCMDS) ID(user or group) ACCESS(READ)
WHEN(CONSOLE(console-id))
You can require a user to access a program from a particular system by specifying
WHEN(SYSID(system-identifier)) on the PERMIT command:
PERMIT profile-name CLASS(PROGRAM) ID(user or group) ACCESS(READ)
WHEN(SYSID(system-identifier))
This conditional access list entry is only valid for the PROGRAM class.
See Program control by SMFID in BASIC or ENHANCED mode on page 308 for
more information.
206
General Resources
further authorization checking. This can avoid I/O to the RACF database to retrieve
a resource profile, and can result in substantial performance improvements.
Global access checking is used for authorization processing invoked by the
RACROUTE REQUEST=AUTH macro. It is not used for authorization processing
invoked by the RACROUTE REQUEST=FASTAUTH macro.
Attention
Because RACF performs global access checking before many of the other
kinds of access authority checks, such as security label checking or access list
checking, global access checking might allow access to a resource you are
otherwise protecting. To avoid a security exposure to a sensitive resource, do
not create an entry in the global access checking table for a resource that is
protected by a profile containing a security level, security category, or security
label. (If the security label in the profile is SYSLOW, a global access checking
table entry with an access authority of READ can be created.)
207
General Resources
1. Plan the entries for the global access checking table, using the following
guidelines:
a. Identify resource profiles that are accessed frequently and for which a
performance benefit is desired.
b. If there are resource profiles with UACC other than NONE, consider adding
similar entries to the global access checking table. Using this matched pair
approach, each entry would have the same name as a profile, and the
access specified in the entry would generally match the UACC of the profile.
Do not add a global access checking table entry if any of the following are
true:
v The profile has a security level, security category, or security label (other
than SYSLOW).
Note: If the profile has a security label of SYSLOW, the global access
checking table entry can have an access of READ.
v The profile has an entry in the standard access list that is lower than the
access level of the global access checking table entry.
v The profile has an entry in a conditional access list that is more restrictive
than the access level of the global access checking table entry.
v The profile requests auditing of successful access attempts at or below
the level specified in the corresponding global access checking table
entry.
For example, if you have a data set profile PHONE.DIRECT with
UACC(READ) and AUDIT(FAILURES(UPDATE)) specified, you might create
a global access checking table entry for it as follows:
RALTER GLOBAL DATASET ADDMEM(PHONE.DIRECT/READ)
However, if there are users or groups in the standard access list of profile
PHONE.DIRECT with an access authority of NONE (which is lower than
the UACC), do not create a global access checking table entry. A global
access checking table entry would allow these users and groups to read the
phone directory.
c. If you have resources that are protected by a generic profile with UACC
other than NONE, and others that are protected by a more specific (generic
or discrete) profile that has specific access requirements such as an access
list, consider adding two entries: one for the larger set of resources (with
access authority equal to the UACC of the profile) and the other for the
smaller set of resources (with access authority of NONE).
For example, if you have a profile of SYS1.** with a UACC(READ), but you
also have some specific profiles with more restrictive entries, such as
SYS1.XYZ with UACC(READ) and an access list with JOE/NONE, create
two entries:
SYS1.XYZ/NONE
SYS1.**/READ
The entry with /NONE does not fail any attempts but stops requests for
SYS1.XYZ from being granted by the SYS1.** entry.
See the examples later in this section for other possible entries.
2. Add the resource class to the global access checking table using the RDEFINE
command with the GLOBAL operand and the class name:
RDEFINE GLOBAL classname
3. To allow global access checking for a specific resource, add an entry to the
global access checking table using the RALTER command as follows:
RALTER GLOBAL classname ADDMEM(resource-name/access-level)
208
General Resources
where:
resource-name
is the equivalent of a profile name in the class specified. If generic
command processing is in effect for classname (through the
SETROPTS GENCMD command), resource-name on the ADDMEM
operand can include the generic characters *, **, or %. In general, the
rules for specifying these characters are the same as the rules for
specifying these characters in generic profile names except that generic
characters are allowed in any qualifier (even if not allowed in certain
qualifiers of the profile names).
After they have been added, generic entries in the global access
checking table are used in global access checking even if generic
profile checking is turned off (through the SETROPTS NOGENERIC
command).
The resource name can also include the name qualifiers &RACUID (RACF
user ID) or &RACGPID (current connect group). For example, the following
entry allows users to have ALTER access to data sets that begin with
their own user IDs.
The resource name can also include variables defined in the
RACFVARS class. Note that when defining a resource name for a
profile in a mixed-case class, you must enter the character strings
&RACUID, &RACGPID, and any RACFVARS variable names in uppercase.
For more information on RACFVARS usage, see Using RACFVARS
with Mixed-Case Classes on page 230.
RALTER GLOBAL DATASET ADDMEM(&RACUID.**/ALTER)
Note: The preceding entry does not change a users access to his or
her own data sets, but speeds the process by which RACF
grants the access. (It also prevents any auditing of such access
attempts.)
The word &RACGPID allows the users current connect group to be used
in the same way. For example, the following allows all users to have
READ access to group data sets for their current connect group:
RALTER GLOBAL DATASET ADDMEM(&RACGPID.**/READ)
Note: If the current connect group is found in the global access table
and list-of-groups processing is in effect, list-of-groups checking
is ignored.
access-level
can be NONE, READ, UPDATE, CONTROL, or ALTER.
For more information on specifying the ADDMEM operand, see z/OS Security
Server RACF Command Language Reference.
4. When you are finished updating the global access checking table, issue the
SETROPTS command with the GLOBAL operand for each class affected:
SETROPTS GLOBAL(classname)
209
General Resources
Attention
Save a listing of the global access checking table. This can help you
recover from the accidental deletion or alteration of the global access
checking table or its entries. You can use the RLIST command to make
this listing quickly.
IBM recommends that you write an EXEC that contains the commands you use
to create the global access checking table. The EXEC should include the RLIST
command to provide an independent record of the actual table created. Also, if
the global access checking table is accidentally deleted (using the RDELETE
command), the EXEC can readily be used to regenerate the table.
5. IBM strongly recommends for all classes that, for each entry in the global
access checking table, you create a similar resource profile. Such a matched
pair approach can help ensure the continuation of protection if global access
checking becomes disabled. For example,
RDEFINE classname resource-name UACC(access-level)
Attention
Do not use the RDELETE command unless you intend to delete the entire
global access checking table for that class.
210
General Resources
SETROPTS
RDEFINE
RALTER
ADDSD
SETROPTS
GLOBAL(DATASET)
GLOBAL DATASET
GLOBAL DATASET ADDMEM(SYS1.HELP/READ)
SYS1.HELP UACC(READ)
GLOBAL(DATASET) REFRESH
Example 2: Group Data Sets: To specify that all users are to have UPDATE
access authority to data sets whose high-level qualifier is the users current connect
group, enter:
RDEFINE GLOBAL DATASET ADDMEM(&RACGPID.**/UPDATE)
Note: &RACGPID entries provide more flexibility than the GRPACC attribute.
Table 18 shows some points of comparison.
Table 18. Comparison of GRPACC Attribute with &RACGPID.** Entry in Global Access
Checking Table
GRPACC Attribute
&RACGPID.** Entry
Applies only to group data set profiles created Applies to all group data sets for all users.
by the user while the user has the GRPACC
attribute.
Always allows UPDATE access.
Works by changing access lists in group data Works the same way for all users in all
set profiles. These can be changed
connect groups. Changes affect all users.
individually later.
Applies only to resources in the DATASET
class.
Example 3: The Master Catalog and User Catalogs: With the exception of a
very select group, users should only be allowed to READ the master catalog. To
allow this, enter:
RALTER GLOBAL DATASET ADDMEM(CATALOG.MASTER.**/READ)
ADDSD CATALOG.MASTER.** UACC(READ)
PERMIT CATALOG.MASTER.** ID(SYSGROUP) ACCESS(CONTROL)
Notes:
1. The exact form of the names specified on these commands depends on the
naming conventions at your installation. This example assumes that catalog
names take the form:
CATALOG.MASTER.MVSESA.Vvvvvvv for a master catalog
and
CATALOG.applic.Vvvvvvv for application-specific catalogs
(for example, TSO or DB2)
2. The access authority that is required to update and maintain the catalog
depends on the DFP release that is installed on your system.
For user catalogs, most users should be allowed to add entries as they create data
sets. To allow this, enter:
RALTER GLOBAL DATASET ADDMEM(CATALOG.**/UPDATE)
ADDSD CATALOG.** UACC(UPDATE)
211
General Resources
This shows the entries in the order in which they are searched by RACF.
v See the DSMON report that lists the global access checking table described in
z/OS Security Server RACF Auditors Guide for a list that shows all entries in the
table.
212
General Resources
where:
profiletype
is one of the following:
v Class name for general resource profiles
v DATASET for data set profiles
v GROUP for group profiles
v USER for user profiles
segmentname
is one of the following:
v BASE for BASE segments (this is supported only by user-written
code)
v CDTINFO for CDTINFO segments
v CICS for CICS segments
v DCE for DCE segments
v DFP for DFP segments
v DLFDATA for DLFDATA segments
v LANGUAGE for LANGUAGE segments
v LNOTES for LNOTES segments
v NDS for NDS segments
v NETVIEW for NETVIEW segments
v OMVS for OMVS segments
Chapter 7. Protecting General Resources
213
General Resources
v
v
v
v
v
v
v
When you specify a UACC of NONE, you prevent all users from accessing the
TSO segment in all user profiles, including their own. Likewise, if you specify a
UACC of READ, you allow all users to read the information contained in all
fields of the TSO segment for all user profiles.
Special Note
Note that the profile name USER.TSO.* is a generic profile name. Before
you issue the above command, generic profile checking for the FIELD
class must be active. If it is not active, issue the SETROPTS
GENERIC(FIELD) command before you define the generic profile.
To control access to specific fields in the TSO segment of user profiles, issue
the RDEFINE command and specify the specific field as the third qualifier in the
profile name. Use Table 19 on page 215 to determine which qualifier to use. For
example, when changing the account number field in a TSO segment, users
specify the ACCTNUM operand on the TSO option of the ALTUSER command:
ALTUSER userid TSO(ACCTNUM(account-number))
2. Allow specific users or groups to have the appropriate access to the field:
PERMIT USER.TSO.TLPROC CLASS(FIELD) ID(TSOADM) ACCESS(UPDATE)
The previous example shows how to create a profile that gives user ID
TSOADM the authority to change the logon procedure (TLPROC field) in the
profiles of all TSO users.
Note: You can also specify the value &RACUID with the ID operand on the
PERMIT command for FIELD profiles. When you enter this value on the
PERMIT command, you allow all users access to the specified field or
segment of their own user profiles. For example, if you issue the
214
General Resources
following command, you allow all users to read the TLPROC field in the
TSO segment of their own user profiles.
PERMIT USER.TSO.TLPROC CLASS(FIELD) ID(&RACUID) ACCESS(READ)
3. When you are ready to start using the protection defined in the profiles, activate
the FIELD class:
SETROPTS CLASSACT(FIELD)
Note: If you do not activate the FIELD class and activate SETROPTS RACLIST
processing for the FIELD class, only SPECIAL users can access fields in
segments (other than the base segment) of RACF profiles.
4. You must activate SETROPTS RACLIST processing for the FIELD general
resource class. For a complete description of this function, see SETROPTS
RACLIST Processing on page 128.
SETROPTS RACLIST(FIELD)
Note: Once you activate SETROPTS RACLIST processing for the FIELD class,
any time you make a change to a FIELD profile, you must also refresh
SETROPTS RACLIST processing for the FIELD class for the change to
take effect.
SETROPTS RACLIST(FIELD) REFRESH
Table 19. Relationship of RACF Command Operands to FIELD Profile Names
To control the use of this operand:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CASE
DEFAULTRC
DEFAULTUACC
FIRST
GENLIST
GROUP
KEYQUALIFIERS
MACPROCESSING
MAXLENGTH
MAXLENX
MEMBER
OPERATIONS
OTHER
POSIT
PROFILESALLOWED
RACLIST
SECLABELSREQUIRED
SIGNAL
CDTCASE
CDTDFTRC
CDTUACC
CDTFIRST
CDTGENL
CDTGROUP
CDTKEYQL
CDTMAC
CDTMAXLN
CDTMAXLX
CDTMEMBR
CDTOPER
CDTOTHER
CDTPOSIT
CDTPRFAL
CDTRACL
CDTSLREQ
CDTSIGL
DCEFLAGS
DCENAME
HOMECELL
HOMEUUID
UUID
215
General Resources
Table 19. Relationship of RACF Command Operands to FIELD Profile Names (continued)
To control the use of this operand:
RESOWNER
DATAAPPL
DATACLAS
MGMTCLAS
STORCLAS
RETAIN
JOBNAMES and JOBNMCNT
USERNL1
USERNL2
SNAME
UNAME
IC
CONSNAME
CTL
MSGRECVR
OPCLASS and OPCLASSN
DOMAINS and DOMAINSN
NGMFADMN
NGMFVSPN
GID
216
ASSIZE
CPUTIME
FILEPROC
HOME
MEMLIMIT
MMAPAREA
PROCUSER
PROGRAM
SHMEMMAX
THREADS
UID
2
2
General Resources
Table 19. Relationship of RACF Command Operands to FIELD Profile Names (continued)
To control the use of this operand:
ALTGRP
AUTH
AUTO
CMDSYS
DOM
KEY
LEVEL
LOGCMDRESP
MFORM
MIGID
MONITOR
MSCOPE
ROUTCODE
STORAGE
UD
GID
FSROOT
HOME
PROGRAM
UID
CONVSEC
KEYINTVL
SLSFLAGS
SESSKEY
SSKEY
SSKEY
STUSER
STGROUP
FLAGPRIV
FLAGTRAC
FLAGTRUS
PARMN SCRIPTN
ROLES
GROUPS
RESOURCE
CHILDREN
PARENT
PARENT
ROLES
TME segment in data set profiles:
ROLES
TME segment in general resource profiles
2
2
2
217
General Resources
Table 19. Relationship of RACF Command Operands to FIELD Profile Names (continued)
To control the use of this operand:
TACCNT
TCOMMAND
TDEST
THCLASS
TJCLASS
TLPROC
TMSIZE
TMCLASS
TSOSLABL
TLSIZE
TSCLASS
TUNIT
TUDATA
WANAME
WABLDG
WADEPT
WAROOM
WAADDR1 through WAADDR4
WAACCNT
Notes:
1. Many operands in this table have corresponding versions that include a prefix of NO. In
addition, several operands have corresponding versions that include prefixes of ADD and
DEL. Refer to the z/OS Security Server RACF Command Language Reference to identify
these.
2. For full field-level access checking and authority protection, define both qualifiers.
218
General Resources
Note: If you activate SETROPTS RACLIST processing for the FACILITY class, any
time you make a change to a FACILITY profile, you must also refresh
SETROPTS RACLIST processing for the FACILITY class for the change to
take effect.
SETROPTS RACLIST(FACILITY) REFRESH
Reference
To allow users to obtain dumps when they are Protecting Program Dumps Using the
using programs to which they only have
FACILITY Class on page 251
EXECUTE authority, using the
IEAABD.DMPAUTH resource
To allow users to open tape data sets for
input without removing the write-enable ring
(or equivalent), using the IEC.TAPERING
resource
219
General Resources
Attention
Make sure an existing generic profile in the FACILITY class does not
inadvertently grant this authority by default! The safest approach is to protect
the IRR.LISTUSER resource with UACC(NONE) until you determine which
users should be granted authority to list user information.
A general user can list the base segment of another users USER profile if the
command issuer has READ access to the IRR.LISTUSER resource in the FACILITY
class. However, this authority does not apply when the target of the LISTUSER
command has any of the SPECIAL, AUDITOR, or OPERATIONS attributes.
RACF does not log failed access attempts to IRR.LISTUSER. Rather, these
attempts are logged as LISTUSER command violations. Successful accesses to
IRR.LISTUSER are logged at the installations discretion.
Attention
Make sure an existing generic profile in the FACILITY class does not
inadvertently grant this authority by default! The safest approach is to protect
the IRR.PASSWORD.RESET resource with UACC(NONE) until you determine
which users should be granted authority to resume user IDs and reset user
passwords.
220
General Resources
RACF does not log failed access attempts to IRR.PASSWORD.RESET. Rather,
these attempts are logged as ALTUSER command violations. Successful accesses
to IRR.PASSWORD.RESET are logged at the installations discretion.
Example 1
A group of help desk administrators requires the ability to view user profile
information, reset users passwords, and resume user IDs that have been revoked.
These administrators are members of the HELPDESK group in RACF. The following
commands provide the necessary authorization to the HELPDESK group:
RDEFINE
PERMIT
RDEFINE
PERMIT
ACCESS(READ)
SETROPTS CLASSACT(FACILITY)
Example 2
An administrator with user ID JBAEZ is responsible for maintaining various
application user IDs. Often, the passwords for these application user IDs need to be
reset. The administrator uses the NOEXPIRED operand of the ALTUSER command
so that the new password value does not need to be changed at the next logon of
the application user ID. The administrator can be authorized for this task by
granting the JBAEZ user ID UPDATE access to the IRR.PASSWORD.RESET
resource in the FACILITY class as follows:
RDEFINE
PERMIT
SETROPTS CLASSACT(FACILITY)
ALTUSER Examples
Example 1: Resetting a Users Password: A help desk consultant has been
authorized to reset passwords. The consultants RACF user ID (or the RACF group
associated with the consultants user ID) has been permitted by the security
administrator with READ access to the IRR.PASSWORD.RESET resource in the
FACILITY class. To reset user JIMBOBs password, the consultant enters:
ALTUSER JIMBOB PASSWORD(TEMP012X)
221
General Resources
A resource group profile is a general resource profile with the following special
characteristics:
v Its name does not match the resources it protects.
v The ADDMEM operand (not the profile name itself) specifies the resources it
protects.
v Its class is a resource group class (for example, GTERMINL or GDASDVOL).
v The related member class (not the resource group class itself) must be
RACLISTed. For example, the TERMINAL class must be RACLISTed, not the
GTERMINL class. Depending on the class, RACLISTing is accomplished using
the SETROPTS command or RACROUTE REQUEST=LIST.
For example, the following profile protects three terminals that have unlike names,
M01RF267, M03RF168, and M04GG148:
RDEFINE GTERMINL DEPT35 UACC(NONE) ADDMEM(M01RF267 M03RF168 M04GG148)
Certain member classes cannot be used with RACF commands because they are
associated with resource grouping classes that have special uses. The member
classes are GMBR, NODMBR, PMBR, RVARSMBR, SCDMBR, VMBR, and
VXMBR. Their associated resource grouping classes are GLOBAL, NODES,
PROGRAM, RACFVARS, SECDATA, VMEVENT, and VMXEVENT, respectively.
Table 21 shows the resource group classes and their related member classes.
Table 21. Resource Group Classes
Resource
Terminals
GTERMINL
TERMINAL
DASD volumes
GDASDVOL
DASDVOL
IMS transactions
GIMS
TIMS
CICS transactions
GCICSTRN
TCICSTRN
CICS tables
GSDSF
SDSF
Cryptographic keys
GCSFKEYS
CSFKEYS
Information/Management resources
GINFOMAN
INFOMAN
Installation-defined classes
To use resource group profiles, take the following steps (terminals are used as a
readily understood example):
1. Create the resource group profile:
RDEFINE GTERMINL profile-name UACC(NONE)
ADDMEM(resource-name-with-or-without-generic-character...)
where:
GTERMINL
profile-name
resource-name...
is the name of the resource to be protected, for example, a
terminal ID or DASD volume serial number. If you first activate
222
General Resources
generic profile checking for the related member class, you can
include a generic character (*, **, or %) in the resource name.
2. Grant the appropriate access to the appropriate users and groups. In the
following example, READ access is given to users in group GROUPA:
PERMIT DEPT35 CLASS(GTERMINL) ID(GROUPA) ACCESS(READ)
3. When you are ready to start using the protection defined in the profiles, activate
the member class. For classes other than the CICS1 and IMS-related classes,
you must also activate SETROPTS RACLIST processing for the member class.
For example, for terminals, issue the following command:
SETROPTS CLASSACT(TERMINAL) RACLIST(TERMINAL)
Note: Any time you make a change to a GTERMINL profile, you must also
refresh SETROPTS RACLIST processing for the TERMINAL class for the
change to take effect:
SETROPTS RACLIST(TERMINAL) REFRESH
For CICS1 and IMS-related classes, you only need to activate the class (you
cannot request RACLIST processing using the SETROPTS command):
SETROPTS CLASSACT(TIMS)
Make sure to specify the member class (such as TERMINAL or DASDVOL) on the
RLIST command. The profiles that protect the terminal appear in the RLIST output
under the RESOURCE GROUPS heading.
1. The FCICSFCT class is an exception. You can use SETROPTS RACLIST with that class.
Chapter 7. Protecting General Resources
223
General Resources
For example, assume that the following commands were issued:
RDEFINE GTERMINL DEPT20 ADDMEM(T1 T2 T3)
RDEFINE GTERMINL DEPT22 ADDMEM(T3)
Note: If a member class profile exists for the resource (in this example, if
RDEFINE TERMINAL T3 had been issued), the RLIST output includes both
the resource groups and the listing of the TERMINAL profile.
Example
The first security label found is RACF chooses the security label of the first profile it
chosen.
encounters during RACLIST processing and ignores the
security labels for subsequent profiles that must be merged.
Therefore, the value of the merged security label depends
on the order in which the profiles are processed.
If you do not want to use the default rules for merging the information from multiple
profiles, you can use the REQUEST=LIST exit routines to change them.
For more information about RACLIST processing and the REQUEST=LIST exit
routines, see z/OS Security Server RACF System Programmers Guide and z/OS
Security Server RACROUTE Macro Reference.
Because of the way in which profiles are merged, it can be difficult to determine
exactly what protection any one resource has. Accordingly, IBM recommends that
224
General Resources
you do not specify the same resource in more than one profile, and restricts the
ability to create identically named generic profiles to the profile owner or
system-SPECIAL users.
v
v
v
v
225
General Resources
terminal authorizations. For example, the SEARCH command lists profile names
for only one class at a time: GTERMINL or TERMINAL.
Note: Remember that you can use RLIST to find the generic that matches a
name only if you use member class profiles. RLIST does not provide this
support for members of grouping class profiles. Therefore, you must
decide which approach is easier to administer. It may be better to define
all discrete names as members of grouping profiles and all generic names
as member class profiles. That allows you to use multiple SEARCH or
RLIST commands when necessary.
When converting generic TERMINAL profiles to GTERMINL profiles, you can
specify generic characters on the ADDMEM operand to obtain the same
coverage.
226
General Resources
protected by a TAPEVOL profile called &PAYTAPE, issue a PERMIT command for
the profile in the TAPEVOL class, not the profile in the RACFVARS class. However,
to allow a user to change the RACFVARS profile called &PAYTAPE, give the user
ALTER access authority to the profile in the RACFVARS class, not the profile in the
TAPEVOL class.
Because the RACFVARS class requires high performance, you must RACLIST the
profiles. To activate the RACFVARS class and RACLIST the profiles, enter:
SETROPTS CLASSACT(RACFVARS) RACLIST(RACFVARS)
Any time a change is made to a RACFVARS profile, the in-storage profiles for the
RACFVARS class must be refreshed for the changes to take effect. To refresh the
in-storage profiles for the RACFVARS class, enter:
SETROPTS RACLIST(RACFVARS) REFRESH
If you later need to add a tape volume called C44TAP to the list of protected tape
volumes, enter:
RALTER
RACFVARS &PAYTAPE ADDMEM(C44TAP)
SETROPTS RACLIST(RACFVARS) REFRESH
227
General Resources
several job names as members. If you then define a JESJOBS profile called
SUBMIT.*.&PROTJOB.*, the profile protects all of the member job names from any
node and any user.
In a profile name, a variable name is ended by the eighth character, the end of the
profile name, or one of the following characters, whichever occurs first: a period (.),
another ampersand (&), a percent sign (%), or an asterisk (*).
For example, suppose you define the following profile:
RDEFINE RACFVARS &ABCDEFG ADDMEM(A B)
RACFVARS Considerations
To create a RACFVARS member list, use the RDEFINE command with the
ADDMEM operand. To add RACFVARS members to an existing member list, use
the RALTER command with the ADDMEM operand. To reorder a RACFVARS
member list, delete the variable by using RDELETE, and redefine it. To list a
RACFVARS member list, use the RLIST command.
Note: The RLIST command lists the members of the RACFVARS in alphabetic
order, not in the order entered.
When RACF compares a resource name with a profile name containing
RACFVARS, it compares the resource name with each name in the RACFVARS
member list. The member names are arranged in the order entered. The oldest
member name (the first name in the member list) is checked first and the last
member name is checked last. Each character of the resource name is compared
with each character of the RACFVARS member name. The search stops at the first
match of a sequence of characters in the resource name and a RACFVARS
member name.
This method of checking can cause unexpected results; for instance, when the
member list contains names that are a subset of other members in the list. In this
case, the resource name does not match the expected profile name.
The following three examples point out some important factors to consider when
working with RACFVARS.
228
General Resources
Example 1
RDEFINE RACFVARS &CTM ADDMEM(TEST TESTA)
RDEFINE SURROGAT &CTM.SUBMIT UACC(NONE)
PERMIT &CTM.SUBMIT CLASS(SURROGAT) ID(USER1) ACCESS(READ)
The failure occurs because RACF checking stops when the first four
characters of the specified resource name, TESTA, match the first RACFVARS
member, TEST, leaving the letter A. The remaining letter A is considered a
specific part of the resource name and there is no corresponding specific part
in the profile name to which it can be matched.
As a precaution, when adding RACFVARS members, order the member
names. The member names that are a subset of other names should follow
the names of which they are a subset.
In the preceding example, TEST is a subset of TESTA. Therefore, to obtain
the expected result, reverse the members in the RACFVARS member list.
RDEFINE RACFVARS &CTM UACC(NONE) ADDMEM(TESTA TEST)
Note: Ordering the members solves the problem in the previous example.
However, this may not be the desired order in all cases.
Example 2
RDEFINE RACFVARS &R ADDMEM(AB A)
RDEFINE ACCTNUM &R%.X UACC(NONE)
PERMIT &R%.X CLASS(ACCTNUM) ID(USER1) ACCESS(READ)
In this example, TSO user USER1 attempts to log on with account number
AB.X, but profile &R%.X does not match. This results in the following error
message:
IKJ56486I
THE ACCOUNT NUMBER AB.X HAS NOT BEEN DEFINED FOR USE
When you use any of the following to define a profile name, unexpected results can
occur:
v Multiple RACFVARS
v A combination of RACFVARS and generic characters
v A combination of RACFVARS and specific names
Chapter 7. Protecting General Resources
229
General Resources
Example 3
RDEFINE
PERMIT
RDEFINE
RDEFINE
The job AB1 submitted by USER1 on system PLPSC, with USER=AB on the
job card, results in a failure and the following error message:
$HASP165
The failure occurs because RACF checking for the resource name, AB,
matches the first member of &A, which is AB. Because there is no part of the
resource name to match the second part of the profile name specified by &B,
the compare fails.
The resource name must match with a member of each of the RACFVARS
used to define a profile.
To obtain the expected results, reverse the members in the RACFVARS
member list of &A:
RDEFINE RACFVARS &A UACC(NONE) ADDMEM(A AB)
However, the set of resource names that was valid has now changed. For
example, the specific resource name, ABB, was valid and is no longer valid.
Because the &VAR profile can contain only members with uppercase names (CAT,
DOG, and FISH), a resource named My.Pet.FISH is covered by these profiles, but
My.Pet.Fish is not.
230
General Resources
Note: Do not enter profile name My.Pet.&var because, although RACF will accept
the name, the character string &var will not match the RACFVARS profile
name &VAR and will not be recognized as a RACF variable.
where:
local-netid, remote-netid
are the network IDs (NETID) of the partners. These IDs are
specified on the VTAM start option NETID, which is in the
ATCSTRxx member of SYS1.VTAMLST.
luid1, luid2
231
General Resources
SESSION option of the RDEFINE and RALTER commands. You can specify the
following information in each SESSION segment:
CONVSEC
INTERVAL
LOCK
SESSKEY(session-key)
Specifies the password used to verify sessions between the
partners of this LU pair. If specified, the SESSKEY value must
be the same in both APPCLU profiles for this LU pair. A session
key may be required based on the VERIFY option specified on
the VTAM APPL statement for this LU pair.
Note: Session keys are 64-bit data encryption standard (DES)
keys. With 64-bit DES encryption, 8 of the 64 bits are
reserved for use as parity bits. This means that those 8
bits are not part of the 56-key. In hexadecimal notation,
the DES parity bits are: X'0101 0101 0101 0101'.
Therefore, any two 64-bit keys are equivalent if their only
difference is in one or more of these parity bits. For
example, the following SESSKEY values, although
appearing to be quite different, are equivalent because
they differ only in the last bit of each byte:
BDF0KM4Q (X'C2C4 C6F0 D2D4 F4D8'
CEG1LN5R (X'C3C5 C7F1 D3D5 F5D9'
For detailed information about using the RDEFINE and RALTER commands to
define options in the SESSION segment, see z/OS Security Server RACF
Command Language Reference.
4. Optionally, for maintenance purposes, give users and groups appropriate access
authority:
PERMIT profile-name CLASS(APPCLU) ID(userid or groupname)
ACCESS(access-authority)
READ
Allows users to list the profile (for example, using the RLIST
and SEARCH commands)
UPDATE
CONTROL
ALTER
5. When you are ready to start using the protection defined in the profiles, activate
the APPCLU class on every system on which you want to use the APPCLU
profiles:
SETROPTS CLASSACT(APPCLU)
Note: You cannot issue the SETROPTS RACLIST command for the APPCLU
class. VTAM does this for you (using RACROUTE REQUEST=LIST).
Example:
232
General Resources
Suppose there are two large nodes, one in New York and the other in Tokyo.
Network-qualified names support is not enabled.
New York node
Tokyo node
Protecting Applications
You can use a combination of a profile in the APPL class and the APPL operand on
the RACROUTE REQUEST=VERIFY macro to control which users can use an
application as they enter the system.
To do this, take the following steps:
1. Determine the name of your application.
2. Specify the name of the application on the APPL operand of the RACROUTE
REQUEST=VERIFY macro.
3. Create a profile in the APPL class:
RDEFINE APPL applname UACC(NONE)
5. If you have not already done so, activate the APPL class:
SETROPTS CLASSACT(APPL)
233
General Resources
Avoid activating the TEMPDSN class when current users or jobs are using
temporary data sets. Otherwise, you could cause users or jobs to receive an
ABEND, as shown in the following scenario:
1. The job or user allocates a temporary data set.
2. You activate the TEMPDSN class.
3. The job or user opens the data set.
4. Because activating the TEMPDSN class restricts the authority to open a
temporary data set, the user or job receives an abend.
v If you have not already done so, activate the LFSCLASS class:
SETROPTS CLASSACT(LFSCLASS)
Note: RACF supports the backslash (\) character for use with the LFSCLASS
class. However, you may need to change your VTAM translation table to
support the backslash (\). For more information, refer to z/OS TSO/E
Programming Guide for your operating system.
234
General Resources
Protecting Terminals
There are several methods of controlling the use of terminals that are connected to
your system. The following sections describe these methods:
v Creating Profiles in the TERMINAL and GTERMINL Classes. You must give
users at least READ access authority in order to allow them to use protected
terminals.You must do this before using any of the other methods for controlling
terminals.
v Controlling the Use of Undefined Terminals on page 236. By specifying
TERMINAL(NONE) on the SETROPTS command, you can prevent users from
logging on to terminals unless the terminals are protected by profiles in the
TERMINAL or GTERMINL classes.
Attention
Do not protect undefined terminals unless you have created profiles that
allow users to access the terminals they currently use.
v Limiting Specific Groups of Users to Specific Terminals on page 237. By
specifying NOTERMUACC on the ADDGROUP or ALTGROUP command, you
can restrict users in those groups to terminals whose access lists specifically
allow the user or the users group to use the terminal.
v Limiting the Times That a Terminal Can Be Used on page 238. By specifying
the WHEN operand on the RDEFINE and RALTER commands for profiles in the
TERMINAL and GTERMINL classes, you can specify the days and times that
users can log on to terminals.
v Using Security Labels to Control Terminals on page 238. If the SECLABEL
class is active, you can control access to terminals by specifying security labels
for profiles in the TERMINAL and GTERMINL classes.
v Using the TSO LOGON Command with the RECONNECT Operand on page
238. TSO allows verification and checking so that a user can resume an
interrupted session from a new terminal.
For a description of authorization checking for terminals, see Authorizing Access to
RACF-Protected Terminals on page 732.
On systems using VTAM or TCAM, the terminals node name is the RACF
resource name. On systems using BTAM, the resource name for the terminal
consists of the relative line and terminal number. This information can be
obtained from the system programmer who is responsible for the Network
Communication Program (NCP) system generations for your installation.
2. Use the PERMIT command to allow users and groups to use the terminal. You
must give a user at least READ access authority to the terminal. Otherwise, the
user is not authorized to use the terminal. For example, the following command
grants users SMITH and JONES READ access authority to terminal M01RF627.
Chapter 7. Protecting General Resources
235
General Resources
PERMIT M01RF267 CLASS(TERMINAL) ID(SMITH JONES) ACCESS(READ)
Attention
After you define a terminal and protect it with a UACC of NONE, no one
can use the terminal until you grant users or groups READ access
authority to the resource.
3. When you are ready to start using the protection defined in the profiles, activate
the TERMINAL class. You should also consider activating SETROPTS RACLIST
processing for the class. SETROPTS RACLIST processing helps ensure high
performance when access authorities are checked. Also, if you are using
GTERMINL profiles, you must request RACLIST processing for the TERMINAL
class. You can do these two actions in one command:
SETROPTS CLASSACT(TERMINAL) RACLIST(TERMINAL)
Note: When you activate the TERMINAL class, RACF also activates the
GTERMINL class.
Creating a Profile in the GTERMINL Class: If you want to protect several
terminals in the same way, but their names do not allow you to create a generic
profile, you can create a profile in the GTERMINL class for them. For example, to
protect terminals M01RF267, M03RF168, and M04GG148 with one profile, you
could create a profile with a name you choose, such as DEPT35:
RDEFINE GTERMINL DEPT35 UACC(NONE) ADDMEM(M01RF267 M03RF168 M04GG148)
To stop protecting terminal M03RF168 with this profile, change the DEPT35 profile
as follows:
RALTER
GTERMINL DEPT35 DELMEM(M03RF168)
SETROPTS RACLIST(TERMINAL) REFRESH
236
General Resources
To prevent undefined terminals from being used for logging on, enter:
SETROPTS TERMINAL(NONE)
Attention
Before you specify NONE, be sure that you define some terminals to RACF
and give the appropriate users and groups proper authorization to use them.
Otherwise, no one can log on to your system.
Attention
Before you specify NONE, be sure that you define some terminals to RACF
and give the appropriate users and groups proper authorization to use them.
Otherwise, no one can log on to your system.
This prevents users in group PAYROLL from logging on to another terminal just
because the profile protecting that terminal has a UACC of READ.
237
General Resources
Note: If the list-of-groups option (SETROPTS GRPLIST) is in effect, RACF uses
the TERMUACC/NOTERMUACC option from the users current connect
group, but RACF can grant terminal access through any of the users
connect groups.
Tip: When a user is connected to multiple groups and the application he
uses to logon allows him to specify a group name in addition to a user ID,
define NOTERMUACC on each of his group connections to ensure that the
user can logon only to terminals that he or one of his connect groups is
explicitly authorized to access.
238
General Resources
Protecting Consoles
You can require operators to log onto and log off from MCS-managed consoles by
specifying options in the CONSOLxx member of the SYS1.PARMLIB data set. For
more information, see:
v z/OS MVS Initialization and Tuning Reference
v z/OS MVS System Commands
v z/OS MVS Planning: Operations
When the CONSOLE class is active and a console being used is protected by a
profile in the CONSOLE class, RACF ensures that the person attempting to logon
has the proper authority to do so. Using RACF, you can control the use of JES and
MCS system consoles on your system. This section describes how to protect MCS
consoles. See also Remote Workstations (RJP/RJE Consoles) on page 508.
Notes:
1. The SETROPTS TERMINAL command does not apply to consoles.
2. The TERMUACC operand on the ADDGROUP and ALTGROUP commands
does not apply to consoles.
3. You cannot specify the WHEN operand on the RDEFINE and RALTER
commands for profiles in the CONSOLE class.
For a description of authorization checking for consoles, see Authorizing Access to
Consoles, JES Input Devices, APPC Partner LUs, or IP Addresses on page 733.
To control the use of MCS consoles, take the following steps:
1. Ask your system programmer for the following information:
v The name or ID of the console to be protected
Sysplex consideration: If you share the RACF database with down-level
systems, the console may have a 2-byte console ID rather than a console
name. To protect a console ID, define the resource using the console ID in
place of the console name.
v The universal access authority (UACC) to specify for the console
v The user ID or group name of the operator or operators to whom you want to
grant access
v The security label to be assigned to that console (if security labels are being
used)
2. Create a profile for each console using the RDEFINE command:
RDEFINE CONSOLE console-name UACC(NONE)
For example, the following command defines a profile for console CON1 and
specifies a UACC of NONE.
RDEFINE CONSOLE CON1 UACC(NONE)
3. Use the PERMIT command to allow users and groups to use the console. You
must give a user at least READ access authority to the console. Otherwise, the
user is not authorized to use the console.
For example, the following command grants READ access authority to group
OPRGRP1 and user JONES for CON1.
PERMIT CON1 CLASS(CONSOLE) ID(OPRGRP1 JONES) ACCESS(READ)
239
General Resources
Attention
After you define a console and protect it with a UACC of NONE, no one
can log on to the console until you grant users access authority to the
console profile.
For consoles, the valid access authorities are:
NONE
Allows no access
READ
If the CONSOLE class is already active and RACLISTed, issue the following
command to activate your CONSOLE profile changes:
SETROPTS RACLIST(CONSOLE) REFRESH
240
General Resources
For information about the programming that is needed for an application to generate
a PassTicket, see z/OS Security Server RACF System Programmers Guide.
After you activate the PTKTDATA class, you can define the necessary profiles.
Note: After you define or change the profiles, you need to refresh the class by
entering SETROPTS RACLIST (PTKTDATA) REFRESH.
where:
PTKTDATA
specifies the PassTicket key class.
profile-name
is the name of the profile (see Determining Profile Names on page 242).
For the PTKTDATA class, the profile must be a discrete profile. Because each
application must be uniquely defined, you cannot specify a generic profile in the
2. Because it only gives one user access to a specific application for approximately 10 minutes, a RACF PassTicket is resistant to
reuse. For most applications, once a particular PassTicket is used, the same user cannot use it again for the same application
during the same 10-minute interval. By keeping a copy of all used valid PassTickets for the duration of the 10-minute interval
during which they might possibly be used again, RACF provides another level of protection against reuse. For performance
reasons, RACF uses main memory for this storage. If an application can run on more than one computer with individual memory at
the same time, this level of reuse protection might not be available.
Chapter 7. Protecting General Resources
241
General Resources
PTKTDATA class. If you specify a generic profile, it is ignored during PassTicket
processing for the application, and PassTickets cannot be used to authenticate
users for that application.
key-description
defines the secured signon application key and specifies the method RACF is to
use to protect it in the RACF database on the host. You can specify either
masking or encryption for the method (see Protecting the Secured Signon
Application Keys on page 245).
Secured signon keys are 64-bit Data Encryption Standard (DES) keys. With
DES, 8 of the 64 bits are reserved for use as parity bits, so those 8 bits are not
part of the 56-bit key. In hexadecimal notation, the DES parity bits are: X'0101
0101 0101 0101'. Any two 64-bit keys are equivalent DES keys if their only
difference is in one or more of these parity bits.
access-authority
is the universal access authority to be associated with the resource protected
by this profile. By default, the UACC is NONE for the PTKTDATA class.
After a profile in the PTKTDATA class has been created, you can change it with the
RALTER command, which is similar in syntax to the RDEFINE command:
RALTER PTKTDATA profile-name
SSIGNON(key-description)
UACC(access-authority)
242
General Resources
1. Assuming there is at least one qualified profile, RACF selects one qualified
profile name according to the precedence shown in the previous list (items 1, 2,
and 3).
The first qualified profile found using this search precedence is selected and
RACF evaluates the PassTicket using this key. Any other profiles with qualified
names are ignored.
2. If no qualified name is found, or the evaluation using the key within the qualified
profile is not successful because the key is not correct, RACF searches for a
profile using only the application name. If such a profile exists, RACF evaluates
the PassTicket using the key contained within this profile.
Depending on the application (APPC, CICS, IMS, MVS batch, TSO, or VM), the
secured signon function uses a specific method for determining profile names in the
PTKTDATA class. If your application is other than those listed, see Other
applications on page 245.
Note: Check with your system programmer to see if your installation is using RACF
exit ICHRIX01 to modify the application name that RACF uses during user
verification processing. If so, the application name used to determine the
PTKTDATA class profile name for APPC, CICS, IMS, MVS batch, TSO, or
VM applications must match the application name ICHRIX01 selects.
For example, if the ICHRIX01 exit places the character string TSO1234 in the
application name position of the exit parameter list, the application name
position of the PTKTDATA class profile must also be TSO1234.
APPC, CICS, or IMS: To define a profile for an APPC, CICS, or IMS application,
define the profile to the PTKTDATA class with a left-most qualifier that matches the
standard naming conventions you use to define these applications to the APPL
class.
v For general information on the APPL class, see Protecting Applications on page
233.
v For APPC information, see RACF and APPC on page 276.
v For CICS information, see CICS RACF Security Guide.
v For IMS information, see Chapter 16, RACF and Information Management
System (IMS), on page 455.
MVS Batch Jobs: For MVS batch jobs that include RACF passwords in the job
control language (JCL), you can replace the password with a PassTicket. To define
a profile for an MVS batch job:
1. Ask the system programmer for the SMF system identifier of the MVS system
on which the application is running. It is located in SMFPRMxx member of
SYS1.PARMLIB and is specified by the SID value.
2. Determine the left-most qualifier name of the profile to represent the MVS batch
job application to the PTKTDATA class by using the characters MVS as a prefix
to the systems SMF identifier.
Example: Creating an MVS Batch Job Profile Name:
The SMF identifier of the system the MVS batch job application is running on is
SYS2. To create the profile name, use MVS as the prefix. The resulting profile name
is MVSSYS2.
243
General Resources
If the profile applies only to RACF users connected to the RACF group PROD, the
resulting profile name is MVSSYS2.PROD.
Note: If the SMF identifier contains blanks or characters that are not alphanumeric,
they cannot be specified in the profile name. For example, if the SMF
identifier is SY*6, you must specify the profile defined to the PTKTDATA class
as MVSSY6.
TSO: Ask the system programmer if a VTAM generic resource name for TSO is
being used, then reference the appropriate information below.
Creating a TSO Profile Name (when a VTAM Generic Resource Name for TSO is
Used): If VTAM generic resource naming is used for TSO application names, ask
the system programmer for the generic name for TSO, and use it as the left-most
qualifier of the PTKTDATA profile name.
The VTAM generic resource name for TSO is located in:
v The GNAME value in the TSOKEYxx member of SYS1.PARMLIB.
v The GNAME= operand of the START command issued to start TSO.
Example: The VTAM generic resource name for TSO on your system is TSOGR,
and a PTKTDATA profile needs to be created for the TSO application. Use the
VTAM generic resource name as the profile name. The resulting profile name is
TSOGR. If the profile applies only to RACF users connected to the RACF group
PROD, the resulting profile name is TSOGR.PROD.
Notes:
1. A VTAM generic resource name allow the name by which an application is
known to its end users to be different from the actual application name on a
given execution system. This allows multiple real application servers to be used
by large numbers of users who request the services of the application name by
its generic name, while the requested service is actually provided by multiple
backend application servers. With VTAM generic resources, the real back-end
application name does not need to be exposed to end users, since they refer to
the application only by its generic name.
2. During TSO signon PassTicket evaluation, RACF checks the VTAM terminal
address space control table (TCAST) for a VTAM generic resource name for
each TSO application environment. If a VTAM generic resource name exists for
this particular TSO application, it is used as the application name by RACF for
the evaluation process. This results in consistency of application names
between PassTicket generation time and evaluation time.
Creating a TSO Profile Name (when a VTAM Generic Resource Name for TSO is
Not Used): If VTAM generic resource naming is not used for TSO, you should:
1. Ask the system programmer for the SMF system identifier of the MVS system
where the application is running.
The SMF system identifier is located in the SMFPRMxx member of
SYS1.PARMLIB and is specified by the SID value.
2. Determine the left-most qualifier of the profile name to represent the TSO
application in the PTKTDATA class by using the characters TSO as a prefix to
the systems SMF identifier.
Example: The SMF identifier of the system the TSO application is running on is
SYS2. To create the profile name, use TSO as the prefix. The resulting profile name is
244
General Resources
TSOSYS2. If the profile applies only to RACF users connected to the RACF group
PROD, the resulting profile name is TSOSYS2.PROD.
Note: If the SMF identifier contains blanks or characters that are not alphanumeric,
they cannot be specified in the profile name. For example, if the SMF
identifier is SY-5, you must specify the profile defined to the PTKTDATA class
as TSOSY5.
VM Logon: If you are sharing a database with a VM system, you can define a
profile for VM:
1. Ask the system programmer for the system ID of the VM system. It can be
located by examining the CPU-ID (system ID) field in the RACF SMF
CONTROL file.
2. Determine the left-most qualifier name of the profile to represent VM to the
PTKTDATA class by using the characters VM as a prefix to the CPU-ID field.
Example: Creating a VM Profile Name:
The system ID of the VM system is ISGR8. To create the profile name, use VM as the
prefix. The resulting profile name is VMISGR8.
If the profile applied only to RACF users connected to the RACF group PROD, the
resulting profile name would be VMISGR8.PROD.
Note: If the CPU-ID field contains blanks or characters that are not alphanumeric,
they cannot be specified in the profile name. For example, if the CPU-ID field
contains VM7, you must specify the profile defined to the PTKTDATA class as
VMVM7.
Other applications: If your application is other than APPC, CICS, IMS, MVS
batch, TSO or VM, define the application name that your application passes to
RACF in the APPL parameter of the RACROUTE REQUEST=VERIFY as the name
of your PTKTDATA profile. If your application does not pass an application name,
follow the instructions for creating an MVS batch job profile name. See MVS Batch
Jobs on page 243.
If your application is the HTTP Server for z/OS or OS/390, use OMVSAPPL as the
name of you PTKTDATA profile.
245
General Resources
database is an IBM proprietary algorithm. It is designed to provide protection
against casual viewing of the secured signon masked keys. The algorithm is not a
cryptographic algorithm and cannot provide the level of security for the secured
signon application keys that the use of cryptography can provide.
To mask the secured signon application key when you define or alter it, use the
SSIGNON operand and KEYMASKED value with the RDEFINE or RALTER
command.
Encrypting the Secured Signon Application Key: You can encrypt the secured
signon application keys when a common cryptographic architecture (CCA)
cryptographic product is installed on the systems where the secured signon function
is installed.
Using a cryptographic product ensures the maximum possible security for the
secured signon application keys.
With a cryptographic product, RACF can store the keys on the RACF database in a
form in which they are encrypted under the cryptographic products master key.
RACF uses the functions of the cryptographic product to ensure that the encrypted
keys do not exist in clear-text form within system main storage for RACF
processing, except when they are being defined. Therefore, if a system storage
dump occurs, they are not exposed in the dump.
Note: When using the secured signon facilities with encryption, some of the
Integrated Cryptographic Service Facility (ICSF) modules must be put in the
link pack area (LPA) or the modified link pack area (MLPA) so these modules
can be accessed from RACF. The modules that must be put in the LPA or
MLPA are:
v CSNBCKI
v CSNBDEC
v CSNBENC
v CSNBKRC
v CSNBKRD
v CSNBKRW
|
|
|
|
|
|
|
|
|
|
|
Depending on the release of ICSF, some of these modules may not exist.
RACF checks ICSF and only uses existing modules.
|
|
To encrypt the secured signon application key when you define or alter it, use the
SSIGNON operand and KEYENCRYPTED value with the RDEFINE or RALTER
command.
246
General Resources
3. RACF sends a message to the SYSLOG and to the security console. The application rejects the logon request the same way it
rejects an incorrect password. The text of the message the user receives depends on the application.
Chapter 7. Protecting General Resources
247
General Resources
PassTicket information. You can still use the MVS local time for local
timestamp information, and resetting the local time does not affect the GMT
value kept in the TOD clock.
Attention
Before setting the TOD clocks GMT value to UTC, make sure that the
subsystems and applications you use are not affected.
To be sure the MVS system clock is set properly, the system console
operator should issue:
DISPLAY T
The system displays the time with information similar to the following:
IEE136I LOCAL: TIME=14.06.18 DATE=1997.309
GMT: TIME=19.06.18 DATE=1997.309
Attention
If the MVS DISPLAY T command indicates that your system clock is not
set correctly for GMT, you need to analyze the consequences of
resetting the clock. It is possible that other programs that execute on
the system have been adjusted to tolerate an incorrect GMT setting.
You may need to readjust those programs before resetting the system
clock.
See z/OS MVS Initialization and Tuning Reference and z/OS MVS System
Commands for more information on setting clocks. See z/OS Security Server
RACF Macros and Interfaces for more information on the algorithms.
v If the value was used before, and if PassTicket replay protection has not
been bypassed, the user receives a message from the application4 indicating
that the password is not valid.
v If the value was not used before, the PassTicket is considered valid and
processing continues.
Determines whether the value is a valid PassTicket.
v If the PassTicket is valid, RACF gives the user access to the desired
application.
v If the value is not valid, the host application sends a message5 to the user
indicating that the password is not valid.
Note: If the secured signon application key is encrypted, the cryptographic product
must be active when RACF tries to authenticate the PassTicket. If it is not
active, RACF cannot validate the PassTicket. The resulting message
indicates that the logon attempt failed.
4. RACF sends a message to the SYSLOG and to the security console. The application rejects the logon request the same way it
rejects an incorrect password. The text of the message the user receives depends on the application.
5. See the previous footnote.
248
General Resources
10-minute PassTicket replay protection to be bypassed for selected applications or
combinations of selected applications, users, or groups.
You indicate that replay protection is to be bypassed for a particular application by
adding the text string NO REPLAY PROTECTION to the APPLDATA field of the
PTKTDATA profile for that application. You must separate each word in the string
with a single blank space, alphanumeric character, or keyboard symbol. The
NO REPLAY PROTECTION text string will always be rolled to upper case by the
RALTER or RDEFINE commands.
The NO REPLAY PROTECTION text string may appear anywhere within the APPLDATA
field, allowing for the existence of other information already in the field, or for new
information that may be added in the future.
The following are examples of commands that will cause PassTicket replay
protection to be bypassed:
RALTER PTKTDATA profile-name APPLDATA(NO REPLAY PROTECTION)
RDEFINE PTKTDATA profile-name APPLDATA(NO REPLAY PROTECTION)
RDEFINE PTKTDATA profile-name
APPLDATA(FOR THIS APPLICATION NO REPLAY PROTECTION IS IN EFFECT)
Notes:
1. The option to bypass PassTicket replay protection should only be used in
secure environments where access to generated PassTickets is limited within a
secure or internal network.
2. Other than the APPLDATA (application data) field of the application profile
containing the text string, NO REPLAY PROTECTION, there is no other external
indication that replay protection is bypassed.
Preventing Errors
The following checklist describes the errors that may cause a PassTicket to fail. To
prevent these errors from occurring:
249
General Resources
1. Read the list before you use the PassTicket.
2. Review your process to ensure that you have entered all of the information
correctly.
3. Verify the information by using the procedures described in Verifying the
Secured Signon Environment on page 249.
Even if you have followed the proper procedures, it is still possible to receive a
message stating that a password is incorrect and be denied access to the
application. This can occur if:
v PassTicket replay protection is not being bypassed, and the PassTicket was used
previously for this user, application, and time range.
In this case, RACF generates an SMF record that logs an attempt to replay a
PassTicket.
v The GMT clock on the evaluating computer is outside the valid time range for the
PassTicket.
This can be caused by one of the following:
The GMT clock on the generating computer and the clock on the evaluating
computer are not reasonably synchronized.
The PassTicket was not used within approximately ten minutes of being
generated.
The system clock on the evaluating computer may not be set correctly in
relation to GMT. See Time Considerations on page 247 for more information.
This command specifies that no users can use the vector facility.
2. Give READ access authority to appropriate users or groups:
PERMIT IEAVECTOR CLASS(FACILITY) ID(user or group) ACCESS(READ)
250
General Resources
If your installation does not need to control the use of the vector facility, you can
define an entry for IEAVECTOR in the global access checking table. Global access
checking allows your installation to bypass normal RACF authorization checking
and, thereby, minimize processing.
To define an entry for the vector facility in the global access checking table, issue
the following commands:
RDEFINE GLOBAL FACILITY
RALTER
GLOBAL FACILITY ADDMEM(IEAVECTOR/READ)
SETROPTS GLOBAL(FACILITY)
For more information, see Setting Up the Global Access Checking Table on page
206.
2. Permit selected users to access the data sets protected by the SYS1.DUMP%%
profile by adding them to the access list with READ access authority. Enter:
PERMIT SYS1.DUMP%% ID(userid) ACCESS(READ)
251
General Resources
2. If you want to give a user an access authority that is different from the one you
specified on the RDEFINE command (in this example, an access authority of
NONE), enter:
PERMIT IEAABD.DMPAUTH CLASS(FACILITY) ID(ASMITH) ACCESS(NONE)
2. If you want to give a user an access authority that is different from the one you
specified on the RDEFINE command (in this example, an access authority of
READ), enter:
PERMIT IEAABD.DMPAKEY CLASS(FACILITY) ID(ASMITH) ACCESS(READ)
You only need to issue this command once. When a general resource class is
active, it remains active until your installation deactivates it.
2. To avoid possible deadlocks, issue a SETROPTS RACLIST command for the
FACILITY class.
Example of a Deadlock:
There are several types of deadlocks. This example describes one way a
deadlock can occur.
v Task A of a job is abending.
z/OS needs to check the users authority to produce a dump of the task
and issues RACROUTE REQUEST=AUTH.
RACF needs to do I/O to the RACF database to respond to the
RACROUTE request.
252
General Resources
v Task B of the same job is already performing a RACF function and has
ENQed the RACF database.
v Task A must wait until task B releases the ENQ.
v Dump processing for task A has set all other tasks in the job
non-dispatchable.
Under normal circumstances, task A could wait for task B to release the ENQ.
However, because dump processing for the abending task prevents task B from
completing, task A cannot proceed. Task B cannot complete until task A
proceeds. This causes a deadlock.
where:
sysid
253
General Resources
Note: The system identifier is necessary only if different
devices with the same device class, unit name, and
device address can be attached to multiple systems and
have different security requirements. In most cases, you
should specify an asterisk (*) for this qualifier.
device-class
UR
GRAPHIC
Graphic devices
Unit Name
TCU=2701
2701
TCU=2702
2702
TCU=2703
2703
For all other devices, see z/OS HCD Planning for unit name
information.
Note: For any device for which MVS does not have a unit
name, MVS uses 8 character zeros (for example,
00000000). Use this as the unit name in the profile name
to provide security for these devices.
device-number is a 4-byte field that supplies the number of a specific device.
For information about I/O device numbers, see z/OS HCD
Planning.
Note: If unit-name identifies an esoteric device group, specify
an asterisk (*) in this qualifier.
Here are some sample profile names for the DEVICES class:
SYS01.GRAPHIC.3277-2.B40
SYS01.TP.3705.3FA
SYS01.UR.3800.00E
SYS01.UR.PRINTER1.*
Specifying UACC(NONE) means that only users who are specifically permitted
to the profile can allocate the device.
4. Give users the appropriate access authority:
254
General Resources
PERMIT profile-name CLASS(DEVICES)
ID(userid or groupname) ACCESS(access-authority)
READ
Allows the allocation of the device.
5. When you are ready to start using the security provided by these profiles,
activate both the DEVICES class and SETROPTS RACLIST processing for the
class. SETROPTS RACLIST processing helps ensure high performance when
access authorities are checked. You can do these two actions in one command:
SETROPTS CLASSACT(DEVICES) RACLIST(DEVICES)
Note: Any time you make a change to a DEVICES profile, you must also
refresh SETROPTS RACLIST processing for the DEVICES class for the
change to take effect. For example:
SETROPTS RACLIST(DEVICES) REFRESH
Example 1:
The following commands allow only USER1 to allocate PRINTER1:
RDEFINE
RDEFINE
PERMIT
PERMIT
Example 2:
The following commands allow only group DESIGN1 to allocate graphics devices:
RDEFINE DEVICES SYS01.GRAPHIC.** UACC(NONE)
PERMIT SYS01.GRAPHIC.** CLASS(DEVICES) ID(DESIGN1) ACCESS(READ)
255
General Resources
portion of this profile is limited to 32 characters. If your data set name is longer
than 32 characters, use generics so that the FACILITY class profile stays within
the 39-character limit.
Notes:
a. You should consider creating the same FACILITY profiles as you did data
set profiles in step 1 on page 255.
b. To have this protection, you must create profiles in the FACILITY class as
well as the DATASET class if you do not have access to the data set
already.
c. The LLA facility first checks the users access through the FACILITY class
profile and, unless this access is allowed, then checks for access through a
data set profile.
3. Give users and groups the appropriate access authority:
PERMIT CSVLLA.data-set-name CLASS(FACILITY)
ID(userid or groupname) ACCESS(access-authority)
This PERMIT command allows users or groups to issue LLA commands for the
specified LLA-managed library. This access authority (access-authority) can be
one of the following:
NONE
Allows no access.
UPDATE
Allows users to work with the data sets using the LLA START
and LLA MODIFY commands.
ALTER
Example:
For example, to control all LLA-managed data sets whose high-level qualifier is
CICS, enter:
ADDSD
CICS.* UACC(NONE)
PERMIT CICS.* ID(CICS) ACCESS(READ)
RDEFINE FACILITY CSVLLA.CICS.* UACC(NONE)
PERMIT
CSVLLA.CICS.* CLASS(FACILITY) ID(CICS) ACCESS(UPDATE)
SETROPTS CLASSACT(FACILITY)
This command sequence allows CICS to issue the LLA MODIFY command for the
LLA-managed data sets whose high-level qualifier is CICS.
256
General Resources
v The existence of a DLFCLASS profile for a QSAM or VSAM data set identifies
the data set as one that is eligible to be processed as a DLF object.
v The RETAIN field in the DLFDATA segment of the profile allows you to indicate to
DLF whether the object is to be a retained DLF object. The RETAIN field is an
optional field.
v The access list for the profile identifies the users and groups who are allowed to
access the DLF object.
v The JOBNAMES field in the DLFDATA segment of the profile allows you to
further restrict access to the DLF object to specific job names:
When you specify a list of job names, access to the DLF object is allowed
only when the user ID appears in the access list and the specific job name
appears in the job names list.
When you do not specify a list of job names, all jobs submitted by authorized
users (that is, users who are identified in the access list of the profile) can
access the DLF object.
The JOBNAMES field is an optional field.
If you do not include this information in DLFCLASS profiles, your DLF installation
exit must identify the eligible data sets and retained DLF objects, and also verify
user or job name access to a DLF object.
For example, for a QSAM or VSAM data set named PAYROLL.SALARY.DATA, a
DLFCLASS profile named PAYROLL.SALARY.DATA allows data from the data set to
be stored in a DLF object that is used by jobs accessing the data set.
To use RACF to support DLF objects, take the following steps:
1. Create a discrete profile in the DLFCLASS class:
RDEFINE DLFCLASS profile-name UACC(...) DLFDATA(...)
where profile-name is the fully-qualified data set name (do not specify quotes).
The profile must be a discrete profile. For example, for a data set named
PAYROLL.SALARY.DATA, the profile name would be:
PAYROLL.SALARY.DATA
UACC and DLFDATA are optional. Possible options to support a DLF object are:
UACC
READ
UPDATE
Is equivalent to READ
CONTROL
Is equivalent to READ
ALTER
DLFDATA
v If the DLF object is to be retained, specify RETAIN(YES) in
the DLFDATA operand.
Note: If you do not specify DLFDATA, or if you do not
specify the RETAIN value in the DLFDATA operand,
RETAIN(NO) is defaulted.
257
General Resources
v If access to the DLF object is to be limited to specific jobs,
include the JOBNAMES value in the DLFDATA operand and
list all of the applicable job names, as:
DLFDATA(JOBNAMES(jobname1...))
See z/OS Security Server RACF Command Language Reference for more
details and other options.
2. Give users and groups the appropriate access authority. For example:
PERMIT profile-name CLASS(DLFCLASS) ID(userid or groupname)
ACCESS(access-authority)
3. When you are ready to start using the protection defined in the profiles, activate
the DLFCLASS class as follows:
SETROPTS CLASSACT(DLFCLASS)
258
General Resources
After all applications have given up their access to the RACLIST data space by
issuing RACROUTE REQUEST=LIST,ENVIR=DELETE, you can delete the data
space by issuing SETROPTS NORACLIST(classname). Remember that the
SETROPTS RACLIST REFRESH and SETROPTS NORACLIST commands
process both the class specified by the command and all valid classes sharing the
same POSIT value as the specified class. Additionally, if the system is enabled for
sysplex communication, the command is propagated to the other members of the
sysplex data sharing group.
For a detailed comparison of the RACROUTE and SETROPTS processes, see
z/OS Security Server RACF Diagnosis Guide.
259
General Resources
a class whose RACLIST results have been saved as classname_nnnnn profiles use
the same data to make security decisions. Any system that performs a RACROUTE
REQUEST=LIST,GLOBAL=YES retrieves the same profiles. When several changes
are required for profiles in that class, other systems continue to access the stored
profiles until the administrator completes the changes and tells RACF to refresh the
profiles by issuing SETROPTS RACLIST(classname) REFRESH.
Restrictions:
1. You should use the RACGLIST class only if all systems sharing the RACF
database belong to the same global resource serialization (GRS) complex. See
the appropriate level publication of z/OS MVS Planning: Global Resource
Serialization for information about defining a GRS complex.
2. Using RACGLIST class requires more space for the RACF database. However
it ensures that results of any of the following requests are consistent across all
systems sharing the database:
v RACROUTE REQUEST=LIST,GLOBAL=YES
v Propagated SETROPTS RACLIST command
v Propagated SETROPTS RACLIST REFRESH command
3. Depending on how your installations database is set up, it may take less
processing time and I/O to read the stored RACLIST results from the
RACGLIST profiles than to retrieve the original discrete and generic profiles for
the class name. RACGLIST processing may improve startup time and system
availability during restarts.
4. If you are using RACGLIST support and your database is being shared by two
or more MVS systems, be sure that SYSZRAC2 is not in the SYSTEMS
exclusion list in SYS1.PARMLIB.
5. The RACGLIST class cannot be used to create copies of profiles in the CDT
class.
|
|
See z/OS Security Server RACF Diagnosis Guide for a detailed description of
RACLIST processing when the RACGLIST class is active.
260
General Resources
You can use RACF to perform authority checking for all commands. However,
commands issued from locally attached JES3 consoles are checked using JES3s
authority, not the operators authority. In practice, that would probably limit you to
just auditing those commands.
Authorizing the Use of Operator Commands describes how you can use RACF to
provide command authority checking. z/OS JES3 Initialization and Tuning Guide
describes how to use JES to provide command authority checking.
Note: If SDSF is installed on your system, OPERCMDS profiles control which
action characters and overtypeable fields users can enter on SDSF panels.
For complete information on creating OPERCMDS profiles for use with
SDSF, see z/OS SDSF Operation and Customization.
Procedure:
OPERCMDS
OPERCMDS, FACILITY
OPERCMDS, FACILITY
OPERCMDS, CONSOLE
261
General Resources
This also means that no refreshing of the list of groups is done. The user ID
associated with the MCS console must be reinitialized whenever its user and group
data or connections are changed. See z/OS MVS Planning: Operations for more
details on MCS command authority checking and how to refresh the security
environment.
The user and group names are not verified against the database when the security
environment is used from another system. All systems in a sysplex should use the
same RACF database. This will provide consistent user, group, and OPERCMD
profiles and will ensure accurate authorization checking. In addition, definitions for
security categories (members of the CATEGORY profile in the SECDATA general
resource class) are likely to cause problems if all systems do not use the same
RACF database.
Attention
If you dont define profiles for them, these commands cannot be
protected. Anyone at a master console or a console with system
authority would be able to use these commands. However, except
for the DISPLAY command, which does no additional authority
checking, these commands check the consoles attributes if no
profile is found and can still fail the request. For the DISPLAY
command, you should specify READ authority.
Table 23. RACF Operator Command Profiles: Naming Conventions
Command
Resource Name
DISPLAY
subsystem-name.DISPLAY.SIGNON
Any profile in the OPERCMDS class covering this resource name protects
the DISPLAY command, for example:
RDEFINE OPERCMDS RACF.DISPLAY.SIGNON
RESTART
subsystem-name.RESTART
Any profile in the OPERCMDS class covering this resource name protects
the RESTART command, for example:
RDEFINE OPERCMDS RACF.RESTART
262
General Resources
Table 23. RACF Operator Command Profiles: Naming Conventions (continued)
Command
Resource Name
SET
subsystem-name.SET.AUTOAPPL
subsystem-name.SET.AUTODIRECT
subsystem-name.SET.AUTOPWD
subsystem-name.SET.INCLUDE
subsystem-name.SET.JESNODE
subsystem-name.SET.LIST
subsystem-name.SET.PWSYNC
subsystem-name.SET.TRACE
To protect the SET LIST command, for example:
RDEFINE OPERCMDS RACF.SET.LIST
Note: No OPERCMDS authority check is performed if the SET command is
issued from a RACF parameter library member.
SIGNOFF
subsystem-name.SIGNOFF
Any profile in the OPERCMDS class covering this resource name protects
the SIGNOFF command, for example:
RDEFINE OPERCMDS RACF.SIGNOFF
STOP
subsystem-name.STOP
Any profile in the OPERCMDS class covering this resource name protects
the STOP command, for example:
RDEFINE OPERCMDS RACF.STOP
TARGET
subsystem-name.TARGET.DESCRIPTION
subsystem-name.TARGET.LIST
subsystem-name.TARGET.LOCAL
subsystem-name.TARGET.NODE
subsystem-name.TARGET.OPERATIVE
Note: TARGET.OPERATIVE also protects the DELETE and DORMANT
operands.
subsystem-name.TARGET.PREFIX
subsystem-name.TARGET.PROTOCOL
subsystem-name.TARGET.PURGE
subsystem-name.TARGET.WDSQUAL
subsystem-name.TARGET.WORKSPACE
To protect the TARGET LIST command, for example:
RDEFINE OPERCMDS RACF.TARGET.LIST
Note: No OPERCMDS authority check is performed if the TARGET
command is issued from a RACF parameter library member.
Table 24. RACF TSO Commands Entered as Operator Commands: Naming Conventions
Command
Resource Name
ADDGROUP or AG
subsystem-name.ADDGROUP
ADDSD or AD
subsystem-name.ADDSD
ADDUSER or AU
subsystem-name.ADDUSER
ALTDSD or ALD
subsystem-name.ALTDSD
ALTGROUP or AG
subsystem-name.ALTGROUP
ALTUSER or ALU
subsystem-name.ALTUSER
263
General Resources
Table 24. RACF TSO Commands Entered as Operator Commands: Naming
Conventions (continued)
Command
Resource Name
CONNECT or CO
subsystem-name.CONNECT
DELDSD or DD
subsystem-name.DELDSD
DELGROUP or DG
subsystem-name.DELGROUP
DELUSER or DU
subsystem-name.DELUSER
LISTDSD or LD
subsystem-name.LISTDSD
LISTGRP or LG
subsystem-name.LISTGRP
LISTUSER or LU
subsystem-name.LISTUSER
PASSWORD or PW
subsystem-name.PASSWORD
PERMIT or PE
subsystem-name.PERMIT
RACLINK
subsystem-name.RACLINK
RALTER or RALT
subsystem-name.RALTER
RDEFINE or RDEF
subsystem-name.RDEFINE
RDELETE or RDEL
subsystem-name.RDELETE
REMOVE or RE
subsystem-name.REMOVE
RLIST or RL
subsystem-name.RLIST
SEARCH or SR
subsystem-name.SEARCH
SETROPTS or SETR
subsystem-name.SETROPTS
Notes:
1) RACF first checks that the operator issuing the TSO command is
defined to RACF and if not, an error message is issued. If the operator
is defined to RACF, a check is made to a profile in the OPERCMDS
class to determine if the user ID has authority to issue the TSO
command as an operator command. If the OPERCMDS class is not
active, or if no OPERCMDS profile exists, the user will be allowed to
issue the command as an operator command.
2) Existing command authorization is still enforced. For example, you must
be a SPECIAL user to issue the SETROPTS INITSTATS command.
3) READ access is required to all the resource names shown in Table 24
on page 263 with the exception of SETROPTS. If SETROPTS LIST is
issued with no other operands, READ access is sufficient. However, if
any other SETROPTS option is issued, with or without also specifying
LIST, UPDATE access is required.
4) If your installation renames any RACF TSO commands, they are still
protected under the resource names shown in Table 24 on page 263.
For example, if you renamed ADDGROUP as ADDBUNCH, RACF would
still use subsystem-name.ADDGROUP as the resource name.
Other examples of defining profiles in the OPERCMDS class follow:
RDEFINE OPERCMDS RACF.SIGNOFF.** UACC(NONE)
PERMIT RACF.SIGNOFF.** CLASS(OPERCMDS) ID(DJONES) ACCESS(UPDATE)
RDEFINE OPERCMDS RACF.DISPLAY.SIGNON.** UACC(NONE)
PERMIT RACF.DISPLAY.SIGNON.** CLASS(OPERCMDS) ID(DJONES) ACCESS(UPDATE)
264
General Resources
The base command or resource names are SIGNOFF and
DISPLAY.SIGNON. Although SIGNON is not required at the console
(because it is the default), it must be specified in the resource name to
protect the DISPLAY command.
The RVARY command cannot be protected by profiles in the OPERCMDS
class. This is intentional during recovery; RACF must not be allowed to
attempt to access the database. The RVARY command is always protected
by an operator prompt, regardless of whether it is entered from TSO or as
an operator command.
b. The UACC to be associated with the command.
c. The user IDs of the operators or the group names of the groups of operators
to whom you want to grant authority.
d. For each operator or group of operators:
v The access authority to be assigned to the operator or group of
operators.
v Any restrictions on which consoles the operators must be using when
issuing certain commands. To do this, create profiles for consoles in the
CONSOLE class and then specify the WHEN(CONSOLE) operand on the
PERMIT command. See Conditional Access Lists for General Resource
Profiles on page 205.
Note: To authorize a console to a command or group of commands, create a
RACF user profile for the console and place the consoles user ID (or a
RACF group to which the user ID is connected) in the access list of the
OPERCMDS profile.
2. Use the RDEFINE command to create profiles for the commands:
RDEFINE OPERCMDS profile-name UACC(NONE)
where:
subsystem-name
command
qualifier
Notes:
a. When an operator issues a command that the subsystem doesnt recognize,
the subsystem checks for a profile named subsystem-name.UNKNOWN. To
handle these commands, create a profile named:
v MVS.UNKNOWN with UACC(READ) for MVS
v JES2.UNKNOWN or JES3.UNKNOWN with UACC(NONE) for JES
v RACF.UNKNOWN with UACC(NONE) for RACF
265
General Resources
Your security policy may require auditing of all commands issued, even if
they are not valid on your system. You can audit these commands by
specifying AUDIT(ALL) on these profiles.
3. For each controlled command, grant access to the users or groups who need to
use it:
PERMIT profile-name CLASS(OPERCMDS) ID(user or group ACCESS(access-authority)
For example:
PERMIT JES3.CALL.DSP.** CLASS(OPERCMDS) ID(OPER7 OPER24) ACCESS(UPDATE)
4. When you are ready to start controlling access to commands based on the
profiles you have defined, activate the OPERCMDS class:
SETROPTS CLASSACT(OPERCMDS) RACLIST(OPERCMDS)
PERMIT
SETROPTS CLASSACT(OPERCMDS)
SETROPTS RACLIST(OPERCMDS) REFRESH
SETROPTS GENERIC(OPERCMDS) REFRESH
Now, anyone can display a job, but only the operators in OPERGRP can cancel a
job.
266
General Resources
267
General Resources
A user must be permitted with READ access so that PWSYNC requests for the user
are processed successfully. Or, if no permit has been done for the user (or a group
the user connected to), you can give the PWSYNC profile a UACC of READ, which
enables password synchronization for all users who have approved PEER
associations with PWSYNC. If the RACF RRSFDATA class is not active, or the
PWSYNC profile has not been defined, password synchronization will not occur
even for the users with established associations.
The PWSYNC profile does not initiate password synchronization. Users must have
approved associations with password synchronization enabled. Using this profile,
you can decide which users password changes should be synchronized.
To enable password synchronization for users with RACLINK PEER PWSYNC
associations and disable automatic password direction:
SET PWSYNC NOAUTOPWD
You can also use the PWSYNC profile to control password synchronization at a
system level. For example, to turn off password synchronization without having to
delete all of the existing user ID associations, delete the PWSYNC profile, or, give it
a UACC of NONE with no users on the access list. To turn off password
synchronization, you can specify SET NOPWSYNC. See z/OS Security Server
RACF Command Language Reference for details.
268
General Resources
where:
target-node
classname
Is the class name associated with the command issued. The class
name can be USER, GROUP, DATASET, or any general resource
class defined in the class descriptor table (CDT).
command-name
Is the name of the command issued.
The use of these profiles provides security for automatic command direction. An
authorization check is made against these resource names to determine if the user
is allowed to automatically direct the specified command. The command is directed
to the remote node if:
v The RRSFDATA class has been activated.
v SET AUTODIRECT is in effect.
v There is a profile for the resource name associated with the command.
v The command issuer has at least READ access to that resource.
Table 25 lists the resource name for each RACF command that can be used with
automatic command direction.
Table 25. Automatic Command Direction: Resource Names
Command
Class
Resource Name
ADDUSER or AU
USER
AUTODIRECT.target-node.USER.ADDUSER
ALTUSER or ALU
USER
AUTODIRECT.target-node.USER.ALTUSER
CONNECT or CO
USER
AUTODIRECT.target-node.USER.CONNECT
DELUSER or DU
USER
AUTODIRECT.target-node.USER.DELUSER
PASSWORD or PW
USER
AUTODIRECT.targetnode.USER.PASSWORD
REMOVE or RE
USER
AUTODIRECT.target-node.USER.REMOVE
ADDGROUP or AG
GROUP
AUTODIRECT.targetnode.GROUP.ADDGROUP
ALTGROUP or ALG
GROUP
AUTODIRECT.targetnode.GROUP.ALTGROUP
DELGROUP or DG
GROUP
AUTODIRECT.targetnode.GROUP.DELGROUP
ADDSD or AD
DATASET
AUTODIRECT.target-node.DATASET.ADDSD
ALTDSD or ALD
DATASET
AUTODIRECT.targetnode.DATASET.ALTDSD
Chapter 7. Protecting General Resources
269
General Resources
Table 25. Automatic Command Direction: Resource Names (continued)
Command
Class
Resource Name
DELDSD or DD
DATASET
AUTODIRECT.targetnode.DATASET.DELDSD
PERMIT or PE
AUTODIRECT.targetnode.classname.PERMIT
RALTER or RALT
AUTODIRECT.targetnode.classname.RALTER
RDEFINE or RDEF
AUTODIRECT.targetnode.classname.RDEFINE
RDELETE or RDEL
AUTODIRECT.targetnode.classname.RDELETE
SETROPTS or SETR
AUTODIRECT.target-node.RACF.SETROPTS
Notes:
1. To activate automatic command direction, issue the SET AUTODIRECT
command. See Automatic Direction on page 399 and z/OS Security Server
RACF Command Language Reference for more information.
2. Automatic command direction occurs only at the command level. You cannot
direct a command operand or segment information for a command. For
example, if you direct the ADDUSER command, you direct all ADDUSER
commands, including the TSO, DFP, and OPERPARM segment information. You
cannot specify automatic command direction for only the TSO segment
information in the ADDUSER command.
3. You can use generic profiles to define these profiles. No commands will be
directed if the RRSFDATA class is inactive or if no RRSFDATA profiles that
protect AUTODIRECT exist.
4. These profiles are only checked on the node where the command was issued.
Once the command is directed to another node, no authorization check is made
against these profiles on the receiving node.
5. Profiles for turning on automatic direction of passwords and application updates
are similar. Therefore, using * for the command names will turn on these
functions, too.
6. If your installation renames any RACF TSO commands, they are still protected
under the resource names shown in Table 25 on page 269. For example, if you
renamed ADDGROUP as ADDBUNCH, RACF would still use
AUTODIRECT.target-node.GROUP.ADDGROUP as the resource name.
Sample Automatic Command Direction Profiles: You can activate automatic
direction of commands without activating automatic direction of application updates
by using SET AUTODIRECT NOAUTOAPPL. You can also turn off password
propagation by issuing the SET AUTODIRECT NOAUTOPWD command. See z/OS
Security Server RACF Command Language Reference for details.
Some examples of using profiles to control automatic command direction follow. For
each example, assume that no other profiles beginning with AUTODIRECT are
present in the RRSFDATA class.
v To disable automatic command direction for TAPEVOL profiles and direct all
other commands to all remote nodes:
AUTODIRECT.*.TAPEVOL.*
AUTODIRECT.**
270
General Resources
AUTODIRECT.*.USER.ADDUSER
v To enable automatic command direction only to NODE1 for the USER and
GROUP classes:
AUTODIRECT.NODE1.USER.*
AUTODIRECT.NODE1.GROUP.*
AUTODIRECT.**
where:
target-node
v The user changing the password has at least READ access to that resource.
You can use generic profiles to define these profiles. If the RRSFDATA class is
inactive or if no RRSFDATA profile that protects AUTODIRECT.targetnode.USER.PWSYNC exists, password changes are not directed automatically.
The RRSFDATA profile that protects AUTODIRECT.target-node.USER.PWSYNC is
only checked on the node where the password is originally changed. Once the
password change is directed to another node, no authorization check is made on
the receiving node.
Sample Automatic Password Direction Profiles: Some examples of using
profiles to control automatic password direction follow. For each example, assume
that no other profiles beginning with AUTODIRECT are present in the RRSFDATA
class.
v To enable password synchronization for users with RACLINK PEER PWSYNC
associations:
PWSYNC
AUTODIRECT.*.USER.PWSYNC
UACC(READ)
UACC(NONE)
UACC(NONE)
UACC(READ)
271
General Resources
v To enable automatic password direction for users without RACLINK associations
to node MVS1:
PWSYNC
AUTODIRECT.MVS1.USER.PWSYNC
UACC(NONE)
UACC(READ)
where:
target-node
classname
The formats when you are using this syntax for automatic direction of application
updates in the DATASET class are:
AUTODIRECT.target-node.DATASET.APPL
AUTODASD.target-node.DATASET.APPL
AUTOTAPE.target-node.DATASET.APPL
where:
target-node
272
General Resources
v The user directing the application update has at least READ access to that
resource.
The RRSFDATA profile that protects AUTODIRECT.target-node.classname.APPL,
AUTODASD.target-node.DATASET.APPL, or AUTOTAPE.targetnode.DATASET.APPL is only checked on the node where the update originates.
Once the update is propagated to another node, no AUTODIRECT authorization
check is made on the receiving node.
Suppression of Private Key Information Propagation: When automatic direction
of application updates is enabled, RACF database changes initiated by RACDCERT
are propagated to other systems. These changes include additions, alterations, and
deletions of certificates. However, private key information contained in the following
fields of general resource profiles in DIGTCERT class is not propagated:
|
CERTPRVK
CERTPRVS
CERTPRVT
AUTODIRECT.**
AUTODASD*.**
273
General Resources
v Use of the SMESSAGE class is intended primarily as an audit mechanism for
multilevel-secure environments. By itself, the SMESSAGE class does not control
all means of communication among users on the system.
v When the SMESSAGE class is active and a profile does not exist for the
specified user, the message request completes normally.
v When the SECLABEL class is active, the receiver of the message must pass the
security label authorization check based on the receivers current security label
and the security label of the message (which was set by the senders current
security label at the time that the sender sent the message.)
v Security label checking for messages is available through the DIRAUTH class.
See z/OS Planning for Multilevel Security and the Common Criteria for more
information.
To control message traffic, do the following:
1. For each user for which you wish to control message traffic, create a profile in
the SMESSAGE class:
RDEFINE SMESSAGE receiving-userid UACC(NONE)
READ
Any time you make a change to an SMESSAGE profile, you must also refresh
SETROPTS RACLIST processing for the SMESSAGE class for the change to
take effect. For example:
SETROPTS RACLIST(SMESSAGE) REFRESH
4. Optionally, if you have implemented security labels, you can enable security
label checking for messages by issuing the following command. You do not
need to define any resources in the DIRAUTH class to implement security label
checking.
|
|
|
|
|
SETROPTS CLASSACT(DIRAUTH)
274
General Resources
v The names of RACF-defined users and groups who are to have access to
those programs.
2. Create profiles in the VTAMAPPL class:
RDEFINE VTAMAPPL acb-name UACC(NONE)
where acb-name is the ACBNAME value on the APPL statement that applies to
this ACB. (An ACB name is also called an LU name or a VTAM application
name.)
3. Give users and groups the appropriate access authority:
PERMIT acb-name CLASS(VTAMAPPL)
ID(userid or groupname)
ACCESS(access-authority)
READ
UPDATE
CONTROL
ALTER
4. When you are ready to start using the protection defined in the profiles, activate
both the VTAMAPPL class and SETROPTS RACLIST processing for the class.
You can do these two actions in one command:
SETROPTS CLASSACT(VTAMAPPL) RACLIST(VTAMAPPL)
Note: Any time you make a change to a VTAMAPPL profile, you must also
refresh SETROPTS RACLIST processing for the VTAMAPPL class for
the change to take effect.
275
General Resources
where:
netid
luname
Is an LU name consisting of 18 characters.
v If APPC network-qualified names support is not enabled, the format for the
resource name is:
luname
276
General Resources
where:
luname
Failure to specify the correct LU name format could result in a security exposure.
For more detailed information, see z/OS MVS Planning: APPC/MVS Management.
You can protect a transaction program by specifying a UACC of NONE. You can
then create an access list that contains only those users who need access. The
following example shows how you can define a transaction program profile named
FINANC1.SMITH.ACCTPAYABLETP and give it a UACC of NONE:
RDEFINE APPCTP FINANC1.SMITH.ACCTPAYABLETP UACC(NONE)
After you protect the transaction program with a UACC of NONE, you can use the
PERMIT command to define entries in the transaction program profiles access list.
The following example shows how to use the PERMIT command to create entries in
the access list of transaction program profile FINANC1.SMITH.ACCTPAYABLETP
for users USERA and USERB, giving them each an access authority of READ:
PERMIT FINANC1.SMITH.ACCTPAYABLETP CLASS(APPCTP) ID(USERA USERB) ACCESS(READ)
The following example illustrates how you can use the RDEFINE command to
define a CPI-C side information profile named TOOLS1.SYS1.SDLU1234 and
specify a UACC of READ, which allows all users to read CPI-C side information.
RDEFINE APPCSI TOOLS1.SYS1.SDLU1234 UACC(READ)
You can protect CPI-C side information by specifying a UACC of NONE. You can
then create an access list containing only users who need access. The following
example shows how you can define a CPI-C side information profile named
TOOLS1.SYS1.SDLU1234 and give it a UACC of NONE:
RDEFINE APPCSI TOOLS1.SYS1.SDLU1234 UACC(NONE)
After you protect CPI-C side information with a UACC of NONE, you can use the
PERMIT command to define entries in the CPI-C side information profiles access
list. The following example shows how to use the PERMIT command to create
entries in the access list of CPI-C side information profile TOOLS1.SYS1.SDLU1234
for users USERA and USERB, giving them each an access authority of READ:
Chapter 7. Protecting General Resources
277
General Resources
PERMIT TOOLS1.SYS1.SDLU1234 CLASS(APPCSI) ID(USERA USERB) ACCESS(READ)
LU Security Capabilities
You can specify the conversation security you want to receive in the APPCLU
profile that covers a session.
Origin LU Authorization
You can use the APPL general resource class to protect conversations between
partner LUs. This support provides the ability to grant or deny access on the basis
of the identity of both the user and the LU from which the users request originated.
An example of how a security administrator would define origin LU authorization is
as follows:
RDEFINE APPL local-luname UACC(NONE)
This command creates a RACF profile for the given LU. The specified UACC in this
case would allow no user access to the LU named by local-luname without explicitly
granted higher access authority.
Next, the security administrator could grant conditional access to a specific
RACF-defined user or group whose request originates at a given partner LU with
the following:
PERMIT local-luname CLASS(APPL) ID(userid)
ACCESS(READ)...
WHEN(APPCPORT(partner-luname))
Note: There are two possible formats for the resource name in the APPCPORT
class. See Partner LU as Port of Entry (POE) on page 276 for additional
information.
In this example, you could specify ID(*) to make LU local-luname accessible to
anyone who is valid on the local system and whose request originates from LU
partner-luname. Also, this example presupposes that the relevant classes have
already been explicitly activated.
Using the WHEN() option puts an entry on the conditional access list of the RACF
profile for local-luname, allowing userid READ access to this LU. This allows userid
to use the local LUs services, but only when partner-luname is the port of entry
from which the request originated.
278
General Resources
If you are using DB2 Version 5, or higher, and the RACF external security module is
installed on your system, you can control access to DB2 resources using RACF
profiles.
|
|
|
Restriction
For information about using RACF with DB2 Version 7, or earlier, see
Chapter 13, Controlling Access to DB2 Objects, on page 419 and z/OS
Security Server RACF System Programmers Guide.
|
|
For information about using RACF with DB2 for z/OS Version 8, and higher,
see DB2 RACF Access Control Module Guide, SC18-7433.
279
General Resources
LNOTES
SNAME
NDS
UNAME
Each RACF user ID can map to both a Lotus short name and an NDS user name,
but no user ID can map to more than one Lotus short name or more than one NDS
user name. In addition, each Lotus short name can map to only one user ID.
Similarly, each NDS user name can map to only one user ID.
The application user identities that you specify in the identity segments of the user
profiles must match the user identities defined by the administrators of each
application. For example, the SNAME that you define for a RACF user ID must be
the same short name that is defined for that user by the administrator of the Lotus
Notes for z/OS application. For special considerations when selecting application
user identities, see Considerations for Application User Names on page 284.
280
General Resources
ADDUSER command processing creates a new user profile named CHEN, adds an
NDS segment to the user profile, and sets the UNAME field of the segment to
ChenMeiLing.
System Considerations
If your installation shares the RACF database with systems running releases prior
to OS/390 Version 2 Release 10, your RACF support of Lotus Notes for z/OS and
Novell Directory Services for OS/390 (NDS) is implemented using mapping profiles
in the NOTELINK and NDSLINK classes. See Mapping Profiles in the NOTELINK
and NDSLINK Classes.
If your installation shares the RACF database with only systems running z/OS, or
OS/390 Version 2 Release 10 or above, you may or may not be using mapping
profiles in the NOTELINK and NDSLINK class. You should see your system
programmer to find out if your installation has been converted for stage 3 of
application identity mapping. Stage 3 of application identity mapping uses an alias
index that is automatically maintained by RACF to map application user identities,
such as Lotus short names and NDS user names, without using mapping profiles in
the NOTELINK and NDSLINK classes. Once at stage 3, you can deactivate the
NOTELINK and NDSLINK classes. See z/OS Security Server RACF System
Programmers Guide for information about running the IRRIRA00 conversion utility
to convert to stage 3 of application identity mapping.
If your installation is new to RACF and you are not running any releases prior to
OS/390 Version 2 Release 10, your system will automatically use application
identity mapping at the stage 3 level without running the IRRIRA00 conversion
utility, and there will be no mapping profiles in the NOTELINK or NDSLINK classes.
281
General Resources
Each mapping profile associates a RACF user ID with an application user identity,
based on the information specified in the LNOTES and NDS segments of the user
profile.
The profile name for mapping profiles in the NOTELINK class is the Lotus Notes for
z/OS short name (SNAME). The profile name for mapping profiles in the NDSLINK
class is the Novell Directory Services for OS/390 user name (UNAME). The
APPLDATA field of each mapping profile contains the RACF user ID that
corresponds to the application user identity. Each application identity segment of the
user profile contains one user identity name. Note that when RACF creates a
mapping profile as a result of an ADDUSER or ALTUSER command, the user ID of
the command issuer becomes the owner of the profile.
The following examples illustrate how mapping profiles are automatically managed
by RACF.
1. A mapping profile named ChenMeiLing is added in the NDSLINK class, with user
ID CHEN in the APPLDATA field, as a result of executing the following command:
ADDUSER CHEN NDS(UNAME(ChenMeiLing))
3. The mapping profile named ChenMeiLing is deleted from the NDSLINK class as
a result of executing the following command:
ALTUSER CHEN NONDS
Attention
If your installation uses mapping profiles, do not execute the DELUSER
command for a user profile that contains identity segments from RACF
systems that do not support identity mapping profiles. These systems do not
automatically manage mapping profiles. You will inadvertently leave residual
mapping profiles in a general resource class when the user profile is deleted.
See information about recovery procedures in z/OS Security Server RACF
System Programmers Guide.
In general, you should not administer mapping profiles using the RDEFINE,
RALTER, RDELETE or RLIST commands. For information on correcting mapping
profiles that are inadvertently deleted or damaged, see z/OS Security Server RACF
System Programmers Guide.
282
General Resources
To authorize Novell Directory Services for OS/390 (NDS) and Lotus Notes for z/OS
applications, which do not run in system key or supervisor state, you must define
RACF user IDs for the applications. The RACF user IDs must be given READ
access to a RACF general resource called IRR.RUSERMAP in the FACILITY class.
If the application server executes as a batch job, the RACF user ID that is added is
the user ID associated with the batch job. If the server executes as a started
procedure, you must assign a RACF user ID using one of the following methods:
v Add the procedure name as an entry in the STARTED class. (This is the
preferred method.)
v Add the procedure name in the RACF started procedure table (ICHRIN03),
unless this table has already been modified by your installation to contain a
generic entry.
In addition, you should assign the PROTECTED attribute to the user IDs that you
associate with application servers. For more information, see Assigning RACF User
IDs to Started Procedures on page 143.
Attention
Make sure an existing generic profile in the FACILITY class does not
inadvertently grant this authority by default. It is recommended that you create
a profile to protect the IRR.RUSERMAP resource with UACC(NONE) until you
determine which applications require identity mapping.
283
General Resources
If your installation maintains FACILITY class profiles in storage through SETROPTS
RACLIST processing, you must issue the following command to refresh the
FACILITY class after you define or alter any profiles protecting the IRR.RUSERMAP
resource:
SETROPTS RACLIST(FACILITY) REFRESH
284
Profile
Purpose
DCE.PASSWORD.KEY
LDAP.BINDPW.KEY
General Resources
Table 26. KEYSMSTR class profiles (continued)
Profile
Purpose
Rules:
1. Each profile must be defined using a discrete profile named exactly as shown.
2. You must define an encryption key in the LDAP.BINDPW.KEY profile before you can store
an LDAP BIND password in the PROXY segment of either of the following profile types:
a. User profiles, by using the PROXY BINDPW operands of the ADDUSER or ALTUSER
commands
b. Resource profiles, by using the PROXY BINDPW operands of the RDEFINE or
RALTER commands
Similarly, you must define an encryption key in the DCE.PASSWORD.KEY profile before
users can store DCE passwords in the RACF database, or before the DCE single signon
feature can be used.
1.
If you have...
Then use...
Notes
Cryptographic software
installed
Key encryption
(KEYENCRYPTED operand)
No cryptographic software
installed
_____________________________________________________________
2.
Create a profile in the KEYSMSTR class to define and store your encryption
key, using your choice of encryption type as the operand of the SSIGNON
segment.
Example:
REDEFINE KEYSMSTR LDAP.BINDPW.KEY SSIGNON(KEYENCRYPTED(0023428875DECFAC))
In this example, LDAP BIND passwords will be encrypted using the key stored
in the LDAP.BINDPW.KEY profile in the KEYSMSTR class. The value of the
key is 0023428875DECFAC.
Recommendation: For security reasons, choose a key that is known only to
you, the security administrator.
_____________________________________________________________
3.
Display the profile you created using the RLIST command to verify that the key
is protected.
RLIST KEYSMSTR LDAP.BINDPW.KEY
Result: The value of your key should not be displayed, but the information
shown will indicate whether the key value is masked or encrypted.
Example:
285
General Resources
CLASS
----KEYSMSTR
NAME
---LDAP.BINDPW.KEY
SSIGNON INFORMATION
------------------KEYENCRYPTED DATA NOT DISPLAYABLE
_____________________________________________________________
4.
Rule: You must activate the KEYSMSTR class before RACF will use the keys
stored in the KEYSMSTR profiles.
_____________________________________________________________
When you are done, the key that you stored in the SIGNON segment of the
KEYSMSTR profile will be used to encrypt and decrypt LDAP passwords.
286
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This chapter describes how to administer class names for general resources in the
RACF class descriptor table (CDT).
|
|
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
287
288
289
290
290
291
292
292
293
293
294
296
296
298
298
299
299
301
301
302
|
|
|
|
|
|
|
|
The RACF class descriptor table (CDT) contains the names and attributes of the
resource classes that can be used on your RACF system. There are up to three
sets of class descriptor entries that comprise the CDT.
1. A required set of CDT entries supplied by IBM in assembler module ICHRRCDX
|
|
|
|
|
|
|
|
|
|
The dynamic CDT consists of the set of entries that you administer using RACF
commands. These entries are effective without an IPL. Dynamic CDT entries are
created from profiles that you define in the CDT general resource class. (The names
of the profiles you define in the CDT class become new classes in the dynamic
CDT.) RACF authorization checking processes the dynamic CDT as a logical
extension of the static CDT.
|
|
This chapter describes how to administer dynamic CDT entries using general
resource profiles in the CDT class.
287
||
See...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Your installation should not change or delete entries in ICHRRCDX. You may
update ICHRRCDE but use of this module is not the generally recommended
method for adding installation-defined resources classes. If your installation has
already installed and updated ICHRRCDE, you are not required to remove or
update this module. However, consider migrating your static CDT entries from
ICHRRCDE to the dynamic CDT. See Recommendation for moving to the dynamic
CDT on page 299.
|
|
|
|
|
|
Entries in the dynamic CDT are used to add, change, or delete installation-defined
classes. These are optional CDT entries that are created when you define profiles
in the CDT general resource class. The names of the profiles in the CDT class
become the names of your new classes in the dynamic CDT.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Once you create the dynamic CDT by executing the SETROPTS RACLIST(CDT)
command, it remains active until you disable it. (See Disabling the dynamic CDT
on page 298.) When you restart your system, RACF automatically rebuilds the
dynamic CDT using attributes from CDT class profiles in the RACF database. As with
other RACF classes, if you activate SETROPTS class options for a dynamic class
before a system restart, RACF automatically activates those SETROPTS class
options after a restart.
|
|
|
|
To list all RACF classes defined on your system, including dynamic classes, you
can use the Data Security Monitor (DSMON) to produce the Class Descriptor Table
Report. See z/OS Security Server RACF Auditors Guide for more information about
DSMON.
|
|
|
|
|
|
To list all CDT class profiles on your system, execute the SEARCH CLASS(CDT)
command. This list of profiles may differ from the list of dynamic classes generated
by the DSMON Class Descriptor Table Report for one of the following reasons:
1. Some profiles in the CDT class might have been added after the most recent
SETROPTS RACLIST(CDT) REFRESH command was issued. Profiles added in
this way are defined on your system but are not active classes.
288
|
|
|
2. Profiles in the CDT class might have been defined with errors that prevented the
classes from being added to the dynamic CDT.
|
|
|
|
|
|
The task of administering profiles in the CDT class can be done by you, the security
administrator, but because changes in the dynamic CDT can affect resource classes
in the static CDT and impact your entire RACF system, you are advised to consult
with your system programmer before making changes. Then, you can delegate the
task of administering dynamic CDT entries to the system programmer by granting
class authority (CLAUTH) and field-level access to the CDTINFO profile segments.
|
|
|
|
Example:
|
|
See Field-Level Access Checking on page 213 for the steps to enable field
authority.
|
|
|
|
|
|
|
|
When you define class name entries in the dynamic CDT, you create profiles in the
CDT class. These profiles define the dynamic CDT entries themselves, rather than
protect resources in the classes they define. In other words, granting READ access to
the profiles in the CDT class allows the user, for example, a system programmer, to
view the dynamic CDT class entries. Granting ALTER access to these profiles allows
the user to change the access list or delete class name entries. Therefore, you
should control ALTER access carefully. In addition, having access to a CDT profile
does not grant access to profiles in the resource class defined by that CDT entry.
|
|
The name of the profile you create in the CDT class is the name of your new class in
the dynamic CDT. The syntax rules for the CDT profile name are as follows:
|
|
|
|
|
|
|
|
|
|
|
|
Rules:
1. The profile name must be 18 characters, consisting of the following:
AZ
09
#
(X'7B')
@
(X'7C')
$
(X'5B')
2. You must include at least one character from the following:
09
#
(X'7B')
@
(X'7C')
$
(X'5B')
|
|
|
|
|
|
|
|
|
Rule 2 ensures that class names you define in the dynamic CDT do not conflict with
class names supplied by IBM in ICHRRCDX. If you do not follow this rule, a
warning message is issued for the RDEFINE or RALTER command when you
define or update a profile in the CDT class; however, the profile is still defined or
updated. You can use the RDELETE command to delete the profile before you
issue the SETROPTS RACLIST(CDT) command to build or refresh the dynamic
CDT. If you do not delete the profile and subsequently issue the SETROPTS
RACLIST(CDT) command, another warning message is issued but the class may
be defined and activated if there are no other errors.
289
Restriction: If you do not follow Rule 2 and, in the future, IBM supplies a class
using the same name you defined, the IBM class will be used instead of your class,
and the results will be unpredictable.
|
|
|
|
|
|
|
|
|
|
To add a new class to the dynamic CDT, use the RDEFINE command to add a
profile to the CDT class. An important attribute of every CDT entry is its POSIT
value. There are 1024 possible numeric POSIT values. You can specify POSIT
values 1956 and 128527. However, certain POSIT values are reserved for IBM
use.
|
|
|
|
|
|
|
|
Restriction: POSIT values 018, 57127, and 5281023 are reserved for IBM use
and should not be used for your dynamic class entries unless you intend to share
SETROPTS options with an IBM supplied class. (For example, you might choose to
have an installation-defined CICS class share SETROPTS options with an IBM
supplied CICS class.) If you use a reserved POSIT number that is not currently
used for an IBM supplied class, be aware that in the future IBM might create a
supplied class with this POSIT number. If this conflict occurs, processing results for
your class will be unpredictable.
|
|
|
|
|
Classes with the same POSIT value are administered as a single class when you
specify a class option, such as CLASSACT or RACLIST, on the RACF SETROPTS
command or grant CLAUTH authority to one of them. You would add a new class
with a unique POSIT value when you want to administer it separately from any
other class.
|
|
Perform the following steps in this example to define a new class called PIX2004
that you will administer separately.
|
|
|
|
1.
Determine a unique POSIT value for the new profile. Evaluate the class entries
in the dynamic CDT. Consult your system programmer to evaluate the class
entries in the static CDT (modules ICHRRCDE and ICHRRCDX).
_____________________________________________________________
2.
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
|
|
|
Validation checking will be performed again, and any error messages will be
issued again.
_____________________________________________________________
290
3.
|
|
|
|
|
|
|
|
Or, if the dynamic CDT was already active, refresh the dynamic CDT:
_____________________________________________________________
4.
|
|
|
Example:
_____________________________________________________________
5.
_____________________________________________________________
|
|
|
|
|
|
|
To add a new class to the dynamic CDT that you will administer together with
another class, add the new class with the same POSIT value as the other class.
(See When a POSIT value is shared on page 292 for details about the RACF
processing options that are controlled together for classes that share a POSIT
value.)
|
|
|
|
For example, if you have an existing class called PONIES8 (either in the dynamic
CDT or in ICHRRCDE) with a unique POSIT number301, for exampleyou might
add a new class called HORSES8, a class related to PONIES8, and logically
requiring the same RACF processing options.
|
|
|
|
|
Assume that you have already activated the following SETROPTS options for the
existing PONIES8 class:
CLASSACT
RACLIST
AUDIT
|
|
|
|
|
|
|
When you execute the RDEFINE CDT command to add the new HORSES8 class
to the CDT, specify the POSIT number as 301the same as for PONIES8. When
you refresh the dynamic CDT, all of the same RACF processing options that are in
effect for class PONIES8 will automatically be in effect for the new class HORSES8,
except SETROPTS RACLIST. The SETROPTS RACLIST(HORSES8) command
must be issued separately for the HORSES8 class because a new dataspace must
be built.
Rules:
291
|
|
|
1. If you want SETROPTS RACLIST active for a new class, you must execute the
SETROPTS RACLIST command after you define the new class to build its new
associated dataspace.
2. If SETROPTS GENLIST is active for a new class, you must execute the
SETROPTS GENLIST command after you define the new class to build its
associated in-storage profiles.
|
|
|
|
|
After the dataspace has been built initially, you can issue either one of the following
commands to refresh RACLISTed profiles in both the HORSES8 and PONIES8
classes:
SETROPTS RACLIST(HORSES8) REFRESH or
SETROPTS RACLIST(PONIES8) REFRESH
|
|
|
|
Further, by issuing either one of the following commands, you activate global
access checking for both the PONIES8 and the HORSES8 classes:
SETROPTS GLOBAL(HORSES8) or
SETROPTS GLOBAL(PONIES8)
|
|
|
|
|
|
|
Any number of classes may share the same POSIT number. For example, a third
class called MARES8 could be added and could also share POSIT number 301
with PONIES8 and HORSES8.
|
|
|
|
|
|
|
When a POSIT value is shared between two or more classes, certain RACF
processing options are controlled in the same manner (simultaneously) for all
classes with the shared POSIT value. The following options affect the processing of
resources or profiles associated with classes that share a POSIT value:
Table 27. Processing options controlled simultaneously for classes sharing a POSIT value
Type of processing
Corresponding option
Authorization checking
SETROPTS CLASSACT
Auditing
SETROPTS AUDIT
Statistics
SETROPTS STATISTICS
SETROPTS GENERIC
SETROPTS GENCMD
SETROPTS GLOBAL
SETROPTS LOGOPTIONS
SETROPTS RACLIST
|
|
|
|
|
Perform the steps in this example to define a new class called HORSES8 that you
will administer together with the class called PONIES8 and that will share its POSIT
value.
1.
292
|
|
|
|
|
|
_____________________________________________________________
2.
|
|
|
|
Result: The same SETROPTS options that were previously active for the
PONIES8 class are now active for the HORSES8 class because the classes
share a POSIT value. The exception is SETROPTS RACLIST.
_____________________________________________________________
3.
|
|
|
|
_____________________________________________________________
4.
|
|
|
|
|
|
|
|
|
|
_____________________________________________________________
Perform the following steps to change the current POSIT value of an existing class:
1.
Execute the following command to list the SETROPTS options for all classes.
SETROPTS LIST
|
|
Record all active system options for the class that you wish to change.
_____________________________________________________________
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.
Examine all dynamic and static CDT entries to see if any other existing class
shares the current POSIT value or the new POSIT value.
v If no other existing class shares the current POSIT value, use the
SETROPTS command to deactivate all options associated with the class you
want to change to ensure that any new class will not have unexpected
options if you add a new class using that POSIT value in the future. For
example, if the SETROPTS options CLASSACT, STATISTICS, GENERIC
and GENCMD are active for the class, you would issue the following
command to deactivate those options:
SETROPTS NOCLASSACT(classname) NOSTATISTICS(classname)
NOGENERIC(classname) NOGENCMD(classname)
v If another existing class shares the current POSIT value, do not use the
SETROPTS command to deactivate any SETROPTS option associated with
the class you want to change because this would turn off the SETROPTS
option for all classes sharing the POSIT value. In this case, proceed to Step
3 without making any changes.
Chapter 8. Administering the Dynamic Class Descriptor Table (CDT)
293
_____________________________________________________________
3.
|
|
|
_____________________________________________________________
4.
|
|
|
Refresh the CDT class on all systems that will use the changed class.
SETROPTS RACLIST(CDT) REFRESH
_____________________________________________________________
5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Activate the desired SETROPTS options, using the SETROPTS LIST output
from Step 1 on page 293 as reference, assuming for this example that
SETROPTS options CLASSACT, STATISTICS, GENERIC, and GENCMD were
previously active for the class you changed.
v If an existing class does not share the new POSIT value, issue the following
command to reactivate those options:
SETROPTS CLASSACT(classname) STATISTICS(classname)
GENERIC(classname) GENCMD(classname)
v If an existing class shares the new POSIT value, all of the same RACF
processing options that were in effect for the shared class are automatically
in effect for the class you changed, with the exception of the SETROPTS
RACLIST option.
Rules:
a. If you want SETROPTS RACLIST active for a changed class, you must
execute the SETROPTS RACLIST command after you change the class
to build its new associated dataspace. If the class was RACLISTed
before the POSIT change, add the REFRESH option to rebuild the
dataspace:
SETROPTS RACLIST(classname) REFRESH
|
|
|
|
If you change attributes for an existing class in the dynamic CDT, plan carefully to
avoid unintended results. Before making changes to the following particular class
attributes, follow these guidelines to help you consider the effect of your changes
on existing applications and RACF processing.
|
|
|
|
|
|
|
|
|
|
|
SETROPTS NOGENLIST(class-name)
294
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Then, be sure to update both the grouping class definition and the member
class definition in compatible ways. For example, if you change a member class
to a non-member class by changing GROUP(grouping-classname) to NOGROUP,
then you must change the corresponding grouping class to a non-grouping class
by changing MEMBER(member-classname) to NOMEMBER.
5. MAXLENGTH and MAXLENX: Before you change the length of profile names,
review the following guidelines:
v Before you increase the length of profile names in a class, examine existing
applications to see if modifications are necessary. When you increase the
length attribute in a class, update only the MAXLENX operand to specify the
new length, leaving the existing MAXLENGTH value. This may allow some
applications using the RACROUTE macro with the ENTITY operand to work
properly with the previous maximum length. These applications include those
that use RACROUTE REQUEST=AUTH, REQUEST=FASTAUTH, and
REQUEST=EXTRACT with TYPE (other than EXTRACTN). However,
applications that use other RACF macros, such as ICHEINTY and
RACROUTE REQUEST=EXTRACT,TYPE=EXTRACTN, may likely need
modifications to process the new profile name length correctly. Modify
applications that use the RACROUTE macro to include the ENTITYX operand
to support the new maximum length.
v Before you decrease the length of profile names in a class, examine existing
applications that use the RACROUTE macro with ENTITY or ENTITYX
option, or the ICHEINTY macro with the ENTRY or ENTRYX option, to see if
modifications are necessary. Then, be sure to delete any profiles in that class
that have names longer than the new MAXLENGTH or MAXLENX limits. If
you do not delete the profiles with the longer names before you decrease the
MAXLENGTH or MAXLENX values for the class, authorization checking for
resources in the class may give unpredictable results.
6. PROFILESALLOWED: Before you change PROFILESALLOWED(YES) to
PROFILESALLOWED(NO), delete all profiles from the class using the RDELETE
command.
7. RACLIST: Before you change RACLIST(REQUIRED) or RACLIST(ALLOWED) to
RACLIST(DISALLOWED), do both of the following:
a. Remove any RACLISTed profiles in the class by issuing the following
command:
SETROPTS NORACLIST(class-name)
295
|
|
|
system does share a RACF database with your production system, you may need
to create a class in the dynamic CDT specifically for testing, and modify your
applications to use the test class.
|
|
|
|
RRSF consideration: If you are using RACF Remote Sharing Facility and change
a dynamic CDT entry, consider updating the dynamic CDT entry on all systems that
use the dynamic class. Also, see RRSF considerations for the dynamic CDT on
page 302.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Restriction: The following procedure can not be used to delete classes from the
static CDT (modules ICHRRCDX or ICHRRCDE). To modify the static CDT, consult
your system programmer and see z/OS Security Server RACF System
Programmers Guide.
|
|
|
|
|
|
|
|
|
|
|
|
Perform the following steps to delete an existing class from the dynamic CDT.
1.
|
|
|
|
|
|
|
|
____________________________________________________________
b. Execute the CLIST created in Step 1a.
Example:
|
|
____________________________________________________________
c. Verify no profiles remain in the class.
296
|
|
Example:
____________________________________________________________
|
|
|
SEARCH CLASS(HORSES8)
2.
SETROPTS LIST
____________________________________________________________
|
|
|
|
|
3.
SETROPTS NOCLASSACT(HORSES8)
Do not deactivate this class when it shares a POSIT value with other classes
that are active. (See the Before you begin section of this procedure.)
____________________________________________________________
4.
Do not deactivate the GLOBAL option for this class when it shares a POSIT
value with other classes that are active. (See the Before you begin section
of this procedure.)
____________________________________________________________
5.
|
|
|
|
If you are using global access checking for the class and the class to be
deleted does not share a POSIT value with other existing classes, deactivate
the GLOBAL option for the class.
Example:
SETROPTS NOGLOBAL(HORSES8)
|
|
|
|
|
If the class to be deleted does not share a POSIT value with other existing
classes, deactivate the class.
Example:
|
|
|
|
|
|
|
|
Issue the following command and note every occurrence of the class you
wish to delete.
____________________________________________________________
6.
|
|
Example:
____________________________________________________________
|
|
|
|
|
|
|
|
|
|
7.
If the class to be deleted does not share a POSIT value with other existing
classes, deactivate the other active system options for your class, using the
SETROPTS LIST command output from Step 2.
Example:
SETROPTS NOAUDIT(HORSES8) LOGOPTIONS(DEFAULT(HORSES8)) NORACLIST(HORSES8)
NOGENERIC(HORSES8) NOGENCMD(HORSES8) NOSTATISTICS(HORSES8)
Do not deactivate the active system options for this class when it shares a
POSIT value with other classes that are active. (See the Before you begin
section of this procedure.)
____________________________________________________________
297
8.
|
|
|
|
|
If you are using GENLIST processing for the class to be deleted and the
class does not share a POSIT value with other existing classes, deactivate
GENLIST processing.
Example:
SETROPTS NOGENLIST(HORSES8)
Do not deactivate GENLIST processing for this class when it shares a POSIT
value with other classes that are active. (See the Before you begin section
of this procedure.)
____________________________________________________________
|
|
|
|
9.
|
|
Example:
____________________________________________________________
10.
|
|
|
____________________________________________________________
11.
|
|
|
|
|
|
|
If you have users with class authority (CLAUTH) for the deleted class, remove
their authorities.
Example:
ALTUSER userid NOCLAUTH(HORSES8)
____________________________________________________________
|
|
|
|
|
|
You can disable the dynamic CDT only after you have determined that no
applications are using dynamic classes and after you have deleted each dynamic
class by executing the procedure defined in Deleting a class from the dynamic
CDT on page 296. After you have deleted all dynamic classes, disable the use of
the dynamic CDT by issuing the following command:
|
|
|
|
|
|
|
|
Restriction: If you do not delete a dynamic class before you issue the SETROPTS
NORACLIST(CDT) command, RACF no longer recognizes that dynamic class. If
you subsequently enable the dynamic CDT using the SETROPTS RACLIST(CDT)
command, use of the previously defined dynamic class may cause unpredictable
results. Any profiles in the previously defined dynamic class will remain and some
SETROPTS options may still remain active, but RACLIST options may no longer be
active. To re-enable a previously defined dynamic class, see Re-enabling a
previously defined dynamic class.
|
|
SETROPTS NORACLIST(CDT)
|
|
|
298
|
|
|
|
|
|
|
|
|
|
|
2.
If GLOBAL=YES RACLIST ONLY was active for the dynamic class (before you
issued the SETROPTS NORACLIST(CDT) command), the application that
issued the RACROUTE REQUEST=LIST,GLOBAL=YES macro must reissue
the macro to rebuild the profiles in storage for the class.
_____________________________________________________________
|
|
|
|
|
|
3.
Issue the SETROPTS LIST command and carefully review the output, noting
whether the dynamic class you wish to restore appears in any of the following
lists:
GLOBAL CHECKING CLASSES
GENERIC PROFILE CLASSES
GENLIST CLASSES
|
|
|
a.
If SETROPTS GLOBAL is active for your class, refresh the global access
checking table for the class:
Example: SETROPTS GLOBAL(HORSES8) REFRESH
____________________________________________________________
b.
|
|
|
|
|
_____________________________________________________________
|
|
|
You have now re-enabled the use of a previously defined dynamic class that
inadvertently remained when the dynamic CDT was disabled. The options that were
previously active for the class should again be active.
|
|
|
|
|
Restriction: You can not move supplied classes (ICHRRCDX) to the dynamic CDT.
You can only migrate classes from the installation-defined CDT (ICHRRCDE) to the
dynamic CDT.
|
|
|
|
|
Because dynamic CDT entries can be changed without an IPL, you should consider
migrating your static installation-defined classes to the dynamic CDT. The RACF
Web site provides a REXX exec to translate your installation-defined CDT into a
series of RDEFINE CDT commands to facilitate this migration. Look for this
download at: http://www.ibm.com/servers/eserver/zseries/zos/racf/
|
|
|
|
|
|
|
|
|
If you do not use the CDT migration exec, define classes in the dynamic CDT to
replace the same-named class in ICHRRCDE. Use class attributes on the
RDEFINE CDT command that match the equivalent class attributes for each class
on the ICHERCDE macro invocation (used to create ICHRRCDE). Use Table 28 on
page 300 to determine the equivalent class attributes. (If you use the REXX EXEC
to create the RDEFINE CDT commands, this translation is done for you.) If you
choose class attributes on the RDEFINE CDT command which do not match the
equivalent class attributes on your ICHERCDE macro invocation for a class, a
warning message is issued to note the attribute differences.
Chapter 8. Administering the Dynamic Class Descriptor Table (CDT)
299
|
|
|
|
|
|
|
|
When you issue an RDEFINE CDT command to define a class that already exists
in ICHRRCDE, a warning message is issued to remind you that a duplicate entry
exists in ICHRRCDE. When you add the class to the dynamic CDT during
SETROPTS RACLIST(CDT) or SETROPTS RACLIST(CDT) REFRESH command
processing, another warning message is issued to indicate the class definition in the
dynamic CDT overrides the definition in the static CDT. If you subsequently delete
the entry in the dynamic CDT, the class definition in the static CDT will again be in
effect, and another message will indicate this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rules:
v If you are replacing a grouping or member class from the installation-defined
CDT with a dynamic class, you must specify the equivalent GROUP or MEMBER
operand on the definition of the dynamic class. If the grouping or member class
definition does not match, an error message is issued. For example, if your
installation-defined class HORSES8 is a grouping class that specifies the
member class PONIES8 (MEMBER=PONIES8 is specified on the ICHERCDE macro),
then your dynamic class definition for HORSES8 must include the
CDTINFO(MEMBER(PONIES8)) operand.
v When you move a grouping or member class from ICHRRCDE to the dynamic
CDT, you must define both the grouping and member class to the CDT class
before issuing SETROPTS RACLIST(CDT) to build or refresh the dynamic CDT.
A grouping class in the dynamic CDT cannot reference a member class in the
static CDT. Similarly, a member class in the dynamic CDT cannot reference a
grouping class in the static CDT.
|
|
|
See Table 28 for a comparison of the class attributes of the ICHERCDE macro and
the corresponding class attributes to specify when you define dynamic class entries
in the CDT class.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table 28. ICHERCDE macro operands and the corresponding operands for the RDEFINE
and RALTER commands
ICHERCDE macro operand
CLASS=
profile-name
CASE=UPPER | ASIS
CDTINFO(CASE(UPPER | ASIS))
DFTRETC=0 | 4 | 8
CDTINFO(DEFAULTRC(0 | 4 | 8))
DFTUACC=ALTER | CONTROL |
UPDATE | READ | NONE
EQUALMAC=YES | NO
CDTINFO(MACPROCESSING(NORMAL | EQUAL))
FIRST=ALPHA
CDTINFO(FIRST(ALPHA,NATIONAL))
FIRST=NUMERIC
CDTINFO(FIRST(NUMERIC))
FIRST=ALPHANUM
CDTINFO(FIRST(ALPHA,NUMERIC,NATIONAL))
FIRST=ANY
CDTINFO(FIRST(ALPHA,NUMERIC,NATIONAL,SPECIAL))
FIRST=NONATABC
CDTINFO(FIRST(ALPHA))
FIRST=NONATNUM
CDTINFO(FIRST(ALPHA,NUMERIC))
300
GROUP=group-class-name
CDTINFO(GROUP(grouping-class-name))
ID=number
None.
KEYQUAL=nnn
CDTINFO(KEYQUALIFIERS(nnn))
MAXLENX=nnn
CDTINFO(MAXLENX(nnn))
MAXLNTH=nnn
CDTINFO(MAXLENGTH(nnn))
MEMBER=member-class-name
CDTINFO(MEMBER(member-class-name))
OPER=YES | NO
CDTINFO(OPERATIONS(YES | NO))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table 28. ICHERCDE macro operands and the corresponding operands for the RDEFINE
and RALTER commands (continued)
|
|
|
|
|
|
|
Notes:
1. If you do not specify the DEFAULTUACC operand, the default is DEFAULTUACC(NONE) which is
different from the ICHERCDE default of using the ACEE value.
2. The ID operand is obsolete.
3. If you do not specify the OPERATIONS operand, the default is OPERATIONS(NO) which is different
from the ICHERCDE default of OPER=YES.
|
|
OTHER=ALPHA
CDTINFO(OTHER(ALPHA,NATIONAL))
OTHER=NUMERIC
CDTINFO(OTHER(NUMERIC))
OTHER=ALPHANUM
CDTINFO(OTHER(ALPHA,NUMERIC,NATIONAL))
OTHER=ANY
CDTINFO(OTHER(ALPHA,NUMERIC,NATIONAL,SPECIAL))
OTHER=NONATABC
CDTINFO(OTHER(ALPHA))
OTHER=NONATNUM
CDTINFO(OTHER(ALPHA,NUMERIC))
POSIT=nnn
CDTINFO(POSIT(nnn))
PROFDEF=YES | NO
CDTINFO(PROFILESALLOWED(YES | NO))
CDTINFO(RACLIST(REQUIRED))
RVRSMAC=YES | NO
CDTINFO(MACPROCESSING(NORMAL | REVERSE))
SIGNAL=YES | NO
CDTINFO(SIGNAL(YES | NO))
SLBLREQ=YES | NO
CDTINFO(SECLABELSREQUIRED(YES | NO))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When you move a static class to the dynamic CDT in a sysplex environment and
the static class is defined with different options on various systems, you will receive
different warning messages on each system. Examine the message log on each
peer system when you execute the SETROPTS RACLIST(CDT) REFRESH
command to ensure that each execution completed as expected.
|
|
|
|
|
|
|
301
SETROPTS NORACLIST(CDT)
These commands do not take effect on shared systems until you issue them on
each of those systems, or until the systems are IPLed.
|
|
|
|
|
|
|
302
.
.
.
.
305
306
308
309
.
.
.
.
.
310
311
313
314
318
319
320
320
321
321
323
324
324
325
325
326
327
329
329
329
330
330
330
330
331
331
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
303
Program control
4. Program access to data sets (PADS) to allow users to have more access to
data sets than they would otherwise have while running specified programs that
provide restricted access to the data.
5. Program access to SERVAUTH resources to allow access to IP addresses only
when executing certain programs.
By defining programs in the PROGRAM class you indicate that you place some
amount of trust in their behavior. Although the level of trust can vary, these
programs are trusted more than programs created by general users of the system.
An environment in which someone has run a program not defined in the
PROGRAM class is considered a dirty, unsafe, or uncontrolled environment.
RACF requires a clean environment in functions 2 through 5 above because
allowing use of those functions in an uncontrolled environment would make it
relatively simple for malicious users with some specific knowledge to bypass the
program-related security controls and gain inappropriate access to the data.
Terms to know:
1. When used in this discussion, an environment is one of the following:
v TSO session
v TSO command invoked by TSOEXEC or the IKJEFTSR service
v Job step in a batch job, started procedure, or started job
v UNIX address space
2. A clean environment is one in which only programs defined in the PROGRAM
class have run.
3. A program refers to a load module residing in a partitioned data set (PDS) or a
program object residing in a program library (PDS/E).
Restrictions:
1. Programs that reside in the UNIX file system are excluded from this discussion.
Execution of programs in the UNIX file system is controlled using UNIX security
controls (as opposed to RACF PROGRAM profiles), and programs resident in
the UNIX file system cannot be used for PADS or program access to
SERVAUTH resources.
2. RACF and z/OS cannot protect programs written in the TSO/E CLIST language,
PERL, Java, or other interpreted languages.
3. RACF and z/OS can protect programs written in REXX only if they are compiled
and link-edited as load modules or program objects.
In making use of program control, you must decide:
v Whether to operate in BASIC (default) or ENHANCED (more secure) program
security mode.
v Which programs to define in the PROGRAM class and how to define them
(which to some extent depends on the program security mode chosen).
v How to protect the libraries that contain the programs.
See the Migrating from BASIC to ENHANCED program security mode on page
311 for migration and other planning considerations
304
Program control
305
Program control
You can display the program security mode for the system at any time by issuing
SETROPTS LIST. The first line of output indicates whether you have activated
WHEN(PROGRAM) processing and displays the program security mode.
For library_name, specify the data set name of the library that contains the
program, such as SYS1.LINKLIB.
You can optionally specify a volume serial, such as 123456, SYSRES, or VOLAAA.
If you specify a volume serial in this format, the PROGRAM profile protects the
program only when the specified library exists on that named volume.
If you do not want to specify a specific volume serial, you have two choices:
1. Omit the volume serial completely. In this case, RACF ignores the volume serial
when examining the PROGRAM profile, and considers it a match if the program
resides in that library, regardless of the volume serial where the library resides.
For this, you could specify:
306
Program control
ADDMEM SYS1.LINKLIB//
2. Specify a volume serial of ****** for a special case where the library exists on
the IPL volume (not on an extension of the IPL volume, however). For this, you
could specify:
ADDMEM SYS1.LINKLIB/******
You can specify a UACC and an access list for your PROGRAM profile, as you
would for other profiles. For the purposes of this discussion, remember that you
should be using access values of NONE or READ, rather than EXECUTE. See
More complex controls: Using EXECUTE access for programs or libraries (BASIC
mode) on page 310 for more information.
Programs reside in program libraries that can be for public use (those in the system
link list) or for limited private use (accessed through JOBLIB or STEPLIB, or
through the TSO/E CALL command specifying the data set name). To restrict users
ability to run programs, you might need to protect the program library so the user
cannot read from it. In some cases you do not need to provide special protection for
the program library, other than ensuring that general users cannot update it.
Recommendation: Restrict UPDATE access to libraries containing controlled
programs, just as you restrict UPDATE access to APF-authorized libraries.
Protecting program libraries on page 313 discusses the ways to protect the two
types of libraries since there might be cases where you need to do this.
When defining your PROGRAM profiles, also consider the following
recommendations:
Recommendations:
1. If the program you are protecting runs APF-authorized or if you specify the
program in the conditional access list to use PADS, you generally do not need
to prevent the user from reading the library that contains the program. If the
user can READ the library, he can copy the program to a different library.
However, the copy would not be able to run without APF authority. Additionally,
PADS would not work, since the copy would not be a controlled program.
2. If the program you are protecting does not run APF-authorized and you do not
intend to use it for PADS, you might want to prevent the user from copying it to
another library and executing it from there. However, this is probably only
important if the program itself contains sensitive data or algorithms. If a program
does not contain sensitive data or algorithms, does not run APF-authorized, and
is not used for PADS, do not control its use at all. Instead, consider controlling
access to the data that the program uses.
307
Program control
You also should consider the following rules when defining your PROGRAM
profiles:
Rules:
1. The profiles protect a program only if it resides in the library specified in the
ADDMEM operand.
2. If you have multiple libraries that contain the program, and the libraries have
different data set names, multiple ADDMEM operand specifications are
necessary if you want to protect all copies of the program.
3. If a program has an alias (alternate name with which you can run it) you should
protect both the real name and the alias name, which might require separate
PROGRAM profiles. For example, to control the use of the DELUSER command
and its associated alias DU, and also authorize only the SECADMIN group to
use them, issue the following commands:
RDEFINE PROGRAM DELUSER UACC(NONE) ADDMEM(SYS1.LINKLIB//NOPADCHK)
RDEFINE PROGRAM DU
UACC(NONE) ADDMEM(SYS1.LINKLIB//NOPADCHK)
PERMIT DELUSER ID(SECADMIN) ACCESS(READ) CLASS(PROGRAM)
PERMIT DU
ID(SECADMIN) ACCESS(READ) CLASS(PROGRAM)
4. You cannot restrict access to programs that reside in the system link pack area
(PLPA, MLPA, FLPA, dynamic LPA).
5. With a multiple-user address space (such as CICS Transaction Server for
OS/390), if one user loads a program then another user in the same address
space can also execute the program while it remains resident.
Restrictions:
1. Some system functions bypass normal MVS contents supervision processing.
IMS has some functions that operate this way, for example. RACF program
control does not work for programs accessed by such functions, because the
system invokes the RACF program control functions only when processing a
request to LINK, LOAD, XCTL, or ATTACH a program. RACF program control
also will not work for programs loaded from the z/OS UNIX file system, but you
can still control such programs using UNIX functions (permission bits, access
lists) that work with RACF.
2. All profiles in the PROGRAM class are discrete profiles. GENERICOWNER is
not supported for the PROGRAM class. Even though profiles ending in an
asterisk (*) are allowed in this class, they are not generic profiles, but a special
form of discrete profile. Thats why we use the terms specific and
non-specific when discussing PROGRAM profiles, as we mentioned previously.
3. WARNING mode is not supported for PROGRAM profiles.
4. You can specify NOTIFY and auditing for profiles in the PROGRAM class, and
for the PROGRAM class itself. However, RACF does not maintain access
statistics for PROGRAM profiles.
308
Program control
PROGRAM profile. Then, permit users on selected systems using
WHEN(SYSID(system-id)) with the ID and ACCESS operands on the PERMIT
command:
PERMIT profile-name CLASS(PROGRAM) ID(user or group or *) ACCESS(READ)
WHEN(SYSID(system-identifier))
This restricts the specified users or groups to executing the program only on a
system that has a matching system identifier.
309
Program control
that RACF ships in SYS1.LINKLIB and that you probably do not want available
to all users. Refer to z/OS Security Server RACF System Programmers Guide
for a description of IRRDPI00, and to z/OS Security Server RACF Auditors
Guide for a description of ICHDSM00, which should help you decide which
users to authorize for these programs.
RDEFINE PROGRAM ICHDSM00 ADDMEM(SYS1.LINKLIB//NOPADCHK) UACC(NONE)
RDEFINE PROGRAM IRRDPI00 ADDMEM(SYS1.LINKLIB//NOPADCHK) UACC(NONE)
PERMIT ICHDSM00 CLASS(PROGRAM) ID(authorized IDs) ACCESS(READ)
PERMIT IRRDPI00 CLASS(PROGRAM) ID(authorized IDs) ACCESS(READ)
310
Program control
requires a clean environment for use of EXECUTE access, a user cannot write his
own program to do this, because his program is not controlled (not defined by a
PROGRAM profile) and would make the environment become dirty, preventing
subsequent access to execute-controlled programs.
You can specify an access level of EXECUTE on the PROGRAM profile for the
program that contains the sensitive data or algorithm. You can also specify
EXECUTE as an access level for the library containing the program. In either case,
when the user attempts to run the execute-controlled program, RACF prevents the
loading of the module except into a clean environment. Once all execute-controlled
modules the user has run have completed execution and the system has removed
them from storage, RACF allows the environment to become dirty if the user then
tries to run a non-controlled program.
To decide whether to use EXECUTE for only the PROGRAM profile or also for the
DATASET profile that protects the programs library, you must consider certain
aspects of the library. See Protecting program libraries on page 313 for more
information.
311
Program control
program X) that in turn executes Y. In the first case, you probably only have Y in
the conditional access list, and you would define Y as a MAIN or BASIC
program. In the second case, both X and Y are in the conditional access list, so
you should define X as a MAIN or BASIC program.
5. For each of those programs, determine whether the program needs to be run in
batch, TSO, or both. If the program only needs to be run in batch, you can
define the program as MAIN. If program needs to be run in TSO or in both
batch and TSO, you must consider how the users run the programs in TSO. If
the users use the TSO/E TSOEXEC command to run the programs, or run them
from another program that uses IKJEFTSR to invoke them, you can define the
programs as MAIN. If this is not the case, you must define the program as
BASIC or find a way for the users to invoke them through TSOEXEC or
IKJEFTSR. If these are not possible, you may need to consider the more
difficult option of redesigning the programs to work with IKJEFTSR.
6. After you gather your list of programs that you will define with the MAIN or
BASIC attribute, use the RLIST command to determine whether you have the
programs defined with specific profiles (such as PROGRAM XYZ) or if you
have them defined with non-specific profiles (such as PROGRAM XY* or
PROGRAM **). If the programs have specific profiles, the profiles can be
modified using the RALTER command to specify APPLDATA(MAIN) or
APPLDATA(BASIC). However, if you have protected the programs with
non-specific profiles, you must use the RDEFINE command to define a new
specific profile for each of the programs you need to define as MAIN or BASIC.
Once these steps are complete you should:
1. Make a similar examination of IRRDBU00 output, looking at the records that
indicate execute-controlled libraries:
v Type 0400 records with a DSBD_UACC value of EXECUTE
v Type 0402 records with a DSCACC_ACCESS value of EXECUTE
v Type 0404 records with a DSACC_ACCESS value of EXECUTE
Examine the programs in those libraries to see which you need to define as
MAIN or BASIC, using similar criteria as used for PADS.
2. Look at the records that indicate execute-controlled programs,
v Type 0500 records with GRBD_CLASS_NAME of PROGRAM that have
GRBD_UACC of EXECUTE
v Type 0505 records with GRACC_CLASS_NAME of PROGRAM that have
GRACC_ACCESS of EXECUTE
Examine the programs in those libraries to see which you need to define as
MAIN or BASIC.
When this is complete, you can switch to ENHANCED-WARNING mode to find out
if you have any other changes that must be made. To switch to
ENHANCED-WARNING mode:
1. Use the RDEFINE command to define IRR.PGMSECURITY profile in the
FACILITY class, and specify an APPLDATA value other than ENHANCED or
BASIC. For example:
RDEFINE FACILITY IRR.PGMSECURITY APPLDATA(ENHWARN)
To ease migration from BASIC to ENHANCED program security mode, the mode
switch does not affect systems running any release earlier than z/OS V1R4. It also
312
Program control
does not affect jobs, started tasks, or TSO sessions that are already running. For
this reason, you should IPL the system at least once while in ENHANCEDWARNING mode to ensure that you test any jobs, started tasks, and TSO users
that started before you migrated from BASIC to ENHANCED program security
mode.
While running in ENHANCED-WARNING mode, you may receive messages
ICH427I or ICH430I to indicate the need for further necessary changes. After
receiving the messages, making the relevant changes, and allowing a sufficient test
period of running in ENHANCED-WARNING mode without getting further
messages, you can switch to ENHANCED program security mode. To do this:
1. Modify the APPLDATA value for the IRR.PGMSECURITY profile by issuing:
RALTER FACILITY IRR.PGMSECURITY APPLDATA(ENHANCED)
Again, the mode switch does not affect systems running a release earlier than z/OS
V1R4. It also does not affect any jobs, started tasks, or TSO sessions that are
already running. So, again, you must IPL the system to fully implement the change.
You should not have any problems as a result of this IPL, because you have
already IPLed once in ENHANCED-WARNING mode and subsequently fixed any
problems that caused RACF messages.
Recommendation: If you have several systems, consider having a SPECIAL user
logged on to TSO on one of them while you IPL to fix any unexpected problem that
may arise.
For programs in a system link list library, the user generally does not need access
to the library itself, and you could grant the user the following access authorities:
v READ: if the user is authorized to examine the content of programs or copying
programs from the library
v NONE: if the user is not authorized to examine the content of programs or copy
them.
Note: Users do not need access to libraries in the link list in order to run programs
from them if they allow the system to load their programs from the link list
itself. However, users need access to any library referenced as a private
library (for example, using a JOBLIB, STEPLIB, or the TSO/E CALL
library-name(program_name) command). Even if you have users issuing the
TSO/E CALL command, you can still grant NONE authority to the library if
they use a different form of the command, CALL *(program_name). This
Chapter 9. Protecting Programs
313
Program control
command instructs the system to find the program in the LNKLIST or
link-pack area without specifically accessing the library itself. If the users
cannot use that form of CALL, or need to reference the library as part of
JOBLIB or STEPLIB, you must treat the library as a private library if you do
not want the user inspecting the library contents.
To protect a private library from a user viewing its content or copying programs from
it, grant the user EXECUTE authority to the library itself through the DATASET
profile that protects the library. For example, if you have a library named
AAA.LIBRARY1, you could issue either of the following examples:
Examples:
1. ADDSD AAA.LIBRARY1 UACC(EXECUTE)
2. ADDSD AAA.LIBRARY1 UACC(NONE)
PERMIT AAA.LIBRARY1 ID(*) ACCESS(EXECUTE)
When EXECUTE authority is the highest access level that users have to a private
load library, the library is known as an execute-controlled library. If some users have
EXECUTE authority, and some have READ authority, the library is
execute-controlled for some users and not for others.
Recommendation: In general, grant READ access rather than EXECUTE unless
you have a strong need to prevent users from viewing the contents of a program
library. Using EXECUTE requires that you keep the users program execution
environments clean, and requires more administrative effort and restrictions on how
the users can access programs from the libraries.
Restriction: If you want EXECUTE restrictions to apply to a user who has
OPERATIONS authority, you must explicitly PERMIT that user or one of the users
groups to the DATASET profile with EXECUTE authority. UACC(EXECUTE) or
ID(*) ACCESS(EXECUTE) does not make a library execute-controlled for a user
with OPERATIONS authority.
314
Program control
operates. Several cases are illustrated at a high-level. Some of these cases are
complex because of the rules that RACF must enforce in order to ensure a secure
environment. Therefore, you may need to know more about the design of an
application or the way a TSO user invokes a program than you already know. Such
cases are described in greater detail but you may wish to involve a systems
programmer to evaluate them.
1. The user invokes the program PROG1 through JCL:
//stepname EXEC PGM=PROG1
//ddname DD DSN=some.dataset,DISP=SHR or OLD or MOD
Program PROG1 issues the OPEN for some.dataset itself. In this case, make
sure that you have defined PROG1 in the PROGRAM class as a controlled
program and specified PROG1 in the DATASET class on the conditional access
list:
RDEFINE PROGRAM PROG1 UACC(READ)
ADDSD some.dataset ACCESS(NONE)
PERMIT some.dataset ID(userid or *) WHEN(PROGRAM(PROG1)) ACCESS(READ or UPDATE)
For the ID operand, you can supply a specific user ID or group name, or you
can specify * to indicate that any user allowed to run the program gets that
access level if the standard access list did not grant a sufficient security level. If
you define PROG1 with a specific PROGRAM profile, such as PROGRAM PROG1,
and provide a specific access list for that profile, you might want to use ID(*) in
the conditional access list so you have only one access list (PROGRAM PROG1) to
maintain. If you define PROG1 through PROGRAM ** or if you grant UACC(READ)
or ID(*) ACCESS(READ) to PROGRAM PROG1, you might want to supply a
specific user ID or group name in the conditional access list for some.dataset.
2. The user invokes the program (PROG1) at the TSO/E READY prompt:
v Directly as a TSO command using the TSO/E CALL command
v Through a REXX exec that uses one of the following REXX statements:
address LINKMVS
address LINKPGM
address ATTACH
address ATTCHMVS
address ATTCHPGM
PROG1 then issues the OPEN itself.
Keeping a clean environment is generally harder to manage in TSO than in
batch. As a result, you must take more care with the definition of PROGRAM **
than for the batch case. However, assuming that you have kept the users
environment clean by defining the appropriate programs and libraries, this case
is the same as the batch case above and it is not described further.
Recommendation: For the use of CALL or the REXX functions, make sure you
use NOPADCHK when defining the entries in PROGRAM **. If you use
PADCHK you may need to define additional programs in the conditional access
list.
3. The user invokes the program (PROG1) under ISPF:
v Directly as a TSO command or using the TSO/E CALL command
v Through the ISPF SELECT CMD(PROG1) or SELECT PGM(PROG1)
functions
v Through a REXX exec that uses one of the following REXX statements:
address LINKMVS
address LINKPGM
Chapter 9. Protecting Programs
315
Program control
address ATTACH
address ATTCHMVS
address ATTCHPGM
PROG1 then issues the OPEN itself.
This case is very similar to case 2 above. However, it raises the additional
possibility that the user is running in ISPF split-screen mode. In split-screen
mode, the user might have initiated several programs and they might all be
active at the same time. Suppose that the user has split his ISPF screen, and
has program PROGA active on the first screen while trying to run PROG1 on
the second screen. In this case, in order for PADS to work for PROG1, PROGA
must be defined to RACF, as well. If you defined it with the NOPADCHK
attribute, you can simply specify PROG1 in the conditional access list as you
did for cases 1 and 2 above. However, if you defined it with PADCHK, you must
have a second conditional access list entry granting PROGA authority to the
data set. For this situation, you would issue the following commands:
RDEFINE PROGRAM PROG1 UACC(READ)
RDEFINE PROGRAM PROGA UACC(READ)
ADDSD some.dataset ACCESS(NONE)
PERMIT some.dataset ID(userid) WHEN(PROGRAM(PROG1)
ACCESS(READ or UPDATE)
PERMIT some.dataset ID(userid or *) WHEN(PROGRAM(PROGA)
ACCESS(READ or UPDATE)
4. The user invokes PROG1 under TSO as above (cases 2 or 3), but you cannot
keep his environment clean. For example, perhaps the user must run programs
that you do not want to define as controlled programs because you do not trust
them. In that case, when the user runs such programs the environment
becomes dirty, and subsequently he cannot invoke PROG1 in a normal fashion
if you want PADS to work.
If you have this situation, and if PROG1 does not need to invoke ISPF services
through ISPLINK, you can still allow use of PADS by having the user run
PROG1 through the TSO/E TSOEXEC command or (from another program) by
the TSO/E IKJEFTSR callable service. Both of these mechanisms can create a
new, temporary program environment that is clean and safe to use with PADS.
The user might invoke PROG1 by issuing TSOEXEC PROG1 or
TSOEXEC CALL *(PROG1) or some similar operation (such as a REXX exec
or CLIST). You can then specify PROG1 in your conditional access list as you
did for cases 1 and 2 above. Note that for this case, even if the user is using
ISPF split-screen mode, you do not need to worry about putting other programs
in the conditional access list.
5. The user invokes PROG1, and PROG1 invokes another program PROG2, and
PROG2 OPENs the data set.
Assumptions:
a. You have defined both PROG1 and PROG2 as controlled programs using
the NOPADCHK attribute.
b. PROG1 invokes PROG2 through the MVS LINK or ATTACH services. If
PROG1 issues MVS LOAD for PROG2, you just define PROG1 in the
conditional access list (allowing you to skip Step 6 below). Conversely, if
PROG1 invokes PROG2 through the MVS XCTL service, you just define
PROG2 in the conditional access list (allowing you to skip Step 6 below).
c. The user invoked PROG1 through some function that uses the MVS
ATTACH service:
v JCL
316
Program control
v
v
v
v
317
Program control
Note: As mentioned in case 5 above, beginning with z/OS V1R4, you have more
flexibility in specifying programs in a conditional access list. To explain this, some
familiarity with certain MVS technical terms is necessary. Generally, programs run
under MVS tasks. A program running in one task can attach a subtask (also known
as a child task) using the MVS ATTACH service. A program can also invoke another
program within the same task (rather than a subtask) using the MVS LINK service.
MVS represents a task by a control block called a TCB, and it represents a
program running in a task (TCB) with a program request block (PRB). As a result, if
a program invokes another program through LINK, you now have one task (TCB)
with two programs (PRBs).
When considering what program to specify in the conditional access list, you can
use either the program issuing the OPEN (current PRB, in MVS terms) or you can
specify one of the following:
1. The program represented by the first PRB for the current task (generally the first
program run in the task, unless that program used the MVS XCTL service to
transfer control to another program)
2. The program represented by the first PRB for the current tasks parent task, or
the parent tasks parent, up to the job step task or the task established by
TSOEXEC or IKJEFTSR.
Consequently, if:
1. The user executes PROG1
2. PROG1 LINKs to PROG2
3. PROG2 issues the OPEN
you can specify PROG2 or PROG1 in the conditional access list.
If:
1.
2.
3.
4.
5.
318
Program control
ISPF and various parts of TSO/E). When RACF makes its decision to allow access
through PADS, you must have one program in the conditional access list. This can
either be the program that issued the OPEN or a higher program in the execution
hierarchy (as mentioned before). Additionally, if the user has any other non-LPA
programs active, and you defined those programs with PADCHK, you must include
them in the conditional access list as well.
RACF also checks the PADCHK/NOPADCHK status of a program when a user tries
to run a new program. RACF checks if the user has any data sets already open
using PADS. If so, and if you define the new program with PADCHK, RACF ensures
that the program is included in the data sets conditional access list before allowing
the user to run the program.
PADCHK is the default when you define a PROGRAM to RACF or when you create
a new ADDMEM entry for an existing PROGRAM profile.
Recommendations:
1. If you are defining a program that you trust to operate in a safe manner and not
attempt to violate security, specify NOPADCHK to help minimize the size of your
conditional access lists and the work you need to do to administer them. Use
NOPADCHK for the PROGRAM ** or PROGRAM * profiles and for any other
cases where you trust a program to access only the data it should.
PADCHK might be most appropriate for user-written programs that are not
completely trusted. This includes the case where you are willing to call them
controlled and define them with PROGRAM profiles so they can use PADS, but
you want them usable only with data sets you have specifically authorized them
to. You do not trust them to function appropriately in an environment with other
programs running that also make use of PADS.
2. For best results, do not mix PADCHK and NOPADCHK definitions in the same
PROGRAM profile. When some members of a PROGRAM profile have been
defined with PADCHK and some with NOPADCHK, RACF uses PADCHK for all
members.
319
Program control
This example permits the specified users or groups to access network security
zones protected by SERVAUTH resources only when executing the specified
program or command.
Program access to SERVAUTH resources in ENHANCED program security mode
operates much the same as it does in BASIC program security mode, with one
exception. RACF allows program access to SERVAUTH resources to operate in
ENHANCED program security mode only when one of the following is true:
v The program that established the current program environment has the MAIN
attribute
v The current program or the first program executed in the current or a parent MVS
task has the BASIC attribute
Note: For checking MAIN programs, the environment is considered established by
the initial program executed in the job step, or the initial program executed
by TSOEXEC or the IKJEFTSR service, or the initial UNIX program exec()ed
or spawn()ed (non-local case only).
As with program access to data sets, you must maintain a clean environment to
control program access to SERVAUTH resources. (For details, see Maintaining a
clean environment in BASIC or ENHANCED mode on page 309.) Unlike program
access to data sets, the PADCHK/NOPADCHK operands have no meaning and are
ignored.
320
Program control
v The program that established the current program environment has the MAIN
attribute
v The current program or the first program executed in the current or a parent MVS
task has the BASIC attribute
Note: For checking MAIN programs, the environment is considered established by
the initial program executed in the job step, or the initial program executed
by TSOEXEC or the IKJEFTSR service, or the initial UNIX program exec()ed
or spawn()ed (non-local case only).
321
Program control
2. A user must run program PROG1 in batch and under TSO/E, but under TSO/E
the user can use TSOEXEC or TSOEXEC CALL *(PROG1) to run it, and
PROG1 must use PADS. Again, you can define PROG1 with the MAIN attribute.
3. A user must run program PROG2, which is an execute-controlled program.
PROG2 should be run using JCL or TSOEXEC. You can define PROG2 with the
MAIN attribute to allow this.
4. A user must run PROG1 (which uses PADS) or PROG2 (an execute-controlled
program) under TSO/E without using TSOEXEC. In this case, you can define
PROG1 or PROG2 with the BASIC attribute to allow it to run.
5. A user must run PROG3 (which invokes another program that uses PADS) or
PROG4 (which invokes an execute-controlled program). If the user runs PROG3
or PROG4 only using JCL or TSOEXEC, you can use the MAIN attribute when
defining PROG3 or PROG4. However, if the user needs to run PROG3 or
PROG4 as a normal TSO command, you would define them using the BASIC
attribute.
Note: If a user runs an APF-authorized program in TSO, and you have identified
that program to TSO/E (through member IKJTSOxx of your system
parameter library) as one that should run with APF authority, TSO/E
automatically uses the IKJEFTSR service to run the program, and you can
define it as MAIN, rather than BASIC.
Effectively, when defining programs, you can indicate several levels of trust in the
way that programs operate, based on the attributes you choose. You could define a
program using the PADCHK operand, indicating that the program must have an
entry in a data sets conditional access list before PADS is allowed with that
program in storage. The program is still a controlled program but is not as trusted
as a program defined with NOPADCHK. NOPADCHK indicates to RACF that you
trust the program not to try to access a data set inappropriately when some other
concurrently-executing program opens a data set using PADS.
Beyond PADCHK and NOPADCHK, you can identify a program as MAIN, BASIC, or
neither. You identify most programs as neither MAIN nor BASIC, by specifying
PROGRAM *, PROGRAM **, or another PROGRAM profile with a name that ends
with an asterisk (*). Again, these programs are controlled, but it is possible that not
enough is known about the way they operate to mark them as trusted (which
initiates an environment in which PADS or execute-controlled programs are used).
Recommendations:
1. When deciding to define a program as MAIN or BASIC, select programs that
perform a well-defined set of operations and do not accept the address of a
user-supplied routine as a parameter.
2. Do not define the TSO/E terminal monitor program (TMP) or any part of it (such
as IKJEFT01, IKJEFT1A, IKJEFT1B, IKJEFT02), or ISPF or any part of it (such
as ISPF, ISPSTART, ISPMAIN) as MAIN or BASIC because these programs
provide too much of a generalized environment controlled by the user.
If you have chosen to enable this stronger security for UNIX servers and daemons
by defining FACILITY profile BPX.MAINCHECK (refer to z/OS UNIX System
Services Planning for details), you must define some UNIX programs as MAIN, and
possibly copy them from the UNIX file system into a standard MVS load library.
322
Program control
For programs in the link pack area, RACF allows users to execute the program,
regardless of the UACC or access list, and RACF treats the program as having the
NOPADCHK attribute. Define it in the PROGRAM class only if you need to provide
a MAIN or BASIC attribute for it.
Notes:
1. You can optionally specify blanks at the end of the APPLDATA value. RACF
considers, for example, MAIN and MAIN , or BASIC and BASIC
as
equivalent.
2. RACF does not validate the APPLDATA value when you specify it with the
RDEFINE or RALTER command. When RACF is told to run in ENHANCED
program security mode using FACILITY profile IRR.PGMSECURITY, if RACF
reads a PROGRAM profile defining a specific program and finds that
APPLDATA specifies the MAIN or BASIC values, it assigns the attribute to the
program. This is done during the processing of SETROPTS WHEN(PROGRAM)
or SETROPTS WHEN(PROGRAM) REFRESH, or during system initialization
(IPL). If APPLDATA contains some other value, RACF ignores it without issuing
an error message.
3. When invoking MVS load modules through z/OS UNIX (such as exec(),
exec_mvs(), or an exec where UNIX loads a load module rather than an HFS
file) the MAIN setting for a PROGRAM is effective only in limited cases.
Specifically, it is effective when the exec() processing results in a new job step
task, but not for the local spawn exec() processing because this processing
Chapter 9. Protecting Programs
323
Program control
results in the creation of a new subtask rather than a job step task.
Consequently, exec() of load module, exec_mvs(), and non-local spawn(), or
their z/OS UNIX assembler callable service equivalents, preserve the effect of
the MAIN PROGRAM attribute.
4. Using MAIN or BASIC on the definition of programs that are loaded through
the z/OS Run-Time Library Services (RTLS) functions supplied by the
CSVRTLS macro might or might not be effective. First, after loading the module,
the program using CSVRTLS has to invoke the JPA copy of the module using
ATTACH, which is atypical usage of CSVRTLS. Second, even if a program uses
CSVRTLS and ATTACH in this manner, if the you have configured RTLS so the
requested module was pre-loaded into the RTLS cache in CSA, the MAIN or
BASIC attribute does not take effect. However, this affects modules only when
they are accessed through RTLS. Instead, if a module defined to RTLS is
accessed by the normal MVS LINK, LOAD, XCTL, or ATTACH macros, MAIN
or BASIC function normally.
5. When failing a request (or allowing it only due to ENHANCED-WARNING
processing), RACF issues a message indicating the source and name of the
non-MAIN program or the HFS-executable that established the non-MAIN
environment.
324
Program control
supervision ignores the supplied DE information and reissues the BLDL
macro just as it would if the DE information indicated that the requested
module was coming from an APF-authorized library. For more information,
refer to z/OS MVS Programming: Assembler Services Reference IAR-XCT
and z/OS MVS Programming: Authorized Assembler Services Guide.
325
Program control
request. Otherwise, RACF fails the request and issues message ICH429I to
describe the problem and tell you what program established the environment.
6. If the user is still authorized to execute the program and the program was
defined with the PADCHK attribute, RACF checks whether any
program-accessed data sets are open.
v If no program-accessed data sets are open, RACF allows the user to execute
the program.
v If program-accessed data sets are open, RACF checks the user or program
combination to verify that the combination has at least the same authority to
each data set in the list that was required when each data set was opened.
For more information on the requirements, refer to Program access to data
sets (PADS) in BASIC mode on page 314.
If the use or program combination has sufficient authority to all of the
opened data sets, RACF allows the user to execute the program.
If the user or program combination does not have sufficient authority to all
of the opened data sets, RACF causes the system to end the task (with
abend code 306 or 806).
Note: If you are denied access to a requested resource and you implemented
program control (with or without PADS), RACFs messages should provide
sufficient information to determine the problem. If not, refer to z/OS Security
Server RACF Diagnosis Guide for additional help in determining the cause of
the authorization failure.
326
Program control
2. The current program running in the current task, or the first program run in
the current task or a parent task, has the BASIC attribute.
If neither of these conditions is met, the users attempt to open the
program-accessed data set fails and the task ends with abend code 913. RACF
issues message ICH426I, specifying the non-MAIN program that established the
current environment.
v If there is more than one controlled program running in the current environment
(job step or task created by TSOEXEC or IKJEFTSR), all of those programs
defined with the PADCHK attribute have conditional access list entries allowing
them to access the data set. If one or more programs in the environment are not
authorized, the attempt fails and the task terminates with abend code 913. RACF
issues message ICH418I specifying one or more programs that were missing
from the conditional access list.
Note: If a TSO user has executed a non-controlled program during the current
session, and then attempts to access a program-accessed data set, the
attempt fails. The TSO user can either log off and log back on, or temporarily
regain a controlled environment by invoking the controlled program through
the TSOEXEC command. When writing a program, you can do the
equivalent by invoking the TSO IKJEFTSR service. For information on using
the IKJEFTSR service, see z/OS TSO/E Programming Guide.
327
Program control
tasklib (for example, through the TSO/E CALL command specifying the library
name) the library is considered execute-controlled for that user if the user has
only EXECUTE authority.
2. If an execute-controlled data set is used in a concatenation of libraries in a DD
statement, the entire concatenation is treated as execute-controlled.
3. If the user has any other access authority to the library (READ, UPDATE,
CONTROL, or ALTER), the library is opened and the user is granted that
access authority.
Fetching a program from an execute-controlled library: After an
execute-controlled library is opened, the user can attempt to execute (fetch) a
program from the library at any time. RACF checks the users program environment
(job step or task established by TSOEXEC or IKJEFTSR) to ensure that it is a
controlled environment.
Notes:
1. If the users program environment (job step or task established by TSOEXEC or
IKJEFTSR) is not controlled, RACF does not allow a program from an
execute-controlled library to be fetched into the environment. Therefore, the
users request to load a program from an execute-controlled library fails, and the
task typically ends with abend code 306 or 806. RACF issues message ICH419I
specifying the program that failed to load, and message ICH420I specifying the
program that caused the environment to become uncontrolled.
2. If the users program environment has used only controlled programs (or no
programs at all), the environment is controlled. RACF allows a program from an
execute-controlled library to be fetched into a controlled environment.
Consequently, RACF grants the users request to fetch a program from the
library.
3. If the users job step or TSO session is running in ENHANCED program security
mode, RACF also checks to ensure that one of the following is true:
a. The first program run in the job step or in the task established by TSOEXEC
or IKJEFTSR had the MAIN attribute
b. The first program run in the current task or the first program run in some
parent task has the BASIC attribute
If neither of these conditions is true, RACF issues message ICH429I to describe
the problem.
Additionally, if the user attempts to fetch a non-controlled program into a
controlled environment, RACF ensures that the user has at least READ
authority to all RACF-defined programs that are currently residing in the users
address space. RACF does not allow a user to fetch a non-controlled program
into an address space that contains an execute-controlled program. The users
attempt to load the non-controlled program fails and the task typically ends with
abend code 306 or 806. RACF issues ICH423I specifying one or more
execute-controlled programs in the current environment.
If a program not running in supervisor state tries to access an execute-controlled
data set other than to load a program through one of the MVS program-loading
services, the system denies the request and abends the program.
EXECUTE access authority has meaning only for a partitioned data set that is used
as a program library. If you specify EXECUTE for any other type of data set (such
as a CLIST or EXEC), effectively the user will have an access authority of NONE.
328
Program control
Auditing accesses to programs in execute-controlled libraries: At the time that
an execute-controlled library is opened, OPEN does not know if the user will later
attempt to read the library or to execute a program from the library. OPEN issues a
request for READ authority, and RACF fails the request and sets the reason code
to indicate that the user did have EXECUTE authority. OPEN examines the reason
code and determines that the user has EXECUTE authority, and allows the OPEN
to succeed, but marks its control blocks so that any non-supervisor-state I/O causes
an abend. When RACF detects that the user has only EXECUTE authority, it can
not predict if the access will eventually succeed or fail. If the library data set profile
indicates that all access attempts should be audited, message ICH408I is issued. If
the library data set profile says to audit both successes and failures, RACHECK
interprets this as AUDIT(ALL).
This method of determining access can lead to two confusing scenarios:
1. If the profile says AUDIT(ALL), a user attempting to execute a program might
receive message ICH408I saying that she does not have READ authority and
then see that the program has successfully executed.
2. If the profile says AUDIT(FAILURES), an attempt to read the library can lead to
an abend being issued but no message ICH408I being issued since the user
has EXECUTE authority.
In addition, the SMF records produced for an attempt to read and an attempt to
execute are identical for the same reasons described above.
*/
*/
*/
329
Program control
Note: Using '******' works only for the single system IPL volume; it does not work
for extensions of the system residence volume. Rather than using '******' you
might want to simply omit the volser if you have good controls over how
users can create new data sets.
*/
*/
*/
*/
v You have a program named PROG2 in library APP.LOADLIB that users execute
in batch, and when using that program you want the users to have UPDATE
access to data set ABC.DATA. Otherwise, users should have READ access to
the data set. Only users in group GROUPA should have access to PROG2 and
ABC.DATA. You should run in ENHANCED program security mode. Issue the
following commands:
1. ADDSD APP.LOADLIB UACC(READ)
330
Program control
2. RDEFINE PROGRAM PROG2 ADDMEM(APP.LOADLIB//NOPADCHK)
3.
4.
5.
6.
7.
8.
UACC(NONE) APPLDATA(MAIN)
PERMIT PROG2 CLASS(PROGRAM) ID(GROUPA) ACCESS(READ)
ADDSD ABC.DATA UACC(NONE)
PERMIT ABC.DATA ID(GROUPA) ACCESS(READ)
PERMIT ABC.DATA ID(*) ACCESS(UPDATE) WHEN(PROGRAM(PROG2))
RDEFINE FACILITY IRR.PGMSECURITY APPLDATA(ENHANCED)
SETR WHEN(PROGRAM)
3. Define a specific profile in the PROGRAM class that protects the controlled
program. The following command identifies only program XCLPGM as a
controlled program:
RDEFINE PROGRAM XCLPGM ADDMEM(KBROWN.PGMLIB2/VOL6A/NOPADCHK)
*/
*/
331
Program control
/* user ALLEN can only run the program from system SYS1
5. SETROPTS WHEN(PROGRAM) REFRESH
/* puts the new PROGRAM profile into storage
332
*/
*/
.
.
.
.
.
.
333
334
335
336
337
337
.
.
.
.
.
.
.
.
.
.
.
.
337
338
338
338
338
340
340
341
344
345
345
345
346
347
347
347
348
348
349
349
349
350
350
350
.
.
.
.
.
.
.
.
.
.
.
333
Operating Considerations
and are making contradictory updates, their operations might be interleaved and,
therefore, cause the information in the RACF database to become incomplete or
invalid.
Note: If a user is logged on, and you update the users attributes in the RACF
database using ALTUSER or CONNECT, some changes may not take effect
until the next time the user enters the system. However, a LISTUSER or
LISTGRP command issued immediately after the change shows the new
values.
Some of the changes that are delayed until the user logs on again are the
SPECIAL, OPERATIONS, and AUDITOR attributes and the list of connected groups
examined by RACROUTE REQUEST=FASTAUTH.
Example:
In this example, the security administrator inadvertently creates a situation where a
profile exists, but it does not have an owner. The security administrator issues
DELUSER to delete a user from RACF. At the same time, the other user (who has
the ADSP attribute and is logged on) creates a permanent user data set, which
automatically creates a discrete data set profile.
The DELUSER command performs the following operations on the RACF database:
1. Locates the user profile in the RACF database.
2. Locates any user data set profiles.
3. Ensures that the user does not have any user data sets whose high-level
qualifier is his user ID. (RACF cannot delete the user profile until all of his user
data sets are deleted.)
4. Deletes the user profile.
5. Updates the group profile to remove the user as an eligible member of the
group.
As a result of the ADSP attribute, RACF performs one operation on the RACF
database: it adds a data set profile for the permanent user data set.
In this example, if the user adds the new data set profile between Steps 2 and 3 of
the DELUSER command processing, RACF adds a user data set profile to the
RACF database. However, RACF has already deleted the user who owns the
profile. This creates an ownerless profile.
To prevent the creation of ownerless profiles, do not delete a user who is logged
on. Instead, make sure the user is logged off and cannot log on again. If necessary,
have the operator force the user off the system first. Then follow the steps
described in Summary of Steps for Deleting Users on page 91.
334
Operating Considerations
You can determine the fields that cause VLF purging on ACEE by referring to the
RACF database templates in z/OS Security Server RACF Macros and Interfaces. A
security-sensitive field has bit 0 of flag 2 turned on. Changes to such a field trigger
VLF purging.
In an installation where no RACF database sharing occurs, issuing commands that
deal with certain general resource classes or profiles can delete all stored security
environments. Examples of this include activating, deactivating, or issuing
SETROPTS NORACLIST(classname) or SETROPTS RACLIST(classname)
REFRESH for these classes:
APPCPORT
APPL
CONSOLE
FACILITY (only when SETROPTS MLS is in effect)
GTERMINL
JESINPUT
SECLABEL
SERVAUTH
TERMINAL
For participants sharing a RACF database, deleting one or more stored security
environments on one system causes all stored security environments to be deleted
by the other participants. Thus, the administration of user profiles in a shared
environment with a performance-oriented participant should be administered from
that system, if possible.
In all cases, any deleted security environment can be restored on demand through
actions such as legitimate logging on or job submission.
For information on using VLF for mapping z/OS UNIX user identifiers (UIDs) and
z/OS UNIX group identifiers (GIDs) in the UNIXMAP class, see Using the
UNIXMAP class and Virtual Lookaside Facility (VLF) on page 543.
For more information on VLF, see z/OS MVS Planning: Operations, z/OS MVS
Initialization and Tuning Guide, and z/OS MVS Initialization and Tuning Reference.
Superior group
Owner
Connected users
(Group authority)
SYS1
IBMUSER
IBMUSER (JOIN)
VSAMDSET
SYS1
IBMUSER
IBMUSER (JOIN)
SYSCTLG
SYS1
IBMUSER
IBMUSER (JOIN)
Attributes
Connected groups
(Group authority)
SPECIAL and
OPERATIONS
SYSCTLG (JOIN)
VSAMDSET (JOIN)
Default group
(Group authority)
IBMUSER
SYS1 (JOIN)
335
Operating Considerations
And there are four security labels:
Name
Owner
UACC
SYSHIGH
IBMUSER
NONE
SYSLOW
IBMUSER
NONE
SYSNONE
IBMUSER
NONE
SYSMULTI
IBMUSER
NONE
There is a set of supplied certificate authority (CA) certificates. They are not used to
authenticate CAs until you decide to use them. For more information, see Supplied
digital certificates on page 588.
Restrictions: The basic set of profiles described in this section is supplied with
RACF. These profiles can not be defined by your installation and should not be
deleted. They must exist at initialization time or RACF initialization will automatically
add them.
After entering IBMUSERs old password (SYS1) and defining a new password, list
the system-wide RACF options that are in effect:
SETROPTS LIST
Read through this list to familiarize yourself with the options that are in effect. For
an explanation of what some of the options are and what they mean, see Using
the SETROPTS Command on page 108.
Note: Not all options are displayed at this point, because IBMUSER does not have
the AUDITOR attribute. If you want to see the status of these options, grant
IBMUSER the AUDITOR attribute, log off, and log on again. To see all of the
options, issue SETROPTS LIST again.
For a complete listing of all of the options that are available, see z/OS Security
Server RACF Command Language Reference.
336
Operating Considerations
Attention
The option for the TERMINAL resource class should be specified as READ.
Do not change it to NONE unless you have defined your terminals to RACF
and authorized the appropriate users and groups to access them. If you
specify TERMINAL(NONE) without first defining your terminals to RACF, you
cannot access your terminals and, consequently, you will be locked out of your
system.
Connect RACFADM to them and make RACFADM the owner of the groups:
337
Operating Considerations
CONNECT RACFADM GROUP(SYS1) AUTH(JOIN)
CONNECT RACFADM GROUP(SYSCTLG) AUTH(JOIN)
CONNECT RACFADM GROUP(VSAMDSET) AUTH(JOIN)
ALTGROUP SYS1 OWNER(RACFADM)
ALTGROUP SYSCTLG OWNER(RACFADM)
ALTGROUP VSAMDSET OWNER(RACFADM)
Then, revoke the IBMUSER user ID so that another user cannot use it:
ALTUSER IBMUSER REVOKE
Note: For more information, see Summary of Steps for Defining Users on page
89.
338
Operating Considerations
For groups GROUP1, GROUP2, and GROUP3, define a group-auditor. Connect the
user to GROUP1 and give the user the group-AUDITOR attribute. Because
GROUP2 and GROUP3 are owned by GROUP1, the user has auditor authority
over the resources and users belonging to those groups, as well as to GROUP1.
The user does not have auditor authority in any other group.
ADDUSER D01GPB DFLTGRP(GROUP1) DATA(AUDITOR G1 G2 G3)
CONNECT D01GPB GROUP(GROUP1) AUDITOR
The administrator for the data management group, the data manager, is able to
define DASD volumes to RACF in order to perform dump, restore, and data cleanup
operations.
ADDUSER DMGJFS DFLTGRP(DATAMGT) AUTH(JOIN) CLAUTH(USER DASDVOL)
DATA(DATA MGT ADM)
Because of his or her duties, the data manager is connected to SYS1, allowing the
manager to access data sets with SYS1 in their access list and to define SYS1 data
set profiles to RACF. The data manager has the group-SPECIAL attribute in group
SYS1.
CONNECT DMGJFS GROUP(SYS1) AUTH(CREATE) UACC(READ) SPECIAL
Group
Superior Group
Owner
SYS1
RACFADM
IBMUSER (JOIN)
RACFADM (JOIN)
RACFAD2 (JOIN)
DMGJFS (CREATE)
VSAMDSET
SYS1
RACFADM
IBMUSER (JOIN)
RACFADM (JOIN)
SYSCTLG
SYS1
RACFADM
IBMUSER (JOIN)
RACFADM (JOIN)
GROUP1
SYS1
RACFADM
D01RHG (JOIN)
D01GPB (USE)
GROUP2
SYS1
GROUP1
D02JMP (CREATE)
GROUP3
SYS1
GROUP1
D03ABL (CREATE)
DATAMGT
SYS1
RACFADM
DMGJFS (JOIN)
Attributes
Connected Groups
(Group Authority)
IBMUSER
SYS1 (JOIN)
SPECIAL,
OPERATIONS,
REVOKE
SYSCTLG (JOIN),
VSAMDSET (JOIN)
RACFADM
SYS1 (JOIN)
SPECIAL, AUDITOR,
OPERATIONS
SYSCTLG (JOIN),
VSAMDSET (JOIN)
RACFAD2
SYS1 (JOIN)
SPECIAL,
OPERATIONS
DMGJFS
DATAMGT (JOIN),
SYS1(CREATE)
CLAUTH(USER
DASDVOL), SPECIAL
SYS1(CREATE)
339
Operating Considerations
User
D01RHG
GROUP1 (JOIN)
CLAUTH(USER),
group-SPECIAL
D02JMP
GROUP2 (USE)
group-SPECIAL
D03ABL
GROUP3 (CREATE)
group-SPECIAL
D01GPB
GROUP1 (CREATE)
group-AUDITOR
D03DIK
GROUP3 (CREATE)
AUDCCC
SYS1 (USE)
Attributes
Connected Groups
(Group Authority)
AUDITOR
340
Operating Considerations
v Encrypting RACF user passwords (see Specifying the Encryption Method for
User Passwords on page 142)
v Using started procedures (see Using Started Procedures on page 143)
System Report
Group Tree Report
Program Properties
Table Report
RACF Authorized Caller
Table Report
RACF Class Descriptor
Table Report
RACF Exits Report
RACF Global Access
Checking Table Report
RACF Started Procedures
Table Report
RACF User Attribute Report
These reports can help you (1) check the initial steps you took to establish system
security, and (2) make additional security checks periodically.
A short description of each report follows. See z/OS Security Server RACF Auditors
Guide for more information on these reports and how to invoke the data security
monitor.
The System Report
The system report contains information such as the identification and model
of the processor complex, and the name, version, and release of the
operating system. This report also specifies the RACF version and release
number and whether RACF is active. If RACF is inactive, DSMON prints a
message that tells you whether RACF was not activated at IPL or was
deactivated by the RVARY command.
Chapter 10. Operating Considerations
341
Operating Considerations
The Group Tree Report
This report lists, for each requested group, all of its subgroups, all of the
subgroups subgroups, and so on, as well as the owner of each group listed
in the report, if the owner is not the superior group.
You can use the group tree report to examine the overall RACF group
structure for your system. You can also determine the scope of the group
for group-related user attributes (group-SPECIAL, group-OPERATIONS,
and group-AUDITOR).
The Program Properties Table Report
This report lists all of the programs in the MVS program properties table
(PPT). The report also indicates, for each program, whether the program is
authorized to bypass password protection and whether it runs in a system
key.
You can use the program properties table report to verify that only those
programs that the installation has authorized to bypass password protection
are, in fact, able to do so. Such programs are normally communication and
database control programs, and other system control programs.
You can also verify that only those programs that the installation has
authorized are able to run in a system key.
The RACF Authorized Caller Table Report
This report lists the names of all of the programs in the RACF
authorized-caller table. The programs in this table are authorized to issue
the RACROUTE REQUEST=VERIFY macro to perform user verification, or
the RACROUTE REQUEST=LIST macro to load profiles into main storage.
You can use this report to verify that only those programs that are
supposed to be authorized to modify an ACEE (accessor environment
element) are able to issue the RACROUTE REQUEST=VERIFY. This
verification is a particularly important security requirement because the
ACEE contains a description of the current user. This description includes
the user ID, the current connect group, the user attributes, and the group
authorities. A program that is authorized to issue the RACROUTE
REQUEST=VERIFY could alter the ACEE to simulate any user.
You can also use this report to verify that only those programs that are
supposed to be authorized to access profiles are able to issue the
RACROUTE REQUEST=LIST. Because profiles contain complete
descriptions of the characteristics that are associated with RACF-defined
entities, you must carefully control access to them.
The RACF Class Descriptor Table Report
This report lists, for each general resource class in the class descriptor
table (CDT), the class name, the default UACC, whether the class is active,
whether auditing is being done, whether statistics are being kept, and
whether OPERATIONS attribute users have access.
You can use the class descriptor table report to determine which classes
(besides DATASET) are defined to RACF and active, and therefore can
contain resources that RACF protects.
The RACF Exits Report
This report lists the names of all of the installation-defined RACF exit
routines and specifies the size of each exit routine module.
You can use the RACF exits report to verify that the only active exit routines
are those that your installation has defined. The existence of any other exit
342
Operating Considerations
routines might indicate a system security exposure, because RACF exit
routines can be used to bypass RACF security checking. Similarly, if the
length of an exit routine module differs from the length of the module when
it was defined by your installation, the module might have unauthorized
modifications.
The RACF Global Access Checking Table Report
This report lists, for each resource class in the global access table, all of
the entry names and their associated resource access authorities.
Because global access checking allows anyone to access the resource at
the associated access authority, you should verify that each entry has an
appropriate level of access authority.
The RACF Started Procedures Table Reports
RACF generates two reports about the started procedures table
(ICHRIN03).
v If the STARTED class is active, the report uses the STARTED class
profiles and contains the TRACE attribute. The trace uses module
ICHDSM00.
v If the STARTED class is not active, the trace uses the installation
replaceable load module, ICHRIN03.
The reports list the procedure name, the user ID and group name to be
associated with the procedure, and whether the procedure is privileged or
trusted.
You can use the report to determine which started procedures are defined
to RACF, and which have the privileged attribute. If a started procedure is
privileged or trusted, it bypasses all REQUEST=AUTH processing (unless
the CSA or PRIVATE operand was specified on REQUEST=AUTH),
including checks for security classification of users and data.
The Selected User Attribute Report
The selected user attribute report:
v Lists all RACF users with the SPECIAL, OPERATIONS, AUDITOR, or
REVOKE attributes
v Specifies whether they possess these attributes on a system-wide (user)
or group level
v Indicates whether they have any user ID associations
You can use this report to verify that only those users who need to be
authorized to perform certain functions have been assigned the
corresponding attribute.
Selected User Attribute Summary Report
The selected user attribute summary report shows the number of
installation-defined users and totals for users with the SPECIAL,
OPERATIONS, AUDITOR, and REVOKE attributes, at both the system and
group level. You can use this report to verify that the number of users with
each of these attributes, on either a system or group level, is the number
that your installation wants. In particular, you should make sure that you
have assigned the SPECIAL attribute (on a system level) to at least one
user and the AUDITOR attribute (on a system level) to at least one user.
The Selected Data Sets Report
This report lists the names of selected system data sets and, for each data
set, specifies the criterion for selection, the serial number of the volume on
which it resides, whether the data set is RACF-indicated or
Chapter 10. Operating Considerations
343
Operating Considerations
RACF-protected, and the universal access authority (UACC). If a data set
meets more than one selection criterion, there is a separate entry in the
report for each criterion. The selected data sets include system data sets,
the MVS master catalog, user catalogs, the RACF primary and backup data
sets, and user-specified data sets.
You can use the selected data sets report to determine which of these data
sets are protected by RACF and which are not. You can also check whether
the UACC associated with each of the data sets is compatible with your
installations resource access control requirements.
344
Operating Considerations
Note: If the data set being created is adequately covered by a generic profile,
do not use the SECMODEL parameter because this forces the creation
of a discrete profile.
v On the OUTPUT statement:
DPAGELBL parameter: With PSF for OS/390 is installed, use the DPAGELBL
parameter to indicate whether the system should print information related to
the jobs security label on each page of printed output.
SYSAREA parameter: use the SYSAREA parameter to indicate whether the
system should reserve an area on each page of printed output for information
related to the security label.
Restarting Jobs
When a job automatically restarts and returns to a previous checkpoint, RACF
repeats user verification and access authorization checking. If the job changed the
password on the JOB statement, RACF uses the new password for user
verification. But meanwhile, if the PASSWORD command or another job changes
the password, RACF detects an invalid password and fails the job.
When you submit a job for a deferred restart, you can specify your current
password on the JOB statement, or use JES user ID propagation and avoid the
problem of exposing your password on the JOB statement.
For either an automatic or deferred restart, the users current access authority is
checked (the access authority at the time of the restart), and is used for all
resources the job tries to access.
345
Operating Considerations
creating profiles for the appropriate commands in the OPERCMDS class, and
requesting auditing in the OPERCMDS profiles. If the operator has the
OPERATIONS attribute, you may request additional logging by issuing the
SETROPTS OPERAUDIT command. This causes logging of all activity that was
allowed because the user had the OPERATIONS attribute.
Also, the JES3 dump core utility allows users to view stored passwords. You should
restrict access to the JES3 dump core utility.
Note: JES3 allows system programmers to specify a password for the JES3 dump
core utility (not a RACF password). This password is stored in clear text in a
JES3 module. You should protect this module from unauthorized use.
RACF commands that contain passwords should not be issued on the operators
console because these passwords would then show up in SYSLOG. Also, make
sure you protect the GTF trace data set if you have SET TRACE active because
passwords might appear in the trace records that are produced.
You should restrict access to SVC dumps and standalone dumps, which might
contain password information.
If users need to submit jobs for other users, activate the SURROGAT class and
define profiles so that users can allow other users to submit jobs for them. In this
way, a user does not need to know anyone elses password. For more information,
see Surrogate Job Submission on page 481.
If JES support for user ID propagation is installed, batch jobs submitted by TSO
users do not need any RACF identification information (user ID, group name, and
password) in their JOB statements, as long as the following assumptions are true:
v The TSO user is RACF-defined.
v The job is submitted under the users own user ID.
v If the job is submitted on a processor that is part of an NJE (networking job
entry) network, the job runs on the home (users) node.
Note: If a user specifies //DD DATA and neglects to delimit the data (with /* or DLM
specification) when submitting a batch job through a card reader or RJE
work station, subsequent jobs are read as part of the users data until a
delimiter is read. You should be aware that if this situation occurs, RACF
user IDs, group names, passwords, and resource names from the following
jobs JCL become available to the user who failed to supply a delimiter. The
installation should use SMF or JES installation-written exit routines to restrict
the use of the //DD DATA statement to reduce this security exposure.
346
Operating Considerations
1. By presenting digital certificates that are not registered to RACF, who are
assigned shared user IDs based on certificate name filtering.
2. By accessing application servers that allow users to enter the system without
identifying themselves, who are assigned shared user IDs such as PUBLIC or
ANONYMOS.
Note: For more information, see Defining Restricted User IDs on page 88.
v RACF-defined users who have access authority of NONE can access the
resource with the specified level of universal access by submitting a batch job
without specifying the USER operand on the JCL JOB statement.
The entry ID(*) can be added to the access list to ensure that only RACF-defined
users (who do not have the RESTRICTED attribute) can access a protected
resource. For more information, see Using ID(*) on the Access List on page 9.
These accesses to RACF-protected resources can be prevented using the
SETROPTS BATCHALLRACF and XBMALLRACF options, or by the
REQUEST=AUTH preprocessing exit routine that fails REQUEST=AUTH processing
for users who have entered the system using the RACF default user ID.
If JES user ID propagation is not in effect, this REQUEST=AUTH processing
requires RACF-defined users to identify themselves (using the USER operand) on
batch jobs that access RACF-protected resources and prevents non-RACF users
from accessing RACF-protected resources.
Failsoft Processing
During failsoft processing (when the RACF database is not active), RACF uses
global access checking tables, REQUEST=LIST in-storage profiles, or a supplied
profile, if any of these are present, to process resource access checking requests.
Note: RACF does not perform generic profile checking, because a generic profile
might allow access to a resource that an existing discrete profile already
protects. If that profile had been retrieved, RACF would not have allowed
access to the resource.
Chapter 10. Operating Considerations
347
Operating Considerations
RACF calls REQUEST=AUTH and REQUEST=DEFINE preprocessing installation
exits during failsoft processing. (RACF does not call postprocessing exits.) This
action frees the installation to define its own version of failsoft processing. By
defining its own version of failsoft processing, an installation can allow or deny
access to a resource or permit normal failsoft processing to continue.
During failsoft processing, the logging that your installation has specified continues
as when RACF is active. In addition, RACF logs all accesses that the operator
allows or denies.
If no global access checking tables are present, no REQUEST=LIST in-storage
profiles are present, and no profile has been supplied, the preprocessing installation
exits are called first. Then failsoft processing continues as follows:
1. RACROUTE REQUEST=AUTH:
v For started procedures, RACF issues an information message to the operator
to describe the name and access mode of the resource. If the started
procedure does not have the privileged attribute through the RACF started
procedures table, RACF issues an operator intervention message to request
permission to allow access to the resource.
v For TSO sessions, RACF issues the information message and, if the
high-level qualifier of the data set name matches the users TSO user ID,
RACF allows access to the resource. If the high-level qualifier does not
match the users TSO user ID, RACF also issues an operator intervention
message to request permission to allow access to the resource. If the system
operator gives a negative response to a request for access, the request is
denied, with, in some cases, an ABEND.
v For all other environments, RACF issues the information message, followed
by the operator intervention message. If the system operator gives a negative
response to a request for access, the request is denied.
2. REQUEST=DEFINE:
RACF issues an operator message to indicate that REQUEST=DEFINE has
been issued and that the request is allowed. If the user had the ADSP attribute,
or if PROTECT=YES was specified on the JCL for the data set, the resource
may be RACF-indicated without a RACF discrete profile being created.
You can use the operator message or SMF log records at a later time to
determine whether the specified resource is in the RACF database. If it is not,
use the ADDSD or RDEFINE command to create a profile for the resource.
348
Operating Considerations
349
Operating Considerations
350
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
ICETOOL
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
352
352
352
353
353
353
354
355
355
355
355
356
356
356
357
362
362
368
369
372
374
376
376
376
377
378
378
378
379
381
381
382
383
383
383
383
384
384
384
384
This chapter describes tasks related to working with and maintaining the RACF
database using the database unload utility (IRRDBU00) and the remove ID utility
(IRRRID00).
For information about using the SMF data unload utility (IRRADU00), see z/OS
Security Server RACF Auditors Guide.
The RACF database holds an installations security data. This data is used to
control access to resources, verify users, and generate a variety of reports dealing
with system usage and integrity. Standard reports are provided and used to
determine whether the installations security objectives are being met.
Copyright IBM Corp. 1994, 2005
351
Database Utilities
Diagnosis
You can use the IRRDBU00 utility for some diagnosis functions. Because this utility
reads every profile in the RACF database, it also validates such profile data as
lengths and count fields that are needed to read each profile successfully.
This validation can be used to help identify a profile in error. If IRRDBU00
encounters a profile in error, it may issue message IRR67092. This message
contains an ICHEINTY return and reason code and also the entry name of the
profile being processed.
If a profile abends or ends in another fashion without receiving this message, you
may also be able to determine the profile in error. To do this, look in the output data
set (OUTDD) and find the last profile (at the bottom), that was unloaded. It is likely
that this profile is okay. However, the next profile in the database (in the same
class) could possibly be the profile in error, if indeed a bad profile is causing the
utility to end.
The next profile in the database can be found by examining the output of an
IRRUT200 utility run (specifically, INDEX FORMAT), or by using the block update
command (BLKUPD) to examine an online database.
For more information on diagnosing and correcting the RACF database, see z/OS
Security Server RACF System Programmers Guide and z/OS Security Server
RACF Diagnosis Guide.
Performance Considerations
IRRDBU00 processes either a copy of the RACF database, a backup RACF
database, or the active RACF database. You must have UPDATE authority to the
database. It is recommended that you run the utility against a recent copy of your
RACF database using the NOLOCKINPUT option.
While processing, IRRDBU00 serializes on one profile at a time (this is also the
case in IRRUT100 processing). When IRRDBU00 has finished copying a profile, it
releases the serialization. Consider this possible impact to performance if you select
your active RACF database as input. Running IRRDBU00 against a copy of the
database causes the least impact to system performance.
Note: If your system is enabled for sysplex communication RACF serializes
database accesses by using global resource serialization instead of
hardware RESERVEs when the system is operating in data sharing mode or
in read-only mode and unloading an active database.
352
Database Utilities
An installation can choose to unload its database with one utility invocation, or if it
has split its database, it can unload individual pieces of its database with separate
utility invocations. These utility invocations can execute concurrently.
Operational Considerations
The output records of IRRDBU00 are determined by the structure of the RACF
database. The utility unloads all of the profiles in the database. It does not unload
all of the fields in each profile and treats some fields in a special way. Fields that
contain customer data are unloaded exactly as they appear in the database.
Encrypted and reserved fields are not unloaded. Although the maximum length
unloaded for most fields is 255 bytes, all 1023 bytes of data for the HOME and
PROGRAM fields in the users OMVS segment and the HOME, PROGRAM, and
FSROOT fields in the users OVM segment are unloaded.
See z/OS Security Server RACF Macros and Interfaces for the conversion rules of
the database unload utility.
The database unload utility uses both the supplied class descriptor table
(ICHRRCDX) and the installation-defined class descriptor table (ICHRRCDE) as it
unloads profiles. If your database is imported from another system, you may also
have to import ICHRRCDX and ICHRRCDE. Classes are unloaded only if there is
an entry for them in ICHRRCDE or ICHRRCDX on the system running the utility,
and the range table on that system correctly identifies the data set where the
profiles are located. If the current range table does not match the database being
unloaded, you must run the IRRDBU00 utility multiple times, specifying only one
data set of the database as INDD1 for each run.
To correlate the RACF profiles with the data unloaded by the utility, see z/OS
Security Server RACF Macros and Interfaces.
EXEC
353
Database Utilities
statements are in a procedure library, the procedure name. You
must request IRRDBU00 processing options by specifying a
parameter in the PARM field.
SYSPRINT DD
Defines a sequential message data set.
INDDn DD
Defines the RACF input data set that makes up the RACF
database. The input data sets must have all of the characteristics of
a RACF database; that is, they must be contiguous single-extent
data sets, non-VIO, with a logical record length (LRECL) of 4096
and a record format (RECFM) of fixed (F).
The n in INDDn refers to the location of the data set name in the
data set name table (ICHRDSNT). If you have not split your RACF
database, you only have to specify INDD1. If you have split your
RACF database, you can unload each part with a separate utility
invocation and specify INDD1 for the input data set, or you can
unload all of the parts with one utility invocation.
Note: When unloading all parts, specify INDD statements in the
same order as they appear in the RACF data set name
table. For example:
INDD1
INDD2
6. The LRECL for the output data set must be at least as large as the largest record created by IRRDBU00. IBM recommends
choosing a larger value so that if the size of the output records increases when new fields are added, you do not have to change
your data set allocations. IBM recommends a value of 4096.
354
Database Utilities
The ddname number must correspond to the position of the input data set name in
the data set name table (ICHRDSNT). That is, you must assign INDD1 to the first
data set, INDD2 to the second, and so on.
|
|
Restriction: The input data sets must reside on DASD. Tape input data sets are
not supported.
IRRDBU00 Example
In this example, the database unload utility processes a database that has been
split into three parts. The job control language (JCL) statements that invoke the
utility are:
//USER01
//UNLOAD
//SYSPRINT
//INDD1
//INDD2
//INDD3
//OUTDD
JOB
EXEC
DD
DD
DD
DD
DD
Job card...
PGM=IRRDBU00,PARM=NOLOCKINPUT
SYSOUT=*
DISP=SHR,DSN=SYS1.RACFDB.PART1.COPY
DISP=SHR,DSN=SYS1.RACFDB.PART2.COPY
DISP=SHR,DSN=SYS1.RACFDB.PART3.COPY
DISP=SHR,DSN=SYS1.RACFDB.FLATFILE
Note: You must specify a parameter in the PARM field on the EXEC statement of
the step executing IRRDBU00.
Allowable Parameters
When you run the database unload utility, one of the following parameters must be
specified: NOLOCKINPUT, LOCKINPUT, or UNLOCKINPUT. You can abbreviate the
parameter to N, L, or U, respectively. For the least impact to system performance,
use a copy of your RACF database as input and specify the NOLOCKINPUT
parameter.
When your system is RACF is enabled for sysplex communication and RACF is
running in read-only mode, the only parameter allowed for IRRDBU00 is
NOLOCKINPUT.
Using the backup copy of the RACF database is allowed. Using an active copy of
the RACF database can affect system performance and it is not recommended.
Attention
If you use NOLOCKINPUT on the active database, your unloaded database
might contain inconsistencies.
355
Database Utilities
Specifying LOCKINPUT means updates are no longer allowed to an input data set
until the utility ends. If the RACF database is locked and users logging on attempt
to change their user profiles, the logon may not be allowed, depending on the
change. Users may be unable to:
v Change the password
v Specify a correct password after specifying an incorrect one
v Successfully complete the first logon of the day
For the logon to be allowed, you must apply APAR OY56802 to TSO/E 2.3, TSO/E
2.3.1, or TSO/E 2.4.
If you run IRRDBU00 and use LOCKINPUT, any activity that tries to update the
RACF database (such as users logging on and changing passwords or batch jobs
allocating new data sets requiring the creation of RACF profiles) fails with either an
ABEND483 RC50 or ABEND485 RC50.
When using LOCKINPUT against an active database, do not schedule maintenance
that runs past midnight. If RACF is not running in data sharing mode and the RACF
database remains locked past midnight, new jobs cannot be submitted and users
cannot log on unless you disable the gathering of logon statistics by issuing a
SETROPTS NOINITSTATS command. All steps that require a locked database must
be performed on the same calendar day. This is because RACF updates both
primary and backup logon statistics each day.
The database unload utility unlocks the RACF database after processing with
LOCKINPUT specified if the database was unlocked when the utility started. The
unload utility output is for report generation and does not replace the input
database, which is your primary, active, RACF database.
This is different from the IRRUT400 utility, which keeps the input database locked
and creates a new output database. This is done to maintain integrity between the
input database and the output database.
Sort/Merge Programs
The database unload utility processes all of the profiles in the input database. If you
want a subset of the output records, you can use a standard utility such as
DFSORT to select them. For example, the following DFSORT control statements
select the Group Basic Data records (type 0100) and User Basic Data records (type
0200). All other record types are excluded.
356
Database Utilities
SORT
FIELDS=(5,4,CH,A,10,20,CH,A)
INCLUDE COND=(5,4,CH,EQ,C0100,OR,5,4,CH,EQ,C0200)
OPTION VLSHRT
See z/OS Security Server RACF Macros and Interfaces for the conversion rules of
the database unload utility.
The Record Selection Criteria: The name of the member containing the record
selection criteria is the report member name followed by CNTL (e.g. UGRPCNTL).
Record selection is performed using DFSORT control statements, such as SORT
and INCLUDE. The SORT command is used to select and sort records. The
INCLUDE command is used to specify conditions required for records to appear in
the report.
Chapter 11. Working With The RACF Database
357
Database Utilities
An example of a record selection member is shown in Figure 12. This is the report
selection member UGRPCNTL, which contains the selection criteria for the Users
With Extraordinary Group Authorities report. In this example, we are including only
User Connect Data records (record type 0205) when the user has the
group-SPECIAL, group-OPERATIONS or group-AUDITOR attribute.
SORT
FIELDS=(10,08,CH,A)
INCLUDE COND=(5,4,CH,EQ,C0205,AND,
(88,3,CH,EQ,CYES,OR,
93,3,CH,EQ,CYES,OR,
113,3,CH,EQ,CYES))
OPTION VLSHRT
Figure 12. Member UGRPCNTL: Users With Extraordinary Group Authorities Report record
selection statements
See z/OS Security Server RACF Macros and Interfaces for record format
information for the output records of the IRRADU00 and IRRDBU00 utilities. See
z/OS DFSORT Application Programming Guide for the complete details of the
DFSORT statements.
ADUDATA
REPORT
You dont need to specify each of these variables every time you execute the
RACFICE procedure. For example, if you specify the default IRRDBU00 and
358
Database Utilities
IRRADU00 data sets in the RACFICE procedure, you create a report (shown in
Figure 13) that lists all user IDs with extraordinary RACF group authorities with the
following JCL:
//jobname JOB Job card...
//stepname EXEC RACFICE,REPORT=UGRP
If the default IRRDBU00 or IRRADU00 data sets are not correct, you can override
them. For example, if the IRRDBU00 output is in the data set
USER01.TEST.IRRDBU00 and the IRRADU00 output is in the data set
USER01.TEST.IRRADU00, you should enter:
//jobname
//
//
//stepname
1- 1 User ID
-------LCLAUDIT
LCLOPER
LCLSPEC
UCAUDR$Y
UCOPER$Y
UCSPEC$Y
JOB
SET
SET
EXEC
Job card...
ADUDATA=USER01.TEST.IRRADU00
DBUDATA=USER01.TEST.IRRDBU00
RACFICE,REPORT=UGRP
Group Special
------------NO
NO
YES
NO
NO
YES
Group Operations
---------------NO
YES
NO
NO
YES
NO
99/04/13
Group Auditor
------------YES
NO
NO
YES
NO
NO
Description
ALDS
Data set profiles which have IDs on the standard access list with
ALTER authority. Value: Identifies users who can alter the access
list of the profile.
ASOC
BGGR
CCON
CGEN
CPRO
Count of user, group, and data set profiles. Value: Identifies basic
characteristics of the RACF database.
CONN
User IDs with group authorities above USE. Value: Identifies users
with additional privileges.
CUG$
359
Database Utilities
creation dates. Value: Identifies universal groups that may have
members who do not appear in the groups member list.
360
GIDS
z/OS UNIX GIDs that are used more than once. Value: Identifies
z/OS UNIX groups that are sharing authority characteristics.
GRPM
IDSC
Data set conditional access list entries with an ID(*) entry of other
than NONE. Value: Identifies data set profiles that allow any
RACF-authenticated user to access data.
IDSS
Data set standard access list entries with an ID(*) entry of other
than NONE. Value: Identifies data set profiles that allow any
RACF-authenticated user to access data.
IGRC
IGRS
NWPI
OMVS
PCAM
SUPU
UADS
Data set profiles with UACCs other than NONE. Value: Identifies
data set profiles that allow any user to access data.
UAGR
UGLB
UGRP
UIDS
z/OS UNIX UIDs that are used more than once. Value: Identifies
z/OS UNIX users who are sharing authority characteristics.
URVK
User IDs which are currently revoked. Value: Identifies users who
have had a revocation performed.
WNDS
Data set profiles that are in WARNING mode. Value: Identifies data
set profiles that are processing in WARNING mode.
Database Utilities
WNGR
Description
$CFQG
$CHLQ
A count of the number of generic profiles that are defined for each
high-level qualifier (HLQ). Value: Identifies a potential performance
bottleneck.
$ULAST90
Identifies the user profiles which have been created within the past
90 days. Value: Shows recent administrative activity.
Note that these reports ($CFQC, $CHLQ, and $ULAST90) are standalone reports
and are not run using the RACFICE PROC.
Creating Customized Reports: You can create your own reports using the
RACFICE procedure by following these steps:
1. Identify the records that you want for the report.
a. Define the DFSORT statements for the record selection criteria.
b. Place them in the RACFICE data set with a unique member name
consisting of a 14 character report identifier followed by CNTL.
If there is an existing report that has similar selection criteria, use it as a model.
For example, if you want to report all the access records created when users
PATTY, MAXINE, and LAVERNE accessed resources, you need to create
DFSORT selection statements that look like Figure 14 and store them in your
RACFICE report data set as the PMLCNTL record selection criteria.
INCLUDE COND=(63,8,CH,EQ,CPATTY,OR,
63,8,CH,EQ,CMAXINE,OR,
63,8,CH,EQ,CLAVERNE)
OPTION VLSHRT
Figure 14. Customized Record Selection Criteria
Note the similarity of this record selection criteria to the Users With
Extraordinary Group Authorities Report record selection criteria shown in
Figure 12 on page 358.
See z/OS DFSORT Application Programming Guide for the complete details of
the DFSORT statements.
2. Identify the report format you want to use.
a. Define the ICETOOL statements for the report format.
b. Place them in the RACFICE data set with a 14 character report identifier
that you chose.
If there is an existing report that has similar report format, use it as a model. For
example, if you wanted your report to contain the user ID, job name, date, time,
and status of the access you could use the ICETOOL report statements shown
361
Database Utilities
in Figure 15, and store them in your RACFICE report data set as the PML report
format.
COPY
FROM(ADUDATA) TO(TEMP0001) USING(RACF)
DISPLAY FROM(TEMP0001) LIST(PRINT) PAGE TITLE(Patty, Maxine, and Lavernes Accesses) DATE(YMD/) TIME(12:) BLANK ON(63,8,CH) HEADER(User ID) ON(5,8,CH)
HEADER(Event) ON(12,8,CH) HEADER(Qualifier) ON(23,8,CH) HEADER(Time) ON(32,10,CH) HEADER(Date) ON(184,8,CH) HEADER(Job Name)
Figure 15. Customized Report Format
Note the similarity of this report format to the Users With Extraordinary Group
Authorities report format shown in Figure 11 on page 357.
For complete details on the ICETOOL statements, see z/OS DFSORT
Application Programming Guide.
3. Update the report JCL to invoke the RACFICE procedure with the 14 character
report identifier you chose, as shown in Figure 16.
//jobname JOB Job card...
//stepname EXEC RACFICE,REPORT=PML
Figure 16. Customized Report JCL
Relational Databases
Much of the function of the database unload utility is not realized until the data it
creates is loaded into a relational database management system (DBMS) such as
DB2.
362
Database Utilities
Listing of z/OS UNIX user identifiers (UIDs) with associated user ID and
programmer name
Listing of z/OS UNIX group identifiers (GIDs) with associated group name
Listing of UIDs including only those users who are connected to a group that
has a GID (for each UID, the user ID and programmer name are listed)
For more information on DB2, see:
v DB2 Administration Guide
v DB2 SQL Reference
Steps for Using IRRDBU00 Output with DB2: To create and manage a DB2
database that contains the output from the database unload utility, you must:
1. Create one or more DB2 databases.
2. Create one or more DB2 table spaces.
3. Create DB2 tables.
4. Create the DB2 indexes.
5. Load data into the tables.
6. Reorganize the data in the tables (optional).
7. Create performance statistics (optional).
8. Delete table data (optional).
The first three steps are initial setup, and you can choose to run them once. When
you get new data to import into the DB2 database, you delete your current table
data. You then reload and reorganize your tables and create the performance
statistics.
The following sections show examples of the DB2 utility input for these functions.
Creating a DB2 Database for Unloaded RACF Data: A DB2 database names a
collection of table spaces. The following SQL statement creates a DB2 database for
the output of the database unload utility:
CREATE DATABASE databasename
363
Database Utilities
The user must supply the name of the table space (tablespacename) and the
storage group (storagegroup). The sample shows a value of 64 for SEGSIZE, 2000
for PRIQTY, and 500 for SECQTY.
The samples in RACDBUTB put all of the tables into one table space. The sample
also suggests using a segment size because segmented table spaces improve
performance. Users may want to define their own table spaces rather than use
table spaces that are defined by the storage group.
Installations have a number of other options, such as the number of table spaces to
use, the type of spaces, and the security for the data. They may want to keep the
number of tables per table space fairly small for better performance and may want
to consider putting the larger tables into separate table spaces.
Creating the DB2 Tables: After the database and the table space are created,
SQL statements that define the tables are executed. Figure 18 contains an example
of the SQL statements that are required to create a table for the Group Basic Data
record of the database unload utility.
Member RACDBUTB in SYS1.SAMPLIB contains examples that create separate
tables for each record type that is produced by the database unload utility. The user
must supply the user ID (userid).
CREATE TABLE userid.GROUP_BD (
GPBD_NAME
CHAR(8)
NOT
GPBD_SUPGRP_ID
CHAR(8),
GPBD_CREATE_DATE
DATE,
GPBD_OWNER_ID
CHAR(8)
NOT
GPBD_UACC
CHAR(8)
NOT
GPBD_NOTERMUACC
CHAR(1)
NOT
GPBD_INSTALL_DATA CHAR(254),
GPBD_MODEL
CHAR(44)
)
IN databasename.tablespacename
;
NULL,
NULL,
NULL,
NULL,
Creating the DB2 Indexes: DB2 performance improves with the use of indexes.
Member RACDBUTB in SYS1.SAMPLIB creates an index for every primary key and
every foreign key identified in the record types. Figure 19 on page 365 contains
sample statements to create the indexes for the Group Basic Data record.
Notes:
1. Users on DB2 Version 2 Release 2 may wish to code CLOSE NO if the tables
are accessed often.
2. Users on DB2 Version 2 Release 3 may wish to code CLOSE YES.
364
Database Utilities
Loading the DB2 Tables: Figure 20 shows the statements that are required to
load the Group Basic Data record. The RACDBULD member of SYS1.SAMPLIB
contains statements that load all of the record types produced by the database
unload utility.
LOAD DATA
INDDN tablespacename
RESUME YES
LOG
NO
INTO
TABLE userid.GROUP_BD
WHEN(1:4)=0100 (
GPBD_NAME
POSITION(006:013)
GPBD_SUPGRP_ID
POSITION(015:022)
GPBD_CREATE_DATE
POSITION(024:033)
GPBD_OWNER_ID
POSITION(035:042)
GPBD_UACC
POSITION(044:051)
GPBD_NOTERMUACC
POSITION(053:053)
GPBD_INSTALL_DATA
POSITION(058:311)
GPBD_MODEL
POSITION(314:357)
)
CHAR(8),
CHAR(8)
DATE EXTERNAL(10),
CHAR(8),
CHAR(8),
CHAR(1),
CHAR(254),
CHAR(44)
365
Database Utilities
Note: You can choose not to load some of the tables.
Reorganizing the Unloaded RACF Data in the DB2 Database: Queries are
processed faster if they are performed against an organized database. The DB2
utility statement required to reorganize the database is:
REORG TABLESPACE databasename.tablespacename
Creating Optimization Statistics for the DB2 Database: Queries are processed
faster if they are performed against an organized database for which DB2 has
collected performance statistics. The DB2 utility statement required to create these
statistics is:
RUNSTATS TABLESPACE databasename.tablespacename
Deleting Data from the DB2 Database: Before you reload the database with new
data, you should delete the old data. This can be done in several ways:
1. Use the DROP TABLE statement for each table you want to delete.
2. Use the DROP TABLESPACE statement for each tablespace.
3. Delete all of the records in each table.
Figure 21 shows the sample SQL statements that delete the group record data
from the tables.
DELETE
DELETE
DELETE
DELETE
DELETE
FROM
FROM
FROM
FROM
FROM
userid.GROUP_BD
userid.GROUP_DFP_DATA
userid.GROUP_INSTALL_DATA
userid.GROUP_SUBGROUPS
userid.GROUP_MEMBERS
;
;
;
;
;
Figure 21. DB2 Utility Statements Required to Delete the Group Records
366
Record
type
Record name
0100
GROUP_BD
0101
Group Subgroups
GROUP_SUBGROUPS
0102
Group Members
GROUP_MEMBERS
0103
GROUP_INSTALL_DATA
0110
GROUP_DFP_DATA
0120
GROUP_OMVS_DATA
0130
GROUP_OVM_DATA
0140
Reserved
0141
GROUP_TME_ROLE
0200
USER_BD
0201
User Categories
USER_CATEGORIES
0202
User Classes
USER_CLASSES
Database Utilities
Table 29. Correlation of Record Type, Record Name, and DB2 Table Name (continued)
Record
type
Record name
0203
USER_GROUPS
0204
USER_INSTALL_DATA
0205
USER_CONNECT_DATA
0206
USER_RRSF_DATA
0207
USER_CERT_DATA
0208
USER_NMAP_DATA
0210
USER_DFP_DATA
0220
USER_TSO_DATA
0230
USER_CICS_DATA
0231
USER_CICS_OPCLASS
0240
USER_LANGUAGE_DATA
0250
USER_OPERPARM_DATA
0251
USER_OPERPARM_SCOP
0260
USER_WORKATTR_DATA
0270
USER_OMVS_DATA
0280
USER_NETV_DATA
0281
USER_NETV_OPCLASS
0282
USER_NETV_DOMAINS
0290
USER_DCE_DATA
02B0
USER_LNOTES_DATA
02C0
USER_NDS_DATA
02D0
USER_KERB_DATA
02E0
USER_PROXY_DATA
02F0
USER_EIM_DATA
0400
DS_BD
0401
DS_CATEGORIES
0402
DS_COND_ACCESS
0403
DS_VOLUMES
0404
DS_ACCESS
0405
DS_INSTALL_DATA
0410
DS_DFP_DATA
0420
Reserved
0421
DS_TME_ROLE
0500
GENR_BD
0501
GENR_TAPE_VOLUMES
0502
GENR_CATEGORIES
0503
GENR_MEMBERS
0504
GENR_VOLUMES
0505
GENR_ACCESS
367
Database Utilities
Table 29. Correlation of Record Type, Record Name, and DB2 Table Name (continued)
Record
type
Record name
0506
GENR_INSTALL_DATA
0507
GENR_COND_ACCESS
0508
GENR_FILTER_DATA
0510
GENR_SESSION_DATA
0511
GENR_SESSION_ENT
0520
GENR_DLF_DATA
0521
GENR_DLF_JOBNAMES
0540
GENR_STDATA_DATA
0550
GENR_SVFMR_DATA
0560
GENR_GRCERT_DATA
0561
GENR_CERTR_DATA
0562
GENR_KEYR_DATA
0570
GENR_TME_DATA
0571
GENR_TME_CHILDREN
0572
GENR_TME_RESOURCE
0573
GENR_TME_GROUP
0574
GENR_TME_ROLE
0580
GENR_KERB_DATA
0590
GENR_PROXY_DATA
05A0
GENR_EIM_DATA
05B0
GENR_ALIAS_DATA
05C0
GENR_CDTINFO_DATA
resume_date
revoked_flag
At logon or job initiation, RACF compares the current date with the revoke_date and
resume_date. If the current date falls between them, the logon or job initiation is not
allowed or the connection with the group is not considered valid.
368
Database Utilities
LISTUSER and LISTGRP perform similar checks. For example, if the date on which
the LISTUSER command is issued falls between the revoke_date and the
resume_date, LISTUSER reports that the user is revoked. If the date on which the
LISTUSER command is issued does not fall between the revoke_date and the
resume_date, LISTUSER indicates that the user is not revoked even if the
revoke_date, resume_date, and revoked_flag are set in the RACF database.
Note: It is possible to have no data for the revoke_date and resume date.
Because IRRDBU00 does not have a reference date such as the current date, it
cannot interpret the revoke_date, resume_date, and revoked_flag information with a
reference date. IRRDBU00 unloads the values as they are specified in the RACF
database. This means that if you write a query that just checks the revoked_flag,
the results differ from LISTUSER and LISTGRP.
You can incorporate a date check into your queries that performs the same checks
as the LISTUSER and LISTGRP commands. Figure 22 shows a structured query
language (SQL) fragment to do this test for the user-revoked status. Note that
CURRENT DATE can be replaced with any valid DB2 date value.
SELECT
...
WHERE
(CURRENT DATE >= USBD_REVOKE_DATE
CURRENT DATE < USBD_RESUME_DATE)
OR
(CURRENT DATE < USBD_RESUME_DATE
USBD_REVOKE_DATE IS NULL)
OR
(CURRENT DATE >= USBD_REVOKE_DATE
USBD_RESUME_DATE IS NULL)
OR
(USBD_REVOKE_DATE IS NULL AND
USBD_RESUME_DATE IS NULL AND
USBD_REVOKE=Y)
...
AND
AND
AND
369
Database Utilities
Note: If you use the IRRUT100 utility to check the references to a user or group
name, IRRUT100 requires that the user or group name be known. The
sample query shown here does not have such a requirement. It finds all user
IDs or group names that are not valid.
When your RACF database is unloaded, the IRRDBU00 utility creates a Data Set
Access Record (record type 404) for each user ID or group name in the access list
of each data set.
When you load your IRRDBU00 output into DB2, an AUTH_IDS table is created
that contains the name of every valid user ID and group name.
SQL Query: The sample SQL query compares the ID in the data set access
record (DSACC_AUTH_ID) with the list of valid user and group names (in AUTH_IDS).
When a user ID is found that is not a valid user ID or group name, it is listed. The
query also lists the data set profile name, the authority that the user has, and the
access count.
------------------------------------------------------------------------- Description: Check all of the data set standard access lists and
--verify that each user ID is a valid user or
--group name
----- Tables Accessed: SQL
--"DS_ACCESS"
- A list of data set authorities
--"AUTH_IDS"
- A list of valid users/groups
--------------------------------------------------------------------------SELECT
DSACC_NAME
,DSACC_AUTH_ID
,DSACC_ACCESS
,DSACC_ACCESS_CNT
FROM
USER01.DS_ACCESS X
WHERE NOT EXISTS
( SELECT *
FROM
USER01.AUTH_IDS
WHERE
X.DSACC_AUTH_ID=AUTHID_NAME
)
AND
X.DSACC_AUTH_ID=*
ORDER BY 1
;
Figure 23. A Sample SQL Query
QMF Form: If the SQL query shown in Figure 23 is processed using QMF, the
data that is returned can be processed into a report. Figure 24 on page 371 shows
a report or forms definition. It creates the report shown in Figure 25 on page 371
entitled Data Set Profiles With Access Lists Containing User IDs or Group Names
That Are Not Valid.
370
Database Utilities
COLUMNS:
WIDTH
----44
8
9
11
EDIT
---C
C
C
L
SEQ
--1
2
3
4
HEADING
Report Output: Figure 25 shows the report that results from the SQL query shown
in Figure 23 on page 370 and the QMF form shown in Figure 24. Not all of the
resulting rows are shown.
DATA SET PROFILES WITH ACCESS LISTS CONTAINING USER IDS OR GROUP
NAMES THAT ARE NOT VALID
DSACC_NAME
DSACC_AUT DSACC_ACC DSACC_ACCES
-------------------------------- -------- --------- ----------TERRYS.WORK.CNTL
WILLIEC
READ
3
JEFFK
READ
2
JOHNL
READ
2
DIANEB
READ
4
SLICK
READ
5
DICKH
READ
2
CHUCKS
READ
1
ERICAK
READ
2
LIZS
READ
3
TONYL
READ
3
JOES
READ
6
GENEK.DOC.TEXT
SUSANK
JIMV
READ
READ
4
2
ELVIS.TEST.DATA
JOEC
READ
10
ACKAWAY.DESIGN.DATA
SUET
READ
HILDE.*
STINGS
TIMS
UPDATE
READ
6
1
04/31/2000 04:26 PM
PAGE 10
371
Database Utilities
372
Database Utilities
3
user IDs
2 groups
SYSIN
RACF
database unload
utility
Produce
RACF
commands
Sort
RACF
flat file
INDD
4
5
RACF
database
copy
Copy
Production
RACF
database
RACF Edit
Run
commands
OUTDD
SYSROUT
SYSPRINT
373
Database Utilities
5. As long as you have sufficient authority, you can now run these commands on
the production RACF database. See z/OS Security Server RACF Command
Language Reference for the specific authority requirements for RACF
commands.
Notes:
1. The remove ID utility deals with profiles in the RACF database. So, keep in
mind that the remove ID utility does not produce any commands to delete, or
rename the resources these profiles protect. You must delete, rename, or make
sure other profiles protect those resources that were once protected.
You can use DFSMSdss to rename data sets for IDs that you will be removing
from the RACF database.
2. If you delete profiles before you delete or rename the data sets themselves and
PROTECTALL is in effect, you might need some extra authority to remove these
data sets.
3. If you remove a user ID that had been cross-linked with a DCE principal,
contact the cells DCE administrator to determine whether the DCE principal
should be deleted from the cell.
4. If a residual ID is found in a NOTELINK or NDSLINK profile, an RDELETE
command will be produced to delete the profile. However, if the profile name
contains lower case characters, the RDELETE command cannot be executed
successfully. To delete the profile, you must issue an ADDUSER command for
the user ID specifying the corresponding LNOTES SNAME or NDS UNAME.
Then, a DELUSER can be issued to delete the user profile and the NOTELINK
or NDSLINK profile.
5. If a user ID that you have specified in the SYSIN file is found in the name of a
user profile containing an LNOTES, NDS, or DCE segment, IRRRID00 will
produce a DELUSER command to delete the user profile, but it will not produce
RDELETE commands to delete the corresponding NOTELINK, NDSLINK, or
DCEUUIDS general resource profiles. Deletion of the user ID through
DELUSER processing will cause the deletion of the corresponding general
resource profiles.
EXEC
SYSPRINT DD
Defines a sequential message data set for the messages produced
by IRRRID00.
374
Database Utilities
SYSOUT DD
SORTOUT DD
Defines a work data set that contains final list records. This data set
should be approximately the same size as the data set allocated to
INDD.
SYSUT1 DD
INDD DD
Defines the sequential input data set that contains the IRRDBU00
output being processed. This statement should refer to the same
data set as the OUTDD statement does in the IRRDBU00 job.
OUTDD DD
SYSIN DD
Defines the sequential input data set that contains the list of user
IDs or group names to search for. Each ID must be on its own
record. The ID can be up to 8 characters in length. It will be
truncated if longer than 8 characters.
Optionally, you can specify a replacement ID. The replacement ID
must be on the same input record, separated from the original ID
by at least 1 blank. The replacement ID can be up to 8 characters
in length. It will be truncated if longer than 8 characters.
IRRRID00 accepts both fixed length records (RECFM=F or
RECFM=FB) and variable length records (RECFM=V or
RECFM=VB) either with or without record numbers. To allow for
record numbers, IRRRID00 always ignores columns 18 if the
SYSIN records are variable length, and ignores the last eight
columns if the records are fixed length. In addition, IRRRID00
ignores blank records.
Notes:
1. The SYSIN DD is optional.
If SYSIN is specified, IRRRID00 does not validate the ID being searched for or
the replacement ID.
If it is not specified or if it points to a data set that does not contain a list of user
IDs or group names, a message is issued to SYSPRINT and a search is
performed for all references to IDs that no longer exist.
2. The percent (%) and asterisk (*) are processed as regular characters; no
generic processing will be performed. A period (.) should not be used but will be
accepted; a match of IDs will not occur in most cases.
3. Some of the DD names shown are for DFSORT only. If you are using an
equivalent product, refer to that products documentation for the DD names to
use.
375
Database Utilities
JOB
EXEC
DD
DD
DD
DD
DD
DD
DD
Job card...
PGM=IRRRID00,REGION=25M
SYSOUT=*
SYSOUT=*
UNIT=SYSALLDA,SPACE=(CYL,(5,5))
UNIT=SYSALLDA,SPACE=(CYL,(3,5))
DISP=OLD,DSN=USER01.IRRDBU00.DATA
DISP=OLD,DSN=USER01.IRRRID00.CLIST
DUMMY
JOB
EXEC
DD
DD
DD
DD
DD
DD
DD
Job card...
PGM=IRRRID00,REGION=25M
SYSOUT=*
SYSOUT=*
UNIT=SYSALLDA,SPACE=(CYL,(5,5))
UNIT=SYSALLDA,SPACE=(CYL,(3,5))
DISP=OLD,DSN=USER01.IRRDBU00.DATA
DISP=OLD,DSN=USER01.IRRRID00.CLIST
*
Specifying a Replacement ID
Figure 29 on page 377 shows the sample JCL used to run the RACF remove ID
utility and search for the IDs MARK, BRUCE, and JUNO, with a replacement ID for
MARK.
376
Database Utilities
//USER01
//CLEANUP
//SYSPRINT
//SYSOUT
//SORTOUT
//SYSUT1
//INDD
//OUTDD
//SYSIN
MARK ELVIS
BRUCE
JUNO
/*
JOB
EXEC
DD
DD
DD
DD
DD
DD
DD
Job card...
PGM=IRRRID00,REGION=25M
SYSOUT=*
SYSOUT=*
UNIT=SYSALLDA,SPACE=(CYL,(5,5))
UNIT=SYSALLDA,SPACE=(CYL,(3,5))
DISP=OLD,DSN=USER01.IRRDBU00.DATA
DISP=OLD,DSN=USER01.IRRRID00.CLIST
*
Note: RDELETE commands created for profiles in the following classes may
not be executed successfully if the profile name contains lowercase
characters:
- KERBLINK
- NDSLINK
- NOTELINK
See z/OS Security Server RACF System Programmers Guide for
information about recovering from these failures.
Chapter 11. Working With The RACF Database
377
Database Utilities
v Data set high-level qualifier
v GLOBAL DATASET high-level qualifier
v Profile names of certain general resource member classes
A list of user IDs and group names is generated from this processing. This list of
IDs is used to create the appropriate RACF commands.
DD
DD
DD
...
...
DUMMY
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
A.B.**
UPROC1
12345
A.B.**
A.B.**
ID(MARK) DELETE
CLASS(TSOPROC) ID(MARK) DELETE
CLASS(ACCTNUM) ID(MARK) DELETE
ID(JUNO) DELETE
OWNER(?JUNO)
As shown in Figure 31, IRRRID00 found several references to MARK and JUNO,
even though these users did not have a profile in the USER class. IRRRID00
produces the commands you would need to change or remove these references in
the various fields.
378
Database Utilities
v SUPGROUP
The newid value must follow the oldid value on the same input record, separated
from it by at least 1 blank.
In this example, MARK was specified in SYSIN. IRRRID00 now produces only
RACF commands relative to this user ID. In addition, when you run IRRRID00 with
a list of IDs, delete commands (DELDSD or RDELETE) are created for all data set
and general resource profiles that have one of the IDs as a qualifier. The search for
IDs within profile names is done without regard to any generic character in the
profile name.
//CLEANUP EXEC PGM=IRRRID00,REGION=25M
//SYSPRINT DD
SYSOUT=*
//SYSOUT
DD
SYSOUT=*
.
.
.
//INDD
//OUTDD
//SYSIN
MARK
/*
DD
DD
DD
...
...
*
ALTDSD
ALTDSD
ALTDSD
PERMIT
PERMIT
A.B.**
A.B.**
A.B.**
A.B.**
A.B.**
OWNER(?MARK)
NONOTIFY
DFP(RESOWNER(?MARK))
ID(MARK) DELETE
WHEN(PROGRAM(ABCD)) ID(MARK) DELETE
IRRRID00 Output
The output of the RACF remove ID utility is a set of commands that remove or alter
the references to residual authority IDs or to IDs in the list of IDs specified in the
SYSIN data set. References on an access list are deleted with the PERMIT
command. For references requiring that another ID value be specified, commands
are created to change the reference to another value.
When IRRRID00 searches for references, it creates delete commands (DELDSD or
RDELETE) for all data set and general resource profiles that have one of the IDs as
a qualifier. IRRRID00 searches for IDs within profile names without regard to any
generic characters within the profile name.
In some cases, such as an ID in an access list or in a NOTIFY field, the command
simply removes the ID. In other cases, such as an OWNER field, the ID cannot
simply be removed. In these cases, IRRRID00 creates a value that is the
replacement ID value. The default replacement ID value is ?id, where id is the ID
that is being replaced. For example, if the utility was searching for the ID MARK,
which is the owner of profile IRRDBU00.JCL.*, IRRRID00 generates this command:
ALTDSD DA(IRRDBU00.JCL.*) GENERIC OWNER(?MARK)
Because ?MARK is not a syntactically valid ID, you cannot run this command. Use
the editor of your choice to change ?MARK to the ID you want to own this profile. If
MARK owned more than one profile, you can globally change ?MARK to the new ID
Chapter 11. Working With The RACF Database
379
Database Utilities
field for all of its occurrences with a global edit command. For example, to change
all of MARKs ownership to ELVIS using ISPF, enter:
C ?MARK ELVIS ALL
/****************************************************************/
/*
*/
/* The RACF Remove ID Utility (IRRRID00) was executed on
*/
/* 1998-03-23 at 09:00:01.
*/
/*
*/
/* This file contains RACF commands that can be used to
*/
/* identify references to user IDs and group names. Residual
*/
/* references on an access list are deleted with the PERMIT
*/
/* command. For all other references, commands are created to
*/
/* change the reference to another value. The default value
*/
/* is ?id. This allows all references to a particular ID to
*/
/* be easily changed to another value using a text editor.
*/
/*
*/
/* Commands to alter ROLE definitions will be created within
*/
/* comments for informational purposes, though the actual
*/
/* updates should be made from Tivoli. The ROLE will not be
*/
/* updated with a replacement value for a group name.
*/
/****************************************************************/
/****************************************************************/
/* The INDD data set has been scanned for all names that do
*/
/* not have a user or group name defined for them in INDD. This */
/* list of names has been formatted and sorted into the
*/
/* SORTOUT data set.
*/
/****************************************************************/
CONNECT BILL
GROUP(RACFDEV )
OWNER(?ELVIS )
ALTDSD DASDDEF.VCE313S GENERIC OWNER(?JUNO )
PERMIT D12*
CLASS(DASDVOL ) ID(MARK ) DELETE
PERMIT 111111 CLASS(DASDVOL ) ID(BRUCE ) DELETE
PERMIT 222222 CLASS(DASDVOL ) ID(JUNO ) DELETE
RALTER FACILITY IRR.LISTUSER NONOTIFY
RALTER FACILITY IRR.PASSWORD.RESET OWNER(?TERRY )
/* RALTER ROLE DEVELOPMENT TME(DELGROUPS(RACFDEV ))
*/
/****************************************************************/
/* The following commands delete profiles. You must review
*/
/* these commands, editing them if necessary, and then remove
*/
/* the EXIT statement to allow the execution of the commands.
*/
/****************************************************************/
EXIT
RDELETE
DELDSD
DELDSD
DELUSER
DELUSER
DELUSER
DELGROUP
TMEADMIN [email protected]
D69A.BRUCE.TEXT VOLUME(TSO018) NOSET
D69A.MARK.*
BRUCE
JUNO
MARK
RACFDEV
/****************************************************************/
/* IRRRID00 has successfully completed
*/
/****************************************************************/
Figure 34. Sample Output from the IRRRID00 Utility
380
Database Utilities
7. The patch-flags at offset 3C and 3D are recent additions to DFSMSdss 1.2. See the closing text in APARs OW09751 and
OW10314, respectively, for more information.
Chapter 11. Working With The RACF Database
381
Database Utilities
v DFSMSdss commands, see z/OS DFSMSdss Storage Administration Reference.
v The ADMIN option and the appropriate RACF FACILITY class profiles, see z/OS
DFSMSdss Storage Administration Reference.
v The DFSMSdss patch-flags, see z/OS DFSMSdss Diagnosis Guide.
IRR68018I
These messages indicate that GROUP1 is used incorrectly. IRRRID00 searches for
all references to GROUP1 and creates the following commands to remove those
references.
/**********************************************************
/* The INDD data set has been scanned for all names that do
/* not have a user or group id defined for them in INDD.
/* This list of names has been formatted and sorted into
/* the SORTOUT data set.
/**********************************************************
CONNECT
ALTUSER
CONNECT
RALTER
REMOVE
USER1
USER1
?GROUP1
STARTED
USER1
GROUP(?GROUP1 )
DFLTGRP(?GROUP1 )
GROUP(GROUPB
)
AJB.* STDATA( USER(?GROUP1
GROUP(GROUP1 )
))
/**********************************************************
382
Database Utilities
/* The following commands delete profiles. You must review
/* these commands, editing them if necessary, and then
/* remove the EXIT statement to allow the execution
/* of the commands.
/**********************************************************
EXIT
DELGROUP GROUP1
/**********************************************************
/* IRRRID00 has successfully completed
/**********************************************************
In this example, the output commands to remove all references to GROUP1 should
not be executed. Instead, you can alter the AJB.* profile to reference an existing
valid user ID. Then, when IRRRID00 is rerun, these output commands will not
appear.
383
Database Utilities
384
Database Utilities
the number of records that have been searched (if a residual processing search
was specified) and the number of records that have been processed looking for
references to IDs.
385
386
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
388
389
389
389
390
390
390
391
391
392
392
393
394
394
394
394
394
395
395
395
396
396
396
397
397
399
399
401
403
404
405
406
406
. . 408
. . 408
. . 409
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
409
410
410
411
411
412
412
413
413
414
414
415
416
387
RRSF
Relationship to User ID Associations . . . . . . . .
RRSF Considerations for JES Security . . . . . . .
RRSF Considerations for Network Authentication Service .
Synchronizing Database Profiles . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
416
416
416
417
This chapter describes aspects of the RACF remote sharing facility (RRSF) that
security administrators should be aware of.
The RACF remote sharing facility allows RACF to communicate via APPC with
other MVS systems that use RACF, allowing you to maintain remote RACF
databases. RRSF extends the RACF operating environment beyond the traditional
single host and shared DASD environments, to an environment made up of RRSF
nodes that are capable of communicating with one another. This support provides
administration of multiple RACF databases from anywhere in the RRSF network.
Benefits of RRSF support for the security administrator include:
v Administration from anywhere in the RRSF network.
With RRSF, a security administrator logged on to one system in the RRSF
network can direct allowed RACF TSO commands to remote RRSF nodes in the
RRSF network. Administration of all the RACF systems in the RRSF network can
take place from a single point of control.
v User ID associations.
By supporting user ID associations and password synchronization, RRSF gives
users with multiple user IDs the option of keeping their user ID passwords
automatically synchronized across multiple systems.
v Automatic synchronization of databases. With automatic direction, RACF can
keep databases synchronized automatically. When a command or application
updates a database, RACF can automatically make the change to other
databases.
388
RRSF
Toronto
London
RACF database
RACF database
New York
Sydney
RACF database
RACF database
RRSF Nodes
An RRSF node is an MVS system image that has been defined as an RRSF node
to RACF by a TARGET command. For information about defining RRSF nodes with
the TARGET command, see z/OS Security Server RACF System Programmers
Guide.
To direct commands or application updates from one MVS system image to another
or synchronize passwords between users on two or more MVS system images,
both system images must first be defined to RACF as RRSF nodes that can
communicate with each other.
389
RRSF
A single-system RRSF node is an RRSF node that consists of one MVS system
image that does not share its RACF database. For example, in the network shown
in Figure 35 on page 389, the Toronto node uses its own RACF database, which it
shares with no other system.
A multisystem RRSF node is an RRSF node that consists of multiple MVS system
images that share the same RACF database. One of the systems is designated as
the main system and receives most of the RRSF communications sent to the node.
For example, in the network shown in Figure 35 on page 389, the New York node
might consist of two systems, Bronx and Brooklyn, that share a RACF database.
One of the systems, Bronx, is designated as the main system. This does not affect
its status as a local or remote node.
390
RRSF
A peer user ID association occurs between two user IDs and enables the user of
either user ID to run allowed RACF commands under the authority of the other
using 2-way command direction. Password synchronization is allowed in peer
associations and these associations can be deleted by either user.
A managed user ID association enables the managing user ID to run allowed RACF
commands under the authority of the managed user ID using 1-way command
direction. Users of the managed user ID cannot run RACF commands under the
authority of the managing user ID. Password synchronization is not allowed in
managed associations and these associations can be deleted by either user.
Password Synchronization
With RRSF, users with multiple user IDs can keep their passwords synchronized
across RACF databases. Password synchronization can be requested between user
IDs when a peer user ID association is established with the RACLINK command
and the PWSYNC option is specified.
The passwords of the user IDs do not need to be synchronized at the time the
association is requested, nor are they synchronized when the association is
established. The passwords are synchronized when either of the associated user
IDs initiates a password change. The password history is updated with the old
password on all systems where the password change occurs.
Password synchronization can occur for password changes initiated by:
v Logon processing
v The PASSWORD command
v The ALTUSER command
v Application programs that use the RACROUTE REQUEST=VERIFY macro to
supply the users new password in clear text form.
v Application programs that use the ICHEINTY or RACROUTE
REQUEST=EXTRACT,TYPE=REPLACE to supply the users new password in
clear text form.
Note: Password changes initiated by the ADDUSER command do not result in
password synchronization because the new user ID is not yet part of a user
ID association.
The security administrator can enable or disable password synchronization for user
IDs that have established a peer user ID association with password synchronization
requested. See Controlling Password Synchronization on page 267 for more
information.
Message Processing
Messages about the status of a password change and the password
synchronization request can be viewed by editing the users RRSFLIST data set,
depending on the option specified on the SET PWSYNC command. See Capturing
Command Output on page 397 for information about output handling for RACF
commands that execute in the RACF subsystem address space. TSO end users
may receive notification via the TSO SEND command that a password change
request has been processed on their behalf by the command output handling
components of RRSF.
The user who originates the password change is the source user, and the user to
whom the source user directs a password change is the target user.
Chapter 12. The RACF Remote Sharing Facility (RRSF)
391
RRSF
Messages issued by RRSF are returned as specified on the SET PWSYNC
command.
The password history of the target user is updated with the users old password by
RRSF password synchronization support.
If the RACF database manager is unable to communicate a password change
request to the RACF subsystem address space, message IRR417I is issued to the
operators console via WTO.
Output Capturing
Figure 36 shows captured output from a successful password synchronization
request.
======================================================================
Password synchronization request issued at 15:03:58 on 04/28/98 was
processed at NODE1.TSOUSER on 04/28/98 at 15:04:00
REQUEST ISSUED: From user TSOUSR3 at NODE1 to user TSOUSER at NODE1.
REQUEST OUTPUT:
IRRC013I Password synchronized successfully for TSOUSR3 at NODE1 and
TSOUSER at NODE1.
=====================================================================
The operands you can specify with the RACLINK command are:
Operand
Function
ID(userid)
Specifies one or more user IDs for whom the RACLINK operation is
being performed. If this operand is not specified, the default is the
user ID issuing the command.
DEFINE(node.userid/password)
Associates (links) two user IDs, forming a user ID association.
type
v PEER(NOPWSYNC) (the default)
v PEER(PWSYNC)
v MANAGED
These types of user ID associations are:
v Peer association (with or without password synchronization)
392
RRSF
v Managed association (password synchronization is not
permitted).
Command direction is allowed in both types of user ID associations.
In peer associations, command direction is 2-way. In managed
associations, command direction is 1-way, from the managing user
ID to the managed user ID.
The association is considered to be pending until an implicit or
explicit approval of the association is made. While the association is
pending, it cant be used for password synchronization or command
direction.
Explicit approval of the association is needed unless one of the
following is true:
1. The password of the target user ID is specified in the DEFINE
operand
2. You are creating a user ID association and, for both profiles,
one of the following is true:
a. You have SPECIAL or group-SPECIAL authority
b. You have a user ID association with a user who has this
authority
c. You are the owner of the profiles being changed.
Either user in a user ID association can delete the association,
regardless of the type of association established.
Note: The security administrator can enable or disable the use of
the DEFINE operand. See Controlling the Use of the
RACLINK DEFINE Operand on page 267 for more
information.
APPROVE
UNDEFINE
LIST
User ID Associations
Using the RACLINK command, you can define, approve, delete, and list user ID
associations.
393
RRSF
394
RRSF
Node.userid
PEER OF
MVS01.VIOLET
YES
ESTABLISHED
PEER OF
MVS03.VERUCA
YES
ESTABLISHED
PEER OF
MVS01.WILLIE
NO
ESTABLISHED
MANAGER OF
MVS03.MIKE
N/A
ESTABLISHED
MANAGER OF
MVS03.AGLOOP
N/A
ESTABLISHED
-----------------
Password Association
Sync
Status
-------- --------------
Command Direction
Command direction can be used to perform security administration for multiple data
centers from a central site without submitting batch jobs or logging on to the remote
systems when the AT option is specified. Command direction using the AT option is
not usually used when the remote databases are kept synchronized. In that case,
automatic direction is used. Most RACF TSO commands can be manually directed
on the local node or to a remote node within an RRSF network.
Manual command direction extends the users RACF TSO command execution
environment to include any of the RRSF nodes defined as targets of the node the
user is logged on to, provided the user has an associated user ID on the target
node and the associated user ID has the appropriate authority to run the command.
You can enable the use of command direction by creating a profile in the
RRSFDATA class. You can restrict the use of command direction by not creating the
Chapter 12. The RACF Remote Sharing Facility (RRSF)
395
RRSF
profile (so no one can direct commands) or by creating a profile and restricting
access to it. See Controlling the Use of the AT Operand on page 268 for more
information on restricting the use of the AT option.
396
RRSF
This request makes RRSF start a subtask in the NODEC RACF subsystem address
space for USER2 and invoke the LISTUSER command processor. The output is
captured and put into a data set as described in Capturing Command Output.
If the target user ID on the local node is the same, no user ID association is
needed. You only need a user ID association if the target user ID is different from
the issuers user ID when only one system is involved. Also, you need authority to
the DIRECT.nodename RRSFDATA profile for the local node.
This command causes RRSF on NODED to send the request to NODEC. RRSF
running in the RACF subsystem address space on NODEC creates a subtask for
USER2 in the RACF subsystem address space and runs the LISTUSER command.
The output is captured and sent back to NODED, where RRSF places it into
USER1s RRSFLIST data set, as specified in Capturing Command Output.
You do not receive a TSO SEND message if you had the TSO PROFILE
NOINTERCOM setting in effect when you directed the command.
Users are responsible for maintaining their own RRSFLIST data sets. If a users
data set becomes full, RRSF uses TSO TRANSMIT to send the command output to
the user. The output begins with a message indicating that the users RRSFLIST
data set was full at the time the output was received.
The contents of the data captured and appended to the RRSFLIST data set varies,
but generally it contains:
397
RRSF
v A brief description or summary of the event
v A reproduction, but not necessarily an exact replica, of the command issued.
Command options that are not specified but defaulted by RACF may be included:
security-sensitive data such as passwords or key codes are suppressed.
The command is reproduced up to 255 characters, including the command
options defaulted by RACF, and is truncated at this point. If it is truncated, the
last three characters are replaced by a set of ellipses (...) to indicate that the
remaining letters or options of the command had been omitted.
v The output produced by the command. This output is truncated after 4096 lines.
The following examples show the format of the captured output produced by
commands running in the RACF subsystem address space. The format of the
output shown is the same for both the users RRSFLIST data set, and the
TRANSMIT issued when the users data set is full. Figure 38 shows the format of
captured output for a directed LISTGRP command. Figure 39 shows the format of
captured output for a directed ADDSD command.
========================================================================
LG issued at 07:50:39 on 04/21/98 was processed at MVS03.SMITHJ on
04/21/98 at 07:50:41
COMMAND ISSUED: LG
(SYS1)
COMMAND OUTPUT:
INFORMATION FOR GROUP SYS1
SUPERIOR GROUP=NONE
OWNER=SMITHJ
NO INSTALLATION DATA
NO MODEL DATA SET
TERMUACC
SUBGROUP(S)=SYSCTLG VSAMDSET
USER(S)=
ACCESS=
ACCESS COUNT=
UNIVERSAL ACCESS=
IBMUSER
JOIN
000017
READ
CONNECT ATTRIBUTES=NONE
REVOKE DATE=NONE
RESUME DATE=NONE
=========================================================================
JWS.DEV*
COMMAND OUTPUT:
IRRR008I Command succeeded. There are no messages.
========================================================================
All time stamps shown in the RRSFLIST data set are initially recorded as
Greenwich Mean Time (GMT). These time stamps are meant to show the relative
sequence in which the commands were entered and processed. When output or
notify information is written into the RRSFLIST data set, these times are converted
from GMT into local times. The time stamps are as accurate as possible, but they
are not intended to give the exact, precise times of events. In addition, the accuracy
of the time stamps depends on how accurately you have set your system clocks.
398
RRSF
Note: RRSF assumes that either all nodes in the RRSF network have their clocks
set to GMT and have appropriate local time offsets in SYS1.PARMLIB, or
that all nodes have their clock set to local time in the same time zone. Any
other configuration will cause errors in the timestamps shown in an
RRSFLIST data set.
Automatic Direction
Automatic direction is an extension of command direction and password
synchronization that allows some administrative tasks and application updates to be
automated between RRSF nodes. Automatic direction keeps already synchronized
RACF profiles synchronized between two or more remote nodes.
Automatic direction includes:
v Automatic direction of commands, which allows RACF TSO commands that
update the RACF database to be automatically directed to remote nodes in order
to keep profiles synchronized between the nodes. Commands issued with
automatic direction of commands run asynchronously. The results and output
from the commands are returned to specified users (not necessarily the
command issuer).
v Automatic password direction, which keeps already-synchronized RACF user
profiles synchronized between two nodes, with respect to RACF passwords.
v Automatic direction of application updates, which allows updates made by
RACF macros to be propagated to the RACF databases of other systems.
Updates to the RACF database can be made using:
ICHEINTY
RACDEF
RACROUTE REQUEST=DEFINE
RACROUTE REQUEST=EXTRACT,TYPE=REPLACE
RACXTRT
Chapter 12. The RACF Remote Sharing Facility (RRSF)
399
RRSF
Automatic direction of application updates allows these changes to be
automatically sent to selected remote nodes. These updates to remote target
nodes take place only after the update has successfully completed on the local
node where it is executing and the macro completes with a return code of 0.
Note: RACF database updates made by the RACDCERT command are
candidates for propagation under the control of automatic direction of
application updates, even though the RACDCERT command itself is not
eligible for automatic command direction. In this case, the individual
updates made by RACDCERT may be successful, and propagated to
other nodes, even though the RACDCERT command as a whole may fail.
The essential elements of automatic direction are:
v Activation and deactivation, which are done with SET command options. See
Preparing to Use Automatic Direction on page 401 and z/OS Security Server
RACF Command Language Reference for more information.
v Controlling which updates get automatically directed to which nodes.
Application updates, password changes, and commands can be controlled by
RRSFDATA profiles.
v Notification of appropriate users of results and output from automatically directed
updates.
An installation must decide who should be notified of results and output from
automatically directed commands, application updates, and passwords. This is
done with the SET command options OUTPUT and NOTIFY. See Output
Processing on page 403 and z/OS Security Server RACF Command Language
Reference for more information.
Example: Automatic Direction of Commands
Automatic direction of commands works as follows: Suppose NODEA, NODEB, and
NODEC have equivalent profiles in the USER and GROUP classes. All RACF TSO
commands that affect USER and GROUP profiles can be automatically directed
between the nodes. When an ADDUSER command is issued on NODEA, it can be
automatically directed to execute on NODEB and NODEC. When a DELGROUP
command is issued on NODEC, it can be automatically directed to NODEB and
NODEA.
There might also be special situations where automatic direction can be used to
facilitate administrative updates to multiple RACF databases. For example, suppose
a university has a production MVS system and a test MVS system, each with its
own RACF database. At the beginning of each semester, each new student gets a
user ID on each MVS system. By temporarily using automatic direction of
commands, an administrator can enter ADDUSER commands on the production
system and have them automatically directed to the test MVS system.
Example: Automatic Password Direction
Automatic password direction does the following: NODEA, NODEB, and NODEC
have equivalent profiles in the USER class. Password changes can be
automatically directed to RACF user profiles without the need for established
RACLINK PEER PWSYNC associations. When a users password changes on
NODEA, a password synchronization request can be automatically directed to
execute on NODEB and NODEC.
Example: Automatic Direction of Application Updates
400
RRSF
Automatic direction of application updates does the following: An installation-written
application that creates profiles in installation-defined class using RACROUTE
REQUEST=DEFINE can execute on NODEA and cause profiles to be created on
NODEB and NODEC as well as NODEA.
401
RRSF
c. Keep SETROPTS command settings synchronized:
v This can be done manually (using command direction) if SETROPTS is
issued infrequently.
v Make sure that general resource classes on both nodes are active if
updates are being automatically directed for the class.
d. Considerations for running the IRRRID00 utility:
Because the DELUSER and DELGROUP commands do not automatically
delete access list entries from resource profiles, you can use IRRRID00 to
generate commands to clean up the profiles for a user or group that has
been deleted. If the PERMIT command is being automatically directed, the
user who runs the generated list of commands from IRRRID00 must be
authorized to automatically direct the PERMIT commands. Otherwise, the
resource profiles on the remote system will not be cleaned up.
e. When synchronizing a particular kind of profile between nodes, it is better to
give all users who can update the profiles controlling those profiles the
authority to direct updates automatically. To do this, you can give them
READ authority to the appropriate RRSFDATA profiles, for example.
If there are users who can cause updates to occur locally but cannot direct
them automatically, some updates are not automatically directed, and the
profiles do not remain synchronized. There are special considerations for
automatic direction of application updates for the DATASET class. For these,
see Considerations for the DATASET Class on page 414.
3. Synchronize specified profiles:
v Run IRRRID00 on each RACF database to remove references to user IDs
and group names that no longer exist.
v Synchronize databases. You can do this by manually copying the database
from one system to the other, or by using a tool that can help you
synchronize databases. See Internet sources on page xxvi to find out how
you can get access to this tool.
4. Create AUTODIRECT profiles in the RRSFDATA class as desired to specify
which updates should be automatically directed. Remember to create the
profiles on each node from which automatic direction should occur. For
example, the following commands cause all password updates, commands, and
application updates for the user class to be automatically directed to all remote
nodes:
SETROPTS GENERIC(RRSFDATA) (required if you use generic profiles)
RDEFINE RRSFDATA AUTODIRECT.*.USER.* UACC(READ)
6. Decide who should be notified of the automatic direction results and output.
7. Activate automatic direction when you are ready by issuing the SET command
with the options corresponding to automatic command direction, automatic
402
RRSF
password direction, and automatic direction of application updates, with output
and notification options appropriate to your installations needs:
SET AUTODIRECT(...)
SET AUTOPWD(...)
SET AUTOAPPL(...)
Note: IBM recommends the use of a RACF parameter library as specified for
RACF subsystem initialization. The SET command should be in the
default IRROPTxx member of this library so that these options are
reinstated when the subsystem is restarted or the entire system is
reIPLed.
8. At a later date, to temporarily or permanently deactivate one or more automatic
direction functions, issue the SET command with the options corresponding to
automatic command direction, automatic password direction, and automatic
direction of application updates:
SET NOAUTODIRECT
SET NOAUTOPWD
SET NOAUTOAPPL
|
|
See the note in step 7 on page 402 regarding the RACF parameter library.
9. The possibility of failing while attempting to execute a command issued on one
(up-level) system and manually or automatically directed to another (down-level)
system through RACF remote sharing has been present since the introduction
of RACF 2.2. This can occur if the command references a class unknown to the
target system (class descriptor tables are different), if it references a segment or
field unknown to the target system (templates or dynamic parse definition are
different), if it uses a command keyword unknown to the target (dynamic parse
definitions or command processor code is different), or if it specifies a profile or
member name that is unacceptable to the target system (class descriptor tables
have different syntax requirements for profile name length or syntax).
Guideline: Be sure that your class descriptor tables, including dynamic classes,
are compatible across all systems participating in automatic direction.
If an out-of-synchronization condition occurs while using automatic command
direction, a RACF TSO command can be directed with the ONLYAT option to fix
the condition. The command runs on the node specified on the ONLYAT option
and are propagated to any other node. (Note that if the AT keyword is used, the
command can be propagated by automatic command direction to other nodes.)
For information on the ONLYAT option, see Directing Commands Using the
ONLYAT Option on page 399. For a complete list of RACF commands that are
eligible for automatic command direction, see z/OS Security Server RACF
Command Language Reference.
Output Processing
For automatic direction, the installation has many options concerning where the
output and notification information resulting from an RRSF request may be sent.
This flexibility is provided by operands of the SET command. For example, some
installations might choose to notify only one or two administrators when errors are
encountered during automatic direction.
The OUTPUT operand specifies that the output from automatic direction should be
put in the RRSFLIST data set for the specified users. If the output cannot be put in
the RRSFLIST data set for some reason, the output is transmitted to the users. The
output usually contains messages issued during execution, such as informational,
warning, or error messages. After RACF determines the result of execution, it sends
back either a message saying it succeeded or a message giving diagnostic
information.
Chapter 12. The RACF Remote Sharing Facility (RRSF)
403
RRSF
The NOTIFY operand specifies that TSO SEND commands are issued to the
specified users with the results of automatically directed updates. The information
sent indicates whether the update was successful or unsuccessful, but does not
include other details about the execution.
On both the OUTPUT and NOTIFY operands, you can specify whether the output or
messages should be sent for all or some updates. The ALWAYS option specifies
that results or output from all automatically directed updates are returned to the
specified users. This should be used if the users are interested in the results of
every automatically directed update.
Output includes informational, warning, and error messages. For automatic direction
of commands:
v WARN specifies that results or output from an automatically directed update are
returned to the specified users only when the return code from the update is at
least four. This should be used if the users are interested in those automatically
directed updates that complete with error conditions or warning conditions.
v FAIL specifies that results or output from an automatically directed update be
returned to the specified users only when the return code from the update is at
least 8. This should be used if the users are interested in only those
automatically directed updates which complete with error conditions.
For automatic direction of application updates and passwords:
v WARN and FAIL have the same meaning. Either WARN or FAIL result in returned
output or notification when a directed application update or password fails to
completely take effect on a remote node.
If an automatically directed update error occurs, the RACF profiles become
out-of-synch. An installation should specify at least one person (probably an
administrator who is familiar with required profiles) on the OUTPUT and NOTIFY
options to receive error results and output (FAIL option). If the initial values of
NOOUTPUT and NONOTIFY are used, no one is notified when automatic direction
errors occur. Also, once an update is automatically directed to a remote node, all
output and messages associated with that update are discarded.
For more information and examples on using the SET command to specify options
for automatic direction of updates, see z/OS Security Server RACF Command
Language Reference.
404
RRSF
node at which the automatically directed update executes. The OUTPUT and
NOTIFY settings on the node at which the update originally executed are not
relevant.
For example, a user on NODE1 runs an application that performs an update,
and the update is automatically directed to NODE2. On NODE2, the update
runs with a return code of 8. SAM on NODE2 gets a NOTIFY message and the
OUTPUT containing the error messages. Even though the update originally
executed on NODE1, the OUTPUT and NOTIFY settings on NODE2 are used
instead of the OUTPUT and NOTIFY settings on NODE1.
The update has successfully executed on one node and is automatically
directed to another node. The NOTIFY and OUTPUT settings on that second
node determine who is notified of the update completion.
2. When an error occurs while attempting to automatically direct an update to a
remote node, the OUTPUT and NOTIFY settings are used on the node at which
the update originally executes.
For example, a user on NODE1 runs an application that performs an update,
and the update is to be automatically directed to NODE2. As the update is
placed in the OUTMSG workspace data set (which contains work items to be
sent to NODE2), the data set becomes full; therefore, the update is not
automatically directed to NODE2. ANN on NODE1 gets a NOTIFY message and
the OUTPUT containing the error messages.
The update has successfully executed on one node and is to be automatically
directed to another node. An error occurs before the request arrives at the other
node. The NOTIFY and OUTPUT settings on the first node determine who is
notified of the error. This is treated as an error case (like an update which
executed with return code 8), so any user with the FAIL, WARN, or ALWAYS
setting would be notified or would receive output.
Recommendations for Use of OUTPUT and NOTIFY
To make sure that the appropriate users are notified or receive output, specify the
same users on the OUTPUT and NOTIFY operands on the SET command issued
on each node with automatic direction active.
The OUTPUT and NOTIFY lists should include users from at least 2 different
nodes, if possible. This is important in the case of a workspace data set problem.
For example, suppose a command executes successfully on NODE1 but cannot be
sent to NODE2. If all the NOTIFY and OUTPUT users are also on NODE2, it is
possible that RRSF might experience the same problem trying to notify the users as
it experienced trying to send the command. By also specifying a user on NODE1 or
by specifying one local user on each node to get the output, you ensure that RRSF
can find someone to notify.
405
RRSF
the user via the TSO PROFILE command except if the user is logged on when the
output is received and the user has changed his or her TSO prefix during that logon
session.
If the automatically directed command originated from the operators console (even
if &RACUID is specified on the OUTPUT operand), the TSO prefix is also taken
from the users TSO segment at the time the output is returned. The same is true
for automatic direction of application updates that originate from batch jobs, started
procedures, and other non-TSO environments.
Application update output should not be sent to &RACUID.
UACC(NONE)
COMMAND OUTPUT:
ICH10102I AUTODIRECT.** ALREADY DEFINED TO CLASS RRSFDATA.
=========================================================================
When errors occur during automatic direction of commands, the command output
appropriately reflects what happened.
If an unexpected error occurred while trying to automatically direct a command to a
remote node, the output may be similar to the following:
=========================================================================
RDEFINE issued at 12:33:41 on 4/1/98 was *not* processed at NODEA.LAURIE
Command was *not* propagated by automatic direction from NODEB.LAURIE
406
RRSF
COMMAND ISSUED:
UACC(NONE)
ERROR INFORMATION:
IRRR016I Command was not sent. Processing code is 502.
=========================================================================
UACC(NONE)
ERROR INFORMATION:
IRRC010I UNABLE TO ESTABLISH RACF ENVIRONMENT FOR COMMAND RDEFINE.
IRRC012I TARGET USER ID NODEA.LAURIE DOES NOT EXIST.
=========================================================================
All time stamps shown in the RRSFLIST data set are initially recorded as
Greenwich Mean Time (GMT). These time stamps are meant to show the relative
sequence in which the commands were entered and processed. When output or
notify information is written into the RRSFLIST data set, these times are converted
from GMT into local times. The time stamps are as accurate as possible, but they
are not intended to give the exact, precise times of events. In addition, the accuracy
of the time stamps depends on how accurately you have set your system clocks.
Note: RRSF assumes that either all nodes in the RRSF network have their clocks
set to GMT and have appropriate local time offsets in SYS1.PARMLIB, or
that all nodes have their clock set to local time in the same time zone. Any
other configuration will cause errors in the timestamps shown in an
RRSFLIST data set.
Some sample output from automatic direction of application updates follows.
Sample output for a successful RACDEF request:
=========================================================================
Application update request issued at 15:42:33 on 4/1/98
was processed at NODE2.RACFU01
on 4/1/98 at 15:43:45
Request was propagated by automatic direction from NODE1.RACFU01
REQUEST ISSUED: RACDEF TYPE=DEFINE, NEWNAME FROM NODE1.RACFU01
REQUEST OUTPUT:
IRRR101I Application update request completed successfully
for class DATASET, profile name MYNEW.PROFILE.
=========================================================================
407
RRSF
IRRR101I Application update request completed successfully
for class $MYCLASS, profile name MYNEW.PROFILE.
=========================================================================
408
RRSF
automatic direction of application updates is active and automatic direction of
commands is not active, only application updates are propagated to remote nodes.
If both automatic direction of application updates and automatic direction of
commands are active, application updates and commands are propagated to
remote nodes.
409
RRSF
the RRSFDATA class, the password changes are sent to users with approved
PEER PWSYNC associations with the user whose password has been changed.
v Password synchronization and automatic password direction do not handle
password updates initiated by the ADDUSER command. Users who participate in
password synchronization must be initially defined to RACF before automatic
direction can occur. The ADDUSER command can be directed by automatic
direction of commands based on RRSFDATA profile setup.
v The ALTUSER and PASSWORD commands must be automatically directed to
maintain the synchronization of user passwords for the same user IDs across
RRSF nodes. The automatic direction of commands RRSFDATA profiles that
protect AUTODIRECT.node.USER.ALTUSER and
AUTODIRECT.node.USER.PASSWORD control this automatic direction. The
RRSFDATA profile that protects automatic password direction
(AUTODIRECT.node.USER.PWSYNC) is not checked for the automatic direction
of the ALTUSER and PASSWORD commands.
v A password change by other methods, such as at logon or by an
installation-written application, is not directed by automatic direction of
commands. These password changes are sent to users with the same name if
automatic password direction is in effect. Also, if the user is authorized to the
PWSYNC profile in the RRSFDATA class, the password changes are sent to
users with approved PEER PWSYNC associations with the user whose password
has been changed.
410
RRSF
411
RRSF
3. Once the ADDUSER PREMA command runs on NODE3, it is not automatically
directed back to NODE2. RACF detects that the command was already
automatically directed, and does not further send it to any other nodes.
412
RRSF
c. The command has already been automatically directed.
d. The command is ineligible for automatic direction of commands. See Using
Automatic Direction of Commands on page 410 for more information.
e. The RRSFDATA class is INACTIVE.
f. The RRSFDATA class is ACTIVE and an AUTODIRECT profile covering that
command does not exist.
3. For each remote target node, the following occurs:
a. If the command issuer does not have at least READ authorization to
RRSFDATA profile AUTODIRECT.target-node.classname.command-name,
the command is not automatically directed to this node
b. If the command has passed all checks so far, it is sent to execute on the
remote node under the authority of the same-named user ID on the remote
node. The user ID is the user ID under which the command executed, which
is not necessarily the command issuer (if the command was directed and
then automatically directed, for example).
For example, a command issued by and executed on LAURIE at NODE1 is
automatically directed to LAURIE at NODE2. A command issued by LAURIE
specifying AT(NODE2.ANDREW) is automatically directed to ANDREW at
NODE1. No authorization check with the AUTODIRECT profiles is made on
the receiving node.
413
RRSF
6.
7.
8.
9.
v The ICHEINTY setting the revoke flag in the user profile when a user is
being revoked due to inactivity or password attempts that are not valid
v The ICHEINTY that increments the revoke count when a user enters a
password that is not valid
v The ICHEINTY that resets the revoke count to 0 when a user enters a valid
password, if the revoke count for the user was nonzero before the update
was made
Automatic direction of the ICHEINTY that RACROUTE REQUEST=VERIFY
issues to change the password in the users profile is controlled by automatic
password direction, and not by automatic direction of application updates.
When a RACROUTE REQUEST=DEFINE, or a RACDEF, issues an
ICHEINTY, RACF does not direct the ICHEINTY separately.
Automatic command direction determines whether a RACF command is
directed. If a command issues a RACROUTE or ICHEINTY, that RACROUTE
or ICHEINTY is not directed by automatic direction of application updates.
Use the AUTOAPPL and NOAUTOAPPL options on the RACF SET command
to activate and deactivate automatic direction of application updates. Use the
OUTPUT and NOTIFY values of SET AUTOAPPL to specify which users will
be notified of results and receive output from automatically directed application
updates.
10. Profiles in the RRSFDATA class control which application updates are
automatically directed to which nodes.
414
RRSF
that invoke the R_datalib and initACEE callable services. These updates can affect
profiles in DIGTCERT, DIGTCRIT, DIGTNMAP, DIGTRING and USER classes.
Since these updates are eligible for automatic direction, you must ensure consistent
propagation across these classes.
Propagation of Command and Application Updates: To ensure RACF database
updates are propagated in a consistent manner across the DIGTCERT, DIGTCRIT,
DIGTNMAP, DIGTRING and USER classes, you should create a single RRSFDATA
profile called AUTODIRECT.target-node.DIGT*, or you should ensure that the access
lists for the RRSFDATA resources shown in Table 30 are kept identical:
Table 30. RRSFDATA Resources Used to Control Propagation of Digital Information
Type of automatic direction
RRSFDATA resource
Automatic direction of
application updates
AUTODIRECT.target-node.DIGTCERT.APPL
AUTODIRECT.target-node.DIGTNMAP.APPL
AUTODIRECT.target-node.DIGTRING.APPL
Automatic direction of
commands
AUTODIRECT.target-node.DIGTCRIT.command-name
Note: The best way to ensure that RACF database updates are propagated consistently is to
define a single profile called AUTODIRECT.target-node.DIGT* to control all the RRSFDATA
resources shown above.
To facilitate consistency, when updates are made in the USER class that pertain to
digital certificates, the RRSFDATA resource AUTODIRECT.target-node.DIGTCERT.APPL
is used to determine the authority to propagate. This resource should be protected
by the AUTODIRECT.target-node.DIGT* resource profile. Note that the
AUTODIRECT.target-node.USER.APPL resource is not checked to determine authority
to propagate USER-class updates that are made as a result of processing digital
certificates.
Private key
CERTPRVS
CERTPRVT
RACF does not store the private key associated with a certificate. Instead, RACF
stores the Integrated Cryptographic Service Facility (ICSF) key token. The private
key itself is stored in the ICSF public key data set (PKDS) and is encrypted under
the master key of the system. Since the automatic direction of application updates
propagates information to remote systems that are likely to have different public key
data sets and different master keys, private key information from the originating
node is unusable.
415
RRSF
|
|
|
|
|
|
RRSF functions may be invoked by a batch job. For instance, RACF TSO
commands that are subject to automatic command direction may be issued from
within a batch job. If your JES security approach uses the &RACLNDE profile in the
RACFVARS class, all JES nodes (not RRSF nodes) that you wish to be treated as
local nodes must be defined as members in the &RACLNDE profile. For an example,
see Defining Nodes as Local Input Sources on page 499.
|
|
|
|
|
|
You must define the JES node where the batch job is submitted as a member of
&RACLNDE because there are no default members in this profile. If you do not define
the submitting JES node as a member of &RACLNDE, the RRSF authority check for
the function invoked by the job, such as the authority check for the RRSFDATA
profile protecting the propagation of the issued command, may fail and prevent the
command from being propagated to remote RRSF nodes.
416
RRSF
1. The KERB segment of the RACF user profile defines a user as a local principal.
If KERB segment information is directed to a remote RRSF node, users will be
defined as local principals on all Network Authentication Service servers that
share that RACF database.
2. RACF does not distinguish between user passwords and passwords assigned to
local principals for key generation. If user passwords are synchronized with a
remote RRSF node, keys will be generated for those users on the remote node
and they will be recognized as local principals by all Network Authentication
Service servers that share that RACF database.
3. REALM class profiles define information about local and foreign realms. If these
profiles are propagated to a remote RRSF node, all Network Authentication
Service servers that share that RACF database will have duplicate local and
foreign realm definitions.
4. KERBLINK class profiles define the mapping of foreign principals to local RACF
user IDs. If these profiles are propagated to a remote RRSF node, all Network
Authentication Service servers that share that RACF database will attempt to
map those foreign principals to the same RACF user IDs.
See Chapter 22, RACF and z/OS Security Server Network Authentication Service,
on page 603 for more information.
417
418
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
421
421
422
422
422
423
423
424
425
425
426
426
427
427
428
428
428
429
429
430
430
431
431
431
432
432
432
433
433
433
433
434
434
434
434
434
434
435
435
436
436
437
437
437
437
437
438
438
439
439
440
440
440
419
DB2
Example 2: Allowing access (auditing for all attempts) .
Setup . . . . . . . . . . . . . . . . . .
Profile checking . . . . . . . . . . . . . .
Final result . . . . . . . . . . . . . . . .
Example 3: Denying access. . . . . . . . . . .
Setup . . . . . . . . . . . . . . . . . .
Profile checking . . . . . . . . . . . . . .
Final result . . . . . . . . . . . . . . . .
Example 4: Deferring to DB2 . . . . . . . . . .
Setup . . . . . . . . . . . . . . . . . .
Profile checking . . . . . . . . . . . . . .
Final result . . . . . . . . . . . . . . . .
Example 5: Allowing access (multiple-subsystem scope)
Setup . . . . . . . . . . . . . . . . . .
Profile checking . . . . . . . . . . . . . .
Final result . . . . . . . . . . . . . . . .
Example 6: Allowing access (single-subsystem scope) .
Setup . . . . . . . . . . . . . . . . . .
Profile checking . . . . . . . . . . . . . .
Final result . . . . . . . . . . . . . . . .
Converting DB2 Authorizations to RACF Profiles . . . .
Common Problems and Considerations . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
440
440
441
441
441
441
442
442
442
442
443
443
443
443
444
444
444
444
445
445
445
445
This chapter provides details about using RACF to provide security for DB2 objects.
|
|
Restriction
This chapter contains information about the RACF external security module for
installations using RACF with DB2 Version 7, or earlier.
|
|
|
Information about the RACF external security module for installations using
RACF with DB2 for z/OS Version 8, and higher, is found in DB2 RACF
Access Control Module Guide, SC18-7433.
|
|
|
Additional reading for DB2 Version 7 and earlier: Before you read this chapter,
you should have a basic understanding of DB2, DB2 security concepts, and
configuring the RACF external security module. For information about:
v DB2 and DB2 security concepts, see the appropriate DB2 publication for your
installationfor example:
DB2 for MVS/ESA Version 4 Administration Guide, SC26-3265
DB2 for OS/390 Version 5 Administration Guide, SC26-8957
DB2 Universal Database for OS/390 Version 6 Administration Guide,
SC26-9003
DB2 Universal Database for OS/390 and z/OS Version 7 Administration
Guide, SC26-9931
v Configuring the RACF external security module with DB2 Version 7 and earlier,
see z/OS Security Server RACF System Programmers Guide.
420
DB2
421
DB2
See the DB2 Administration Guide for details.
|
|
|
422
DB2
For authorization checking of the CREATEIN schema privilege, the RACF external
security module first checks to see if the user identity in field XAPLUCHK matches
the schema name in XAPLOBJN. If those two fields are equal, the RACF external
security module allows the access. For all other schema privileges, the RACF
external security module first checks to see if the user identity in XAPLUCHK
matches the schema name in XAPLOWNQ. If those two fields are equal, the RACF
external security module allows the access. In each case, when the RACF external
security module allows access, it returns a return code 0 in EXPLRC1 and reason
code 14 in EXPLRC2, and no further checking occurs. If the RACF external security
module does not allow the access, profile checking occurs. See Appendix D, RACF
External Security Module: Authorization Checking, on page 675 for details.
Restriction: On multilevel-secure systems with RACF SETROPTS MLS option
active, the schema match check is not performed.
|
|
Default value
Description
&CLASSOPT
&CLASSNMT
DSN
&CHAROPT
The &CLASSOPT, &CLASSNMT, and &CHAROPT options specify the format of the
class names and resource profile names used by the RACF external security
module. These options are global for each DB2 subsystem, and must be the same
for all classes. Each instance of the RACF external security module can only be set
up to process one classification model or the other, but not both. See z/OS Security
Server RACF System Programmers Guide for more information.
If your installation is using the default values for these options, you can use the
classes in the supplied class descriptor table (ICHRRCDX). Additional classes do
not need to be defined.
Security administrators need to define the correct profiles according to which
options are being set in the RACF external security module.
Class Names
In the supplied class descriptor table (ICHRRCDX), two classes are defined for
each DB2 object type (except the DB2 view object type), so that each object type
has an associated member class and an associated grouping class. Table 31 on
page 426 lists the supported DB2 objects and class abbreviations.
423
DB2
Installations defining their own classes can also define two classes for each object
type if member and grouping classes are desired. If only one class is defined for
each object type, the class name must begin with M (not G).
The actual format of the class names of DB2 objects depends on the classification
model being used.
Note: An additional class can be defined to support DB2 administrative authorities.
See section DB2 Administrative Authorities on page 427.
System programmers can alter the &CLASSOPT field of the modifiable assembler
source statement in the RACF external security module to select the classification
model their installation will use:
Classification model (&CLASSOPT value)
Scope
Single-subsystem scope
Multiple-subsystem scope
Note: This is the default.
Once a classification model is selected, the system programmer can use the
&CHAROPT and &CLASSNMT SET symbols to alter the default naming
conventions for the general resource classes. The naming conventions for the
resource profile names are defined in Resource Names on page 426.
where:
a
yyyy
Is the DB2 subsystem name or, if data sharing, the DB2 group attachment
name (from XAPLGPAT)
xx
Is the type of DB2 object (see Table 31 on page 426 for valid values)
424
DB2
where:
a
bbbb
xx
Is the type of DB2 object (see Table 31 on page 426 for valid values)
The resource names are prefixed with the DB2 subsystem name or, if data sharing,
DB2 group attachment name.
Installations using multiple-subsystem scope and the default &CLASSNMT value
(DSN) can use the classes provided in the supplied class descriptor table
(ICHRRCDX). Any subsystem sharing the RACF external security module can use
the same set of classes. A separate set of classes does not need to be defined for
each subsystem.
If &CLASSNMT is set to a value other than the default (DSN), classes must be
defined in the class descriptor table (CDT). You can define two classes for each
object type if member and grouping classes are desired. If only one class is defined
for each object type, the class name must begin with M (not G).
|
|
For information about defining your own classes in the CDT, see Chapter 8,
Administering the Dynamic Class Descriptor Table (CDT), on page 287.
425
DB2
Table 31. DB2 Object Abbreviations
DB2 object
Buffer pool
BP
Collection
CL
Database
DB
JR
Package
PK
Plan
PN
Schema
SC
Storage group
SG
Stored procedure
SP
System
SM
Table or index
TB
Table space
TS
UT
User-defined function
UF
View
TB
Resource Names
The format of the resource names built by the RACF external security module
depends on the classification model being used.
For single-subsystem scope the general format is:
[object-name.]privilege-name
Object Names
The RACF external security module constructs the DB2 object resource name using
information passed in various fields (XAPLOBJN, XAPLOWNQ, XAPLREL1, and
XAPLREL2). The content of these fields depends on the input object type,
XAPLTYPE.
Table 32 on page 427 defines the DB2 object name qualifiers used in RACF
profiles:
426
DB2
Table 32. DB2 Object Name Qualifiers for RACF Profiles
DB2 object
Buffer pool
bufferpool-name
Collection
collection-ID
Database
database-name
schema-name.JAR-name
Package
collection-ID.package-ID
collection-ID
owner
Plan
plan-name
owner
Schema
schema-name
schema-name.function-name
schema-name.procedure-name
schema-name.type-name
Storage group
storage-groupname
Stored procedure
schema-name.procedure-name
System
owner
(BINDAGENT only)
Table, index
table-owner.table-name
table-owner.table-name.column-name
Table space
database-name.table-space-name
schema-name.type-name
User-defined function
schema-name.function-name
View
view-owner.view-name
Note: The format of the DB2 object names is defined by DB2. For more
information, see DB2 SQL Reference.
Privilege Names
The RACF external security module constructs the DB2 resource name using the
DB2 privilege name as the lowest-level qualifier (RACF profile-name suffix) in the
resource name. Each explicit privilege used as a low-level qualifier corresponds to
one of the explicit privilege names that DB2 uses for a particular object. For a
complete reference of all valid privilege names that can be used in a resource
name for each DB2 object, see the tables in Appendix D, RACF External Security
Module: Authorization Checking, on page 675.
Tip: You can authorize a user for all privileges on an object by defining a generic
RACF profile using an asterisk (*) in place of the privilege name. See DB2 GRANT
commands on page 434 for an example. (In contrast with SQL, in RACF a single
asterisk (*) matches characters within the scope of a single qualifier.)
427
DB2
If users were not permitted access to the object through the object resource profile,
subsequent checks are made to determine if the user has been permitted access to
system resources via the DSNADM class profiles. The DB2 Administration Guide
documents the set of privileges each DB2 administrative authority provides. The
administrative authorities that apply to a particular invocation of the RACF external
security module, depend on the input object type (XAPLTYPE) and the privilege
being checked (XAPLPRIV) and are defined in Appendix D, RACF External
Security Module: Authorization Checking, on page 675.
Like the names used to protect DB2 objects, the general resource class and profile
names used to implement DB2 administrative authorities depend on the options
specified with the assembler SET symbols.
Class Names
A RACF class, called the DB2 administrative authority class or DSNADM (the
default class name), allows RACF security administrators to create profiles that are
suffixed with specific DB2 administrative authorities, to allow users to access certain
resources for specified DB2 subsystems or groups. The format is dependent on the
scope (&CLASSOPT) specified.
where:
yyyy
Is the DB2 subsystem name or, if data sharing, the DB2 group
attachment name (from XAPLGPAT)
ADM
|
|
where:
428
yyyy
ADM
DB2
z
The resource names are prefixed with the DB2 subsystem name or, if data sharing,
the DB2 group attachment name.
Installations using multiple-subsystem scope and the default &CLASSNMT value
(DSN) can use the DB2 administrative authority class provided in the supplied class
descriptor table (ICHRRCDX). Any subsystem sharing the RACF external security
module can use the same class. A separate class does not need to be defined for
each subsystem.
|
|
|
|
If &CLASSNMT is set to a value other than DSN, a class must be defined in the
class descriptor table (CDT). For information about defining your own classes in the
CDT, see Chapter 8, Administering the Dynamic Class Descriptor Table (CDT), on
page 287.
Resource Names
The format of the resource names built by the RACF external security module
depends on the classification model being used.
For single-subsystem scope, the format for the DB2 administrative authority
resources is:
[object-name.]authority-name
DBADM
database-name
DBCTRL
database-name
DBMAINT
database-name
PACKADM
collection-ID
SYSADM
none
SYSCTRL
none
SYSOPR
none
429
DB2
Note: The format of the DB2 object names is defined by DB2. For more
information, see DB2 SQL Reference.
Installation-Defined Classes
When the &CLASSOPT or &CLASSNMT assembler SET symbols are changed from
their default values, classes must be defined in the installation class descriptor table
(CDT). An installation must define:
v One class for each of the 13 DB2 object types they want to protect with the
RACF external security module.
It is not necessary to define classes for DB2 objects that will not be protected by
the RACF external security module.
v The DB2 administrative authority class.
Optionally, the installation can define two classes for each object type and set them
up as associated member and grouping classes. The formats for these class names
are defined in sections Classification Model 1: Single-Subsystem Scope on page
424 and Classification Model 2: Multiple-Subsystem Scope (Default) on page 425.
When using single-subsystem scope, class names are created dynamically by
concatenating the DB2 subsystem name or, if data sharing, the DB2 group
attachment name, with the object type. As a result, multiple DB2 subsystems can
use the same copy of the RACF external security module.
When using multiple-subsystem scope, class names are created dynamically by
concatenating the &CLASSNMT value with the object type. As a result, DB2
subsystems with the same &CLASSNMT value can use the same copy of the
RACF external security module.
Note: If you want to use installation-defined classes, you must use
installation-defined classes with all objects for the same copy of the RACF
external security module. You cannot mix supplied classes and
installation-defined classes for the same copy of the RACF external security
module. You must use different versions of the RACF external security
module.
Installation-defined classes should have the same class descriptor table
(CDT) attributes as the supplied DB2 classes that they correspond to, except
for the POSIT value. For information about defining your own classes in the
CDT, see Chapter 8, Administering the Dynamic Class Descriptor Table
(CDT), on page 287.
|
|
|
|
|
430
DB2
Special Considerations
In certain instances, the RACF authorization checking done by the RACF external
security module is different from the authorization checking done by DB2. These
instances are described in this section.
PUBLIC*
The RACF external security module does not directly support use of the DB2
authorization name PUBLIC*, which means PUBLIC AT ALL LOCATIONS and is the DB2
value that represents all users in the network. However, you can define a resource
profile using generic characters in multiple-subsystem scope in place of the DB2
subsystem name, with the appropriate UACC level for the object. This profile would
then allow all users from all subsystems to access the resource as desired.
DB2 object
Owner field
Implicit privileges
XAPLREL1
USAGE
Package
XAPLREL1
Plan
XAPLOWNQ
Schema
XAPLREL1
Stored procedure
XAPLREL1
Table
XAPLOWNQ
XAPLREL1
USAGE
User-defined function
XAPLREL1
View
XAPLOWNQ
To check authorization for the privileges associated with implicit ownership, the
RACF external security module first checks to see if XAPLUCHK or XAPLUPRM
matches the value passed in the owner field. (See Table 34 for the name of the field
that DB2 uses to pass owner information for each object type.) If either of these two
fields are equal, the RACF external security module authorizes access and returns
a return code 0 in EXPLRC1 and reason code 13 in EXPLRC2. If this check fails, a
check is made to see if XAPLUCHK equals the owner field (does the current SQL
ID equal the owner of the object?). If these two fields are equal, access is allowed.
If this check fails, profile checking will occur.
|
|
431
DB2
CREATETMTAB Privilege
In DB2, the DBMAINT, DBCTRL, and DBADM administrative authorities are
sufficient for the CREATETMTAB privilege. However, with the RACF external
security module, a user must have one of the following:
1. The CREATETMTAB privilege
2. The CREATETAB privilege
3. SYSCTRL authority
4. SYSADM authority
For the exact class and resource names, see Appendix D, RACF External Security
Module: Authorization Checking, on page 675.
432
DB2
in the list. The result of each DBADM check is placed in the XAPLDBDA field
associated with each database. See z/OS Security Server RACF Diagnosis Guide
for information about capturing the results from the RACF external security module.
433
DB2
434
DB2
When a DB2 user tries to perform an operation on all packages in a collection, DB2
may pass an asterisk (*) to the RACF external security module in place of
package-ID. To ensure consistent results between the RACF external security
module and the RACF command processors (SEARCH and RLIST), the asterisk (*)
in the resource name should match the asterisk (*) in the profile name.
For example, in DB2, you can BIND a plan using all of the packages from a given
collection. When that plan is subsequently executed, DB2 will check the users
authority to execute all packages in the collection by passing an asterisk (*) in place
of the collection name. For example, suppose the following DB2 commands are
issued for subsystem DSN:
BIND PACKAGE (DSNTEP2) MEMBER(DSNTEP2) ACT(REP) ISO(CS)
BIND PLAN(DSNTEP42) PKLIST(DSNTEP2.*) ACT(REP) ISO(CS)
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP42) -
When DB2 gets to the execution step, it invokes the RACF external security module
to check the users authority to EXECUTE package DSNTEP2.*, where the asterisk
(*) means all packages in the collection.
The RACF external security module checks the users authority to resource:
DSN.DSNTEP2.*.EXECUTE
The RACF profile name protecting this resource should contain a single asterisk (*)
to match the asterisk (*) in the resource name.
435
DB2
While the RACF external security module uses the XAPLUCHK and XAPLUPRM
values to perform ownership checks, it performs all access authorization checks
using only XAPLUPRM.
It is possible for the XAPLUCHK value to be different from the user ID
(XAPLUPRM) represented in the ACEE pointed to by XAPLACEE. For example,
this can occur when a BIND request is issued and the binder is not the owner of
the plan or package. The RACF external security module is invoked to determine
whether the binder is authorized to do the BIND. If this check is successful, it is
then invoked to check the binders authorization to access each DB2 resource
accessed in the plan or package. For the BIND check, XAPLUPRM and
XAPLUCHK have the authorization ID of the binder. However, for the subsequent
checks on the DB2 resources accessed in the plan or package, XAPLUPRM still
has the authorization ID of the binder, but XAPLUCHK now has the authorization ID
of the plan or package owner. For the BIND to succeed, the binder must have
authorization to bind this plan or package, and be authorized to access all DB2
resources accessed in it. DB2 authorization performs the subsequent checks on the
owner of the plan/package and not the binder.
Initialization
Any DB2 classes you want to use must be active during RACF external security
module initialization (XAPLFUNC=1). You cannot activate a DB2 class later and expect
the RACF external security module to perform authorization checking against it,
because the class will not be RACLISTed. RACLISTing is only done during
initialization of the RACF external security module.
To start using DB2 classes that were not previously RACLISTed during initialization,
you will need to stop and restart DB2.
Once the DB2 subsystem has initialized, the following command needs to be issued
to affect profile changes for classes being used by the RACF external security
module:
SETROPTS RACLIST(classname) REFRESH
436
DB2
The following informational messages are issued for each initialization: IRR908I,
IRR909I, IRR910I, and IRR911I.
Note: The classes listed in message IRR911I may be a valid subset of the classes
listed in message IRR910I. The RACF external security module is
programmed to RACLIST all supported DB2 classes. Message IRR910I lists
the DB2 classes for which the RACF external security module has initiated
RACLIST. However, message IRR911I lists only the DB2 classes that were
successfully RACLISTed. In order to be successfully RACLISTed, a DB2
class must be active and contain at least one profile. Therefore, there are
valid circumstances where the list of classes contained in IRR911I will be a
subset of those listed in IRR910I.
Failure to Initialize
If the RACF external security module fails to initialize for any reason, messages
IRR900A, IRR901A, IRR902A, and IRR903A are issued to the security console. If
this occurs, you can do the following:
1. Check that the DB2 classes are active, and that there is at least one profile
defined in each class.
2. Examine RACROUTE REQUEST=LIST return and reason codes to determine
why RACLISTing of classes is failing in the RACF external security module.
3. Check if any other required resources (GETMAIN, for example) are obtainable.
437
DB2
Security Module: Authorization Checking, on page 675. In DB2, there is no concept
of negative access level. RACF external security module processing ends when
FASTAUTH returns a return code of 0 or the list of checks for the request has been
exhausted. Failure audit records are only created for the first failing resource. All
audit records associated with the same invocation of the exit contain the same
LOGSTR data. See Authorization processing examples on page 439 for examples.
Meaning
Access permitted
Reason Code Meaning
13
14
11
14
15
16
Access denied
Reason code Meaning
0
Access denied.
17
438
DB2
If at least one object resource check results in a return code of 8 and none of the
DSNADM checks result in a return code of 0, the RACF external security module
passes back a return code of 8.
If no object resource profiles are checked and all of the DSNADM checks result in a
return code of 8, the RACF external security module will pass back a return code of
8. Otherwise, if no object resources are checked and the DSNADM checks result in
a mix of 4s and 8s, the RACF external security module passes back a return code
of 4.
All failing SAF/RACF return codes and RACF reason codes are placed in the output
parameter field in XAPLDIAG, to be returned to DB2. This information is then
available to DB2, SQL, or other programs to obtain diagnostic information from it.
Table 35 illustrates the method used to do this translation.
|
All 4s
04
All 8s
08
Mix
04
All 4s
All 4s
04
All 4s
All 8s
04
All 4s
Mix
04
All 8s
All 4s
08
All 8s
All 8s
08
All 8s
Mix
08
Mix
All 4s
08
Mix
All 8s
08
Mix
Mix
08
|
|
439
DB2
Setup
v Classification model (&CLASSOPT): 2
v Class name root (&CLASSNMT): DSN
v Class name suffix (&CHAROPT): 1
This is the default value, but it is not used with supplied classes.
v DB2 subsystem name: VHH1
v Profiles:
Defined in the MDSNTB class:
VHH1.BDA0828.EMP.ALTER
- AUDIT(FAILURES(READ))
- UACC(NONE)
Defined in the DSNADM class:
VHH1.SYSADM
- AUDIT(FAILURES(READ))
- UACC(NONE)
- ID(MIKEJ) ACCESS(READ)
v User ID MIKEJ has SYSADM authority.
Profile checking
RACF checks the following resources:
1. VHH1.BDA0828.EMP.ALTER in class MDSNTB
Results:
v Access is denied (return code 8).
v No failure message (ICH408I) is issued.
v No audit records are created.
2. VHH1.JBW2000.DBADM in class DSNADM
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
3. VHH1.SYSADM in class DSNADM
Results:
v Access is granted (return code 0).
v No failure message (ICH408I) is issued.
v No audit records are created.
Final result
The RACF external security module sends a return code of 0 to DB2.
Setup
v Classification model (&CLASSOPT): 2
v Class name root (&CLASSNMT): DSN
v Class name suffix (&CHAROPT): 1
440
DB2
This is the default value, but it is not used with supplied classes.
v DB2 subsystem name: VHH1
v Profiles:
Defined in the MDSNTB class:
VHH1.BDA0828.EMP.ALTER
- AUDIT(ALL(READ))
- UACC(NONE)
- ID(MIKEJ) ACCESS(NONE)
Defined in the DSNADM class:
VHH1.SYSADM
- AUDIT(ALL(READ))
- UACC(NONE)
- ID(MIKEJ) ACCESS(READ)
v User ID MIKEJ has SYSADM authority.
Profile checking
RACF checks the following resources:
1. VHH1.BDA0828.EMP.ALTER in class MDSNTB
Results:
v Access is denied (return code 8).
v No failure message (ICH408I) is issued.
v No audit records are created.
2. VHH1.JBW2000.DBADM in class DSNADM
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
3. VHH1.SYSADM in class DSNADM
Results:
v Access is granted (return code 0).
v No failure message (ICH408I) is issued.
v An audit record is created, which includes the following log string data:
The VHH1.BDA0828.EMP.ALTER profile name
Input parameters identifying the request from DB2.
Final result
The RACF external security module sends a return code of 0 to DB2.
Setup
v Classification model (&CLASSOPT): 2
v Class name root (&CLASSNMT): DSN
v Class name suffix (&CHAROPT): 1
This is the default value, but it is not used with supplied classes.
v DB2 subsystem name: VHH1
Chapter 13. Controlling Access to DB2 Objects
441
DB2
v Profile:
Defined in the MDSNTB class:
VHH1.BDA0828.EMP.ALTER
- AUDIT(ALL(READ))
- UACC(NONE)
- ID(MIKEJ) ACCESS(NONE)
v User ID MIKEJ has SYSADM authority.
Profile checking
RACF checks the following resources:
1. VHH1.BDA0828.EMP.ALTER in class MDSNTB
Results:
v Access is denied (return code 8).
v No failure message (ICH408I) is issued.
v No audit records are created.
2. VHH1.JBW2000.DBADM in class DSNADM
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
3. VHH1.SYSADM in class DSNADM
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
4. VHH1.BDA0828.EMP.ALTER in class MDSNTB
Results:
v Access is denied (return code 8).
v Failure message (ICH408I) is issued.
v An audit record is created, which includes the following log string data:
The VHH1.BDA0828.EMP.ALTER profile name
Input parameters identifying the request from DB2.
Final result
The RACF external security module sends a return code of 8 to DB2.
Setup
v Classification model (&CLASSOPT): 2
v Class name root (&CLASSNMT): DSN
v Class name suffix (&CHAROPT): 1
This is the default value, but it is not used with supplied classes.
v DB2 subsystem name: VHH1
v Profiles:
Defined in the MDSNTB class:
442
DB2
VHH1.BDA0828.EMP.ALTER
Defined in the DSNADM class:
VHH1.SYSADM
- AUDIT(ALL(READ))
v User ID MIKEJ has SYSADM authority.
Profile checking
RACF checks the following resources:
1. VHH1.BDA0828.EMP.ALTER in class MDSNTB
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
2. VHH1.JBW2000.DBADM in class DSNADM
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
3. VHH1.SYSADM in class DSNADM
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
Final result
The RACF external security module sends a return code of 4 to DB2.
Setup
v
v
v
v
v Profiles:
Defined in the MSLH1TB1 class:
VHH1.BDA0828.EMP.ALTER
- AUDIT(ALL(READ))
- UACC(NONE)
Defined in the SLH1ADM1 class:
VHH1.SYSADM
- AUDIT(ALL(READ))
- UACC(NONE)
- ID(MIKEJ) ACCESS(READ)
Chapter 13. Controlling Access to DB2 Objects
443
DB2
v User ID MIKEJ has SYSADM authority in DB2.
Profile checking
RACF checks the following resources:
1. VHH1.BDA0828.EMP.ALTER in class MSLH1TB1
Results:
v Access is denied (return code 8).
v No failure message (ICH408I) is issued.
v No audit records are created.
2. VHH1.JBW2000.DBADM in class SLH1ADM1
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
3. VHH1.SYSADM in class SLH1ADM1
Results:
v Access is granted (return code 0).
v No failure message (ICH408I) is issued.
v An audit record is created, which includes the following log string data:
The VHH1.BDA0828.EMP.ALTER profile name
Input parameters identifying the request from DB2.
Final result
The RACF external security module sends a return code of 0 to DB2.
Setup
v Classification model (&CLASSOPT): 1
v Class name root (&CLASSNMT): DSN
This is the default value, but it is not used in single-subsystem scope.
v Class name suffix (&CHAROPT): 1
v DB2 subsystem name: VHH1
v Profiles:
Defined in the MVHH1TB1 class:
VHH1.BDA0828.EMP.ALTER
- AUDIT(ALL(READ))
- UACC(NONE)
Defined in the VHH1ADM1 class:
SYSADM
- AUDIT(ALL(READ))
- UACC(NONE)
- ID(MIKEJ) ACCESS(READ)
v User ID MIKEJ has SYSADM authority.
444
DB2
Profile checking
RACF checks the following resources:
1. BDA0828.EMP.ALTER in class MVHH1TB1
Results:
v Access is denied (return code 8).
v No failure message (ICH408I) is issued.
v No audit records are created.
2. JBW2000.DBADM in class VHH1ADM1
Results:
v No profile is found (return code 4).
v No failure message (ICH408I) is issued.
v No audit records are created.
3. SYSADM in class VHH1ADM1
Results:
v Access is granted (return code 0).
v No failure message (ICH408I) is issued.
v An audit record is created, which includes the following log string data:
The VHH1.BDA0828.EMP.ALTER profile name
Input parameters identifying the request from DB2.
Final result
The RACF external security module sends a return code of 0 to DB2.
Common problems that could occur as a result of defining special classes in the
class descriptor table (CDT) follow:
v A class is not defined in the CDT.
This results in a return code of 4 (profile not found) from the RACF external
security module.
v If class is defined in the static CDT, there is incorrect linkage editor procedures
from the CDT.
v If class is defined in the static CDT, it is link-edited properly but a re-IPL has not
occurred to pick up the changes.
v If class is defined in the dynamic CDT, the CDTINFO class was not RACLISTed
or refreshed to pick up the changes.
v Single-subsystem scope class names are being used and a new subsystem is
using the RACF external security module before classes for the subsystem have
been defined.
v Messages IRR900A, IRR901A, IRR902A, and IRR903A are issued because the
RACF external security module could not initialize correctly.
1. Check to see if DB2 classes are active.
Chapter 13. Controlling Access to DB2 Objects
445
DB2
2. Determine if and why RACLISTing of classes is failing in exit by examining
RACROUTE REQUEST=LIST return and reason codes.
3. Check to see if any other required resources (such as GETMAIN, for
example) are obtainable.
|
|
|
|
446
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
447
448
449
449
449
449
450
451
This chapter describes using RACF with z/OS DCE or OS/390 DCE.
Attention
Read z/OS DCE Introduction if you need an overview of DCE technology and
terminology.
Also, see z/OS UNIX application considerations on page 551 in Chapter 20,
RACF and z/OS UNIX.
The interoperation of RACF with DCE enables DCE application servers on z/OS or
OS/390 to map a DCE user identity (principal) to a RACF user ID. The mapping of
a DCE principal to a RACF user ID is known as cross linking. The identity cross
linking information contained in RACF can be used by:
v z/OS DCE and OS/390 DCE to determine which users are eligible for single
signon to DCE
v Application servers residing on z/OS or OS/390 to determine the RACF user ID
of clients
447
DCE
DCE Principal
RACF
MVSSYS
dce user1
dce group1
dce org1
DCE
RGY
uuid...
APPLDATA
RACF user ID
(MVSUSER)
Between the DCE segment associated with a RACF user profile and the
DCEUUIDS class profile, a RACF identity is cross linked to its corresponding DCE
identity.
mvsexpt
For more information on these utilities, see z/OS DCE Administration Guide.
448
DCE
Using the DCE segment and the DCEUUIDS class profile, applications using a new
SAF callable service, extensions to the kernel, or extensions to the C function
library can determine a users DCE or RACF identity. Ensure that DCE segment
definitions and DCEUUIDS class profiles include the cell UUID.
449
DCE
become a principal of the mvssys DCE cell. The UUID for the mvssys DCE cell is
003456ab-ecb7-7de3-ebda-95531ed63dae.
ALTUSER CSMITH +
DCE(UUID(004386ea-ebb6-1ec3-bcae-10005ac90feb) +
DCENAME(charles) HOMECELL(/.../mvssys.endicott.ibm.com) +
HOMEUUID(003456ab-ecb7-7de3-ebda-95531ed63dae))
Figure 41. Changing a DCE user with ALTUSER
You should list the DCE segment information for the RACF user ID CSMITH to
ensure that no errors were made entering the data for the ALTUSER command
shown in the example. The corresponding DCE mapping profile in the DCEUUIDS
class is updated to reflect the new information automatically.
LISTUSER CSMITH NORACF DCE
USER=CSMITH
DCE INFORMATION
---------------UUID= 004386ea-ebb6-1ec3-bcae-10005ac90feb
DCENAME= charles
HOME CELL UUID= 003456ab-ecb7-7de3-ebda-95531ed63dae
HOME CELL= /.../mvssys.endicott.ibm.com
DCE AUTOLOGIN= NO
Figure 42. Output of the LISTUSER Command for user CSMITH
450
DCE
b. You must use the DCE storepw to keep current your DCE password that is
stored in RACF. If you change your DCE password that is known to the
DCE registry, you must use the storepw command to save your new DCE
password in RACF.
For more information on single signon restrictions, see z/OS DCE
Administration Guide. For a discussion of the DCE storepw command, see
z/OS DCE Command Reference.
c. You must define a DCE.PASSWORD.KEY profile with an SSIGNON
segment in the KEYSMSTR class, and activate the KEYSMSTR class.
See Steps for storing a key in a KEYSMSTR profile on page 285.
When using the secured signon facilities with encryption, some of the Integrated
Cryptographic Service Facility (ICSF) modules must be put in the link pack area
(LPA) so these modules can be accessed from RACF. The modules can be
dynamically loaded, or added to PLPA or MLPA with the respective PARMLIB
members. The modules are as follows:
v CSNBCKI
v CSNBDEC
v CSNBENC
v CSNBKRC
v CSNBKRD
v CSNBKRW
Depending on the release of ICSF, some of these modules may not exist. RACF
checks ICSF and only uses existing modules.
451
452
Note: The Tivoli principal name is displayed in the title bar of the Tivoli desktop.
You may also issue the following command to determine which principal
name Tivoli uses when you issue a Tivoli command or start the GUI from the
current shell:
objcall objcall 0.0.0 get_oserv o_get_principal
For more information about the Tivoli principal name, see Tivoli Framework
Planning and Installation Guide.
The APPLDATA field of this profile must contain the RACF user ID. It is
recommended that each Tivoli administrator user ID map to one and only one
RACF user ID. The sharing of a RACF user ID by multiple Tivoli administrators is
not recommended. Therefore, a profile in the TMEADMIN class should exist for
each Tivoli administrator who is able to perform RACF administration.
For example, the Tivoli administrator jdiamond in the Tivoli Management Region
pok01 has a RACF user ID of JOHND. To define a general resource profile in the
TMEADMIN class to associate jdiamond in the Tivoli Management Region pok01
with the RACF user ID JOHND, a RACF administrator with SPECIAL authority would
issue:
RDEFINE TMEADMIN jdiamond@pok01 APPLDATA(JOHND)
The RACF user IDs used by Tivoli administrators must have the appropriate RACF
authority to manage the set of resources these administrators are responsible for.
Unless the set of managed RACF resources is very limited, the RACF user ID will
require the SPECIAL attribute. To manage the global audit setting in resource
profiles, the RACF user ID will require the AUDITOR attribute.
453
Tivoli
For example, to list a TMEADMIN class profile for Tivoli administrator jdiamond in
the Tivoli Management Region pok01, enter:
RLIST TMEADMIN jdiamond@pok01
NAME
---JDIAMOND@POK01
OWNER
-------IBMUSER
UNIVERSAL ACCESS
---------------NONE
YOUR ACCESS
----------ALTER
INSTALLATION DATA
----------------NONE
APPLICATION DATA
---------------JOHND
AUDITING
-------FAILURES(READ)
NOTIFY
-----NO USER TO BE NOTIFIED
Figure 43. RLIST Output of a TMEADMIN Class Profile
454
WARNING
------NO
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
455
456
457
459
461
461
462
463
463
464
464
465
466
This chapter describes factors that Information Management System (IMS) owners
and administrators should consider when using IMS and RACF. Note that many of
the names used in the scenarios are arbitrary. The names you use for user IDs,
group names, and other such items will differ, and the procedures that you decide
to follow may vary from those given as examples here.
455
IMS
These two RACF commands build a RACF profile for a group named IMSPROD
and a profile for a user whose identifier is IMS and who is a member of the group
IMSPROD. In both cases, the OWNER of these profiles is a user called IMSADMIN.
(The owner of a RACF profile is allowed to issue other RACF commands that affect
the profile. The owner can alter or delete the profile.)
To protect the IMS libraries, a person with appropriate RACF authority can issue the
following type of RACF commands:
ADDSD (IMSPROD.RESLIB,IMSPROD.PROCLIB,IMSPROD.ACBLIB, ...)
UACC(NONE) AUDIT(ALL) OWNER(IMSADMIN)
PERMIT IMSPROD.RESLIB ID(IMS,appropriate-users-or-groups) ACCESS(READ)
PERMIT IMSPROD.RESLIB ID(appropriate-users-or-groups) ACCESS(UPDATE)
A UACC of READ says that anyone can read the data set. A UACC of NONE says
that, to do anything with the data set, the individual (or a group to which the
individual belongs) must be in the access list for the data set with the appropriate
level of permission. In order to prohibit unauthorized parties from opening the IMS
system libraries, you should specify NONE as the UACC for these data sets.
IMS libraries (such as RESLIB, PROCLIB, ACBLIB, FORMAT, MATRIX, and JOBS),
and IMS system data sets (such as QBLKS, SHMSG, and LGMSG) should be
456
IMS
RACF-protected with access granted to IMS (or to the group to which IMS belongs)
at the appropriate level, and to the people whose job it is to maintain these libraries
and system data sets.
After access to the IMS system data sets has been controlled to an acceptable
level, the next logical step is to control access to the IMS database data sets. This
can be done in the same manner as described for the IMS system data sets or
access to these data sets can be controlled with generic profiles.
A generic profile provides an access list for a large number of resources (for
example, all data sets whose first two qualifiers are IMS.PROD).
As the appropriate security or group administrator, you can issue RACF commands
similar to the following to establish a generic profile:
ADDSD IMS.PROD.* OWNER(IMSADMIN) AUDIT(ALL) UACC(NONE|READ)
PERMIT IMS.PROD.* ID(IMS,appropriate-users-or-groups) ACCESS(CONTROL)
PERMIT IMS.PROD.* ID(appropriate-users-or-groups) ACCESS(READ)
Issuing the RACF PERMIT command for the user IMS with an access level of
CONTROL is necessary because IMS issues a VSAM VERIFY for its VSAM data
sets. (VERIFY requires a CONTROL level of access.) For OS data sets, IMS opens
the data set at the highest intent in the processing option for the PSB used. A
CONTROL level of access for an OS data set is equivalent to UPDATE. Batch IMS
checks the processing intent of the PSB to be used, and, if it is READ, requests an
open at the READ level.
Note: For data set protection to be complete, the catalogs for the IMS system
libraries and data sets and the database data sets must be RACF-protected
at the appropriate level.
The steps outlined above provide a great deal of control for a small amount of
effort. No IMS system generation or utility runs are needed to achieve this important
degree of control.
457
IMS
If RCLASS=ABC had been specified, the RACF resource classes for that control
region would be:
TABC for transactions
GABC for resource grouping profiles for transactions
AABC for the application resource class.
IMS uses these class names to perform checks for resource access. For example,
with transaction authorization active, IMS issues RACROUTE
REQUEST=FASTAUTH when a transaction is received. On RACROUTE
REQUEST=FASTAUTH, IMS requires that the user who issued the /SIGN ON
command have READ access authority to the specified resource.
By making the class names unique for each IMS control region, it is possible to
have the same transaction name on a production system and a test system, yet
have different access lists for each of them with no ambiguity. Table 36 shows this
relationship.
The class names must be defined in IMS as outlined above, and they must also be
defined to RACF. RACF supplies the following IMS-related classes:
Table 36. IMS Class Names, How They Are Specified, and Their Usage
Default Class Names
Usage
AIMS
Axxx
Application (AGN)
CIMS
Cxxx
Command
DIMS
Dxxx
FIMS
Fxxx
GIMS
Gxxx
HIMS
Hxxx
OIMS
Oxxx
Other
PIMS
Pxxx
Database
QIMS
Qxxx
SIMS
Sxxx
Segment in database
TIMS
Txxx
Transaction (trancode)
UIMS
Uxxx
WIMS
Wxxx
If your installation wishes to define any other class names, add the classes to the
class descriptor table (CDT). For more information, see Chapter 8, Administering
the Dynamic Class Descriptor Table (CDT), on page 287.
|
|
|
Notes:
1. By the IMS system generation process, the RACF resource class name is
determined by concatenating the first letter of the resource classes shown
above with the RCLASS value specified in the SECURITY macro in the IMS
generator. If no value is specified, the default IMS is used. These default class
names are shipped with RACF.
2. The IMS resource classes that you define should be created with the same
attributes as the supplied IMS classes.
Activating the IMS classes in RACF has no effect on IMS until options are specified
in the IMS system and IMS is started with the options in effect.
458
IMS
(or FORCSIGN)
The RACFTERM operand specifies that IMS is to invoke RACF to identify and
verify the user who issues the /SIGN ON command.
SIGNON or FORCSIGN provide the appropriate values for the EXECUTE statement
in the IMS procedure. SIGNON can be overridden by the master terminal operator
during /NRE processing to deactivate sign on processing. FORCSIGN indicates that
the master terminal operator cannot override sign on processing during an IMS
start.
If this is all that is done, terminal operators can optionally issue the /SIGN ON
command. If operators have been defined to RACF, and if they provide their
459
IMS
password correctly, the /SIGN ON command is accepted and all of the actions
described earlier take place. (A rejected sign on results in a DFS2467 message and
a X'10' log record is written.)
To define a user to RACF, a person with proper authorization issues the following
RACF command from TSO:
ADDUSER userid NAME(user-name)
This RACF command causes a user profile to be created in the RACF data base
with a number of defaults. The users password is set equal to the definers group
name and is marked expired. The users default group is set to the definers logon
group. The defined user has no unusual authorities of any kind as far as RACF is
concerned. (To find information on the ADDUSER command, see z/OS Security
Server RACF Command Language Reference or enter HELP ADDUSER from a
TSO terminal.)
You can make a user a member of more than one group by using the RACF
CONNECT command.
Without doing anything other than just described, a user can sign on to IMS, but is
not required to. (Note that any RACF-defined user can use the /SIGN ON command
to gain access to a terminal connected to an IMS control region.)
There are several options available to ensure that users sign on to a particular IMS
control region. These options are described from the simplest to the more complex.
The easiest method to enforce sign on for all users is to run the IMS security
maintenance utility (SMU) with the following:
)(SIGN
STERM ALL
Assuming that the IMS system generation options referenced previously had been
done, this run of the security maintenance utility and the EXECUTE options
specified by the SECLVL operand indicate that IMS is to pass the terminal identifier
of the terminal to RACF when a user signs on. If the RACF TERMINAL class is
active, RACF checks the users authority to use the terminal.
The return code RACF supplies to IMS indicates whether access to the terminal is
to be allowed. There are conditions in RACF that determine this return code. The
first of these conditions is set by the RACF SETROPTS command:
SETROPTS CLASSACT(TERMINAL) TERMINAL(READ)
460
IMS
If you want to be selective about which users are to be forced to sign on, see
Controlling Access to IMS Physical Terminals on page 463.
Note that the IMS command processor is not conversational. Therefore, there is no
opportunity to format the screen before a sign on. Because the screens on the
terminals are not formatted for the /SIGN ON command, the users passwords are
displayed. IBM recommends that you create message format screens to provide the
sign on function so that the operator can enter /FOR SIGN and receive a formatted
screen that requests the password in a non-display field.
where ims-idn is the IMSID value specified on the IMSCTRL macro. (The default
value for IMSID is IMSA.)
IMS supplies the control regions application identifier to RACF during sign on.
RACF checks to see if the user who is signing on has permission to use the
resource pointed to by the APPLID. If no profile in the APPL class has been defined
to RACF, it is assumed that the application is unprotected. RACF makes this check
only at the time a terminal operator uses the /SIGN ON command.
When IMS requires sign on, all users of a particular IMS control region must be
identified and their user IDs, or the names of the groups to which they belong, must
be in the access list for that particular control region name.
Note: You should consider assigning user IDs with the PROTECTED attribute to
the started procedures associated with IMS control regions. For more
information, see Using Started Procedures on page 143.
You can also include the TRANAUTH value in the initial system generation
described earlier in this chapter. As long as the RCLASS value agrees with the
RACF class descriptor table (CDT), the fact that no transaction profiles have been
defined does not affect IMS operation.
The TRANAUTH value tells IMS to do two things:
Chapter 16. RACF and Information Management System (IMS)
461
IMS
v During initialization of the control region, IMS issues RACROUTE
REQUEST=LIST,GLOBAL=NO to copy all of the profiles in the specified class
(TIMS, GIMS) into system storage.
v When IMS receives a message, IMS issues REQUEST=FASTAUTH to check the
users authority to the resource. REQUEST=FASTAUTH checks the in-storage
profiles to determine the users authority. If the profile is found,
REQUEST=FASTAUTH checks to see whether the user is allowed to access the
resource. The return code from REQUEST=FASTAUTH indicates the status of
the request: access-allowed, access-not-allowed, or profile-not-found. Because
IMS treats the profile-not-found return as a not-protected condition, it is perfectly
acceptable to have transaction authorization active, but not have any profiles
specified for a given control region. The amount of overhead caused by a
not-found condition is small.
The RACFTERM value tells IMS to use RACF to process the /SIGN ON command.
Issuing these two RACF commands is the same as issuing RDEFINE and PERMIT
commands for each of the four transactions, but there is no need to define the
transactions individually. They share a common profile containing all other RACF
information such as ownership, UACC, statistics, and the access list.
You can, of course, have an individual profile for a transaction that is already
defined in the Gxxx class. If both a group profile and an individual profile exist,
REQUEST=LIST merges the two profiles and uses the merged profile. If there are
conflicting specifications in the two profiles, REQUEST=LIST resolves these through
a set of rules that can be specified by flags in RACF exit routines. Although RACF
allows you to name a transaction more than once (for example, once as a member
of an entity in the GIMS class and once as a member of the TIMS class), you
should avoid it, because the REQUEST=LIST function merges the access lists from
the two entries. This merging usually causes excessive use of storage and access
lists that are not what the administrator intended.
After you have set the IMS classes active with the RACF SETROPTS command,
and the IMS start up procedure specifies TRANAUTH, the transactions defined to
RACF at that time are RACF-protected. IMS issues REQUEST=FASTAUTH at four
different times:
v Before placing a transaction in the scheduler message block
v When a CHNG call is issued to a modifiable IO/PCB
v When an ISRT call to a scratch pad area contains a transaction name
v When the /SET, /LOCK, and /UNLOCK commands contain transaction names
Note: Checking calls have an effect on a transaction-to-transaction switch. A
terminal operator could sign on and enter a transaction that may or may not
be RACF-protected. If the transaction were to stay in the queue long enough
to be scheduled after the operator has signed off, there would no longer be a
462
IMS
valid RACF token associated with the terminal. If the first transaction then
invoked a protected transaction through a CHNG call to a modifiable
IO/PCB, the scheduling of the protected transaction could fail.
IMS uses RACF to force reverification that the operator who signed on to a given
terminal is the same one who is entering a second or subsequent transaction. This
is done by specifying REVERIFY in the APPLDATA field of the transaction profile:
RDEFINE Txxx tran-name UACC(NONE) APPLDATA(REVERIFY)
Each time users enter this transaction code, they must enter their RACF password
in the place where an IMS password would go if the transaction were
password-protected.
Using this method prevents the problems associated with terminal operators leaving
their terminals in a signed-on state. However, it has adverse implications on
message formats and on usability and productivity. It would be better if supervisors
impressed on the terminal operators the importance of not leaving their terminals in
a signed-on state.
The transaction authorization exit in IMS could be used to check the elapsed time
between transactions, but even this does not ensure that a transaction cannot be
invoked by a person other than the one who signed on and left the terminal
unattended.
You can use generic names in the transaction class (Txxx) or as members in the
group class (Gxxx) to cover multiple transactions with similar names and authority
requirements.
(VTAM,TCAM)
(BTAM relative line and term #)
Entries like the above cause IMS to pass the terminal identifier to RACF during
/SIGN ON processing. If the TERMINAL class is active, RACF performs terminal
authorization checking to ensure that the user is authorized to sign on to that
terminal. For a complete description of setting protection for terminals, see
Protecting Terminals on page 235.
463
IMS
transaction could access it through a batch message processing region by putting
the proper values in the EXECUTE statement for the BMP.
The application authorization security or resource access security facility of IMS can
use RACF to provide additional control of who can access the resources of the
control region through dependent regions. The vehicle through which this is done in
IMS is the application group name (AGN).
464
IMS
RACF-protected with a UACC of NONE, and the user ID associated with the
IMS started procedure should be in the access list with at least READ
permission.
In addition to this, the EXECUTE statements for the dependent regions must
specify the IMSID of the control region (IMSCTRL macro), the application
group name (defined to RACF and in the security matrix), and, for batch
message processing regions, the names of the resources to be accessed by
this region.
You must run the security maintenance utility to assign control region resource
names to a given application group name.
For message processing regions, the EXECUTE operands include only the control
region name and the application group name. For example:
If a message processing region tries to schedule a transaction that is not in the
)(AGN agname-2
AGTRAN ALL
AGLTERM lterm-n
Figure 44. Message Processing (MPP) Example
465
IMS
represented by the IMSJOBS DD name. It should be RACF-protected, and the
IMS started procedure name should be in the access list with READ access. No
one should have access to this data set as a matter of course. When the data
set must be changed, RACF commands can be used to allow update access to
it. The access authorization can then be revoked after the data set has been
updated.
2. The second part of the two-step process is an IMS function only. IMS checks
the name of the transaction or PSB or logical terminal that is being requested
by the dependent region against the entries in the security matrix and allows or
disallows use depending on whether the name is in the entry for the application
group name.
For message processing regions, application resource security is somewhat like
class scheduling in that transactions can be scheduled only in regions whose
application group name allows them.
For batch message processing regions, this level of control prevents
unauthorized users from starting an MVS job that can access the resources
defined in the control region.
Summary
You can enhance the security and integrity features of IMS to a significant degree
by using RACF.
Any security mechanism is only as good as the management control of the people
who use the system. IMS and RACF provide the tools to enhance control of a
critical resource. It is managements responsibility to see that the controls that are
implemented are working the way they are supposed to work, and that variances
are reported to and acted on by management.
In this regard, RACF, with its lists of users and lists of resources, allows
management to delegate the authority to the owners of these entities in such a way
as to maintain the separation of duties while maintaining a flexible, responsive
access control strategy.
In order to be effective, access control must allow management to adopt the
principle of least possible privilege for those resources that are deemed to be
highly sensitive. This principle says that access to these resources is controlled in
such a way that permission to use them is restricted to just those people whose
normal duties require their use. Any unusual use of the resource should be
approved by an administrator or manager, as well as the owner of the resource.
The delegation mechanism in RACF and the easy, nontechnical commands that
change the relationship of a user to a resource mean that adopting the principle of
least possible privilege need not be burdensome nor inflexible when unusual
circumstances dictate that access permission should be changed. When an
unforeseen circumstance requires a change in access privilege, the change can be
made by a nontechnical person with access to a TSO terminal, and management
can be alerted to review the fact that the change was made.
Through the use of RACF, the security functions of IMS can move out of the highly
centralized environment required previously and into a more flexible, responsive,
and secure environment.
466
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
Local
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
Nodes
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
468
469
469
470
470
470
471
471
471
473
474
474
474
474
475
476
476
477
477
477
478
478
478
480
480
481
481
482
483
483
485
488
488
490
490
491
494
495
497
498
499
499
500
500
500
500
501
503
504
504
505
506
506
467
JES
Spool Offload Considerations (JES2 Only) . . . .
Offloading Data . . . . . . . . . . . . .
Reloading Data . . . . . . . . . . . . .
How RACF Affects Jobs Dumped from and Restored
Dumping Jobs . . . . . . . . . . . . . .
Restoring Jobs . . . . . . . . . . . . .
Authorizing Console Access . . . . . . . . . .
MCS Consoles . . . . . . . . . . . . . .
Remote Workstations (RJP/RJE Consoles) . . . .
JES3 Consoles . . . . . . . . . . . . . .
Controlling Where Output Can Be Processed . . . .
Authorizing the Use of Your Installations Printers . . .
Authorizing the Use of Operator Commands . . . .
Commands from RJE Work Stations . . . . . .
Commands from NJE Nodes . . . . . . . . .
Who Authorizes Commands When RACF Is Active .
. . .
. . .
. . .
to Spool
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . . . .
. . . . .
. . . . .
(JES3 Only)
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. 506
. 506
. 507
507
. 507
. 507
. 507
. 507
. 508
. 510
. 510
. 511
. 512
. 512
. 512
. 513
You can use JES initialization statements, JES installation exits, RACF, or any other
functionally equivalent program to provide security for JES.
This chapter describes how to use RACF to provide security for JES. In this
chapter, the term JES refers to both JES2 and JES3, except when there is a
difference between the two.
You must gather a great deal of information from your JES system programmer
about specific resources and access requirements. If JES2 is installed on your
system, the JES system programmer should use z/OS JES2 Initialization and
Tuning Guide.
If JES3 is installed on your system, the JES system programmer should use z/OS
JES3 Initialization and Tuning Guide.
468
JES
Be sure to refresh the class after you create the entry. Issue:
SETROPTS RACLIST STARTED REFRESH
ADDUSER jes-userid
DATA(JES started procedure)
NOPASSWORD
DFLTGRP(appropriate-group)
469
JES
When you specify BATCHALLRACF, any batch job that does not have a
RACF-defined user specified on the USER parameter of the JOB statement, or
propagated security information associated with it, fails.
Specifying NOBATCHALLRACF allows such jobs to run.
With this operand in effect, any XBM job that does not have a RACF-defined user
ID and password on the JOB statement, or propagated RACF identification
associated with it, fails.
Specifying NOXBMALLRACF allows XBM jobs to run without RACF user IDs.
Note: On systems with the XBMALLRACF operand in effect, the BATCHALLRACF
operand controls batch jobs other than jobs that run under an execution
batch monitor (XBM).
470
JES
You should keep a record of user IDs and group name handy for use in securing
other system resources such as spool data, console access, and commands as well
as for updating groups in the future.
accounting-information,USER=TOM
All access checks are done with TOMs user ID. Any auditing records produced by
RACF because of the surrogate jobs actions include the information that the job is
a surrogate job (unless the PASSWORD parameter is specified on the JOB
statement).
471
JES
Attention
A user should not allow another user to act as surrogate user unless the
surrogate user can be trusted as much as the execution user is trusted. This
is because the surrogate user can do anything the execution user can do
(unless the surrogate user lacks access to a security label that protects a
resource). For example, the surrogate user can submit a job to copy, alter, or
delete the execution users data.
The surrogate user must specify the execution users user ID on the USER
parameter on the JOB statement and must not specify a password. If the
PASSWORD parameter is specified with a password, surrogate processing is not
performed, and audit records generated by the jobs activities do not indicate that
the job is a surrogate job. This applies not only to jobs submitted through the TSO
SUBMIT command, but any time the submitter is a RACF-defined user.
Note: If the SECLABEL class is active, and the SETROPTS MLS option is in
effect, the security label that the job runs under must be equal to or greater
than the current security label of the submitter, and the submitter must have
READ access authority to the security label under which the job runs. After
job verification is complete, a job submitted by a surrogate user runs as
though the execution user had submitted the job. If a SECLABEL is not
specified, the surrogate users job gets the surrogates default SECLABEL,
not the default SECLABEL of the execution user.
To allow surrogate users, do the following:
1. Ensure that the installation exit for the TSO SUBMIT command (IKJEFF10)
does not prevent users from submitting jobs with job names that do not match
their user IDs. The installation exit supplied by IBM meets this requirement,
because it does not check the JCL of submitted jobs. For more information, see
z/OS TSO/E Customization.
2. If your installation implemented the sample ICHRTX00 exit from SYS1.SAMPLIB
member RACINSTL to enable surrogate user processing, you should migrate to
profiles in the SURROGAT class. After RACF is installed, the code in the
ICHRTX00 exit that checks $SUBMIT.userid profiles is not used. You should
copy the $SUBMIT.userid profiles to SURROGAT profiles as follows:
RDEFINE SURROGAT execution-userid.SUBMIT
FROM($SUBMIT.execution-userid) FCLASS(FACILITY)
3. Define resource profiles in the SURROGAT class for each execution user who
needs to allow others to be surrogate users:
RDEFINE SURROGAT execution-userid.SUBMIT UACC(NONE) OWNER(execution-userid)
Note: Specifying the OWNER operand allows the execution user to issue the
PERMIT command for this profile.
4. To specify that another user can act as the surrogate for an execution user, give
the surrogate user READ access authority:
PERMIT execution-userid.SUBMIT CLASS(SURROGAT) ID(surrogate-userid) ACCESS(READ)
Only users and groups that have READ access authority are allowed to submit
jobs on behalf of another user.
To check whether a user can submit jobs for another user, make sure the user
(or a group the user is a member of) is in the access list with READ access
authority:
472
JES
RLIST SURROGAT execution-userid.SUBMIT AUTHUSER
5. When you are ready to control access using the SURROGAT profiles, activate
the SURROGAT class:
SETROPTS CLASSACT(SURROGAT)
To turn off surrogate support for a particular user, delete the profile for that
user. To turn off surrogate support for all users, deactivate the SURROGAT
class.
NJE Notes:
If the submitter of a job is a started procedure, the execution node is not checked
during SURROGAT processing.
473
JES
4. If you have controlled a user ID using the PROPCNTL class, and that user
wants to submit a batch job to run from that user ID, the JOB statement must
contain both the user ID and proper password. For example, if user A submits a
job with USER=A, PASSWORD=password must also be specified.
However, if a different user wants to submit a job using the controlled user ID,
that user may either specify the user ID and password as above, or may use
the facilities provided by the SURROGAT class and just specify the user ID. For
example, if you controlled user A using the PROPCNTL class, user B could
submit a job, specifying only USER=A with the appropriate SURROGAT
authorization.
Submitting
node
474
JOB
Store and
forward
node
JOB
Execution
node
JES
User verification for NJE jobs normally is done at the execution node. However,
RACF authorization checking may occur additionally at the submitting node,
depending on the following:
v Those jobs sent using the JES2 /*ROUTE XEQ statement or /*XEQ statement
are verified at the execution node only.
v Those jobs sent using the JES2 /*XMIT statement or the JES3 //*ROUTE XEQ or
//XMIT statement have their first JOB statement verified at the submitting node
and their second JOB statement verified at the execution node.
Submitter information is propagated from trusted nodes. The submitter information
is:
v The token for a verified first job card
v The original submitters token if the job was submitted from an internal reader
v The unknown user token if the job was submitted from a physical reader
v NJE header information (no token available) if the job was submitted from a
downlevel node
Whether a job is accepted is based on a combination of the submitters ID, group,
or security label. Whether security information is propagated and translated is
based on the submitters ID (as taken from above). Job acceptance and translation
is done using profiles in the NODES class. RACF finds the best fit among the
profiles in the NODES class and uses the information specified in the UACC and
ADDMEM information.
For more information, refer to Authorizing Network Jobs and SYSOUT (NJE) on
page 482.
Submitting
node
JOB
Execution
node
SYSOUT
Printing
node
For inbound SYSOUT, user verification occurs at the printing node instead of the
submitting node (as it can for inbound jobs). On the printing node, RACF
authorization checking occurs in the NODES class, as it does for inbound jobs.
RACF finds the best fit among the profiles in the NODES class and uses the
information specified in the UACC and ADDMEM information.
Whether the SYSOUT is accepted is based on a combination of the owners ID,
group, or security label. Whether the security information is accepted and translated
is based on the owners ID taken from:
v The job token from the NJE header as verified at the executing node
v If no token is available (SYSOUT is from a downlevel node), the owner is
considered to be the NJE undefined user as defined by:
SETROPTS(JES(NJEUSERID(userid)))
475
JES
v The submitting node is defined as a local node in the &RACLNDE profile in the
RACFVARS class. In this case, the submitting user and group are used as the
SYSOUT owner values and are unchanged (no translation).
v The NODES profile that matches is the profile named submittingnode.USERS.submitter and UACC(CONTROL) is specified.
If there is a translate value, but it is not &SUSER, the SYSOUT owner user ID is
the translate value. If it is &SUSER, the owner is the unchanged submitter user
ID. In addition, a look-up is done for the NODES profile that matches the form
submit-node.GROUPS.submit-group. If this profile has an ADDMEM translate
value, that value is used as the SYSOUT owner group. Otherwise, the
unchanged submit group is used. The UACC for this profile does not matter.
476
JES
477
JES
478
JES
Note: This example assumes that a SETROPTS GENERIC(JESJOBS) was
previously issued to turn generics on for this class and that a
SETROPTS REFRESH was then done.
3. Define profiles with UACC(NONE) for the job names you want to protect.
RDEFINE JESJOBS SUBMIT.nodename.jobname.userid UACC(NONE)
where:
nodename
jobname
userid
4. To allow users to submit jobs protected by the profile, give them READ access
authority:
PERMIT SUBMIT.*.PAYROLL*.* CLASS(JESJOBS) ID(PAYGROUP) ACCESS(READ)
Note: By denying a user sufficient access to a SUBMIT profile, you can prevent
that user from submitting jobs protected by the profile even if that user
knows the password or is an authorized surrogate user.
For example, the following profile would prevent jobs from being
submitted with USER01 as the user ID:
RDEFINE JESJOBS SUBMIT.*.*.USER01 UACC(NONE)
You can also provide conditional access to the job name, depending on
the class and ID of the port of entry (POE) associated with the submitter
of the job. The class name you would use is determined by what the
submitter is. For a regular submission from a TSO logon session, the
submitters POE is a terminal ID and the class name is TERMINAL. The
submitters POE can also be a JESINPUT device when the submitter of
the job is another job.
Making use of the job name conditional on the JESINPUT device is not
recommended because this is very much dependent on what type of job
was submitted. If the submitting job is a local job, its JESINPUT POE
would be an internal reader, a local card reader, or an RJE reader.
However, if the submitting job is an NJE job (for example, from another
JES node), its JESINPUT POE would be the node name. This
uncertainty can make the use of WHEN(JESINPUT) for the JESJOBS
class difficult. Therefore, you should be careful if you decide to use it.
For example, you can allow a user to submit a job only from a certain
terminal ID by specifying the WHEN(TERMINAL) operand on the
PERMIT command as follows:
PERMIT SUBMIT.*.PAYROLL*.* CLASS(JESJOBS) ID(USER01)
ACCESS(READ) WHEN(TERMINAL(terminal-ID))
Chapter 17. Providing Security for JES
479
JES
where terminal-ID is the terminal to which the submitter is logged on.
5. When you are ready to use the JESJOBS class to control who can submit jobs,
activate the JESJOBS class:
SETROPTS CLASSACT(JESJOBS)
Note: If you activate this class and create no profiles for it, users cannot submit
batch jobs.
Note: The qualifiers for CANCEL profiles have the same meaning as for
SUBMIT profiles. However, the jobname and userid qualifiers are
reversed in CANCEL and SUBMIT profiles. This is because of the
expected use of the profiles:
v It is likely that many users would submit jobs having common job
names, with certain exceptions. For example, the following profiles
would allow many users to submit jobs whose names begin with
PAYROLL, except when those jobs run with BENs authority:
RDEFINE JESJOBS SUBMIT.*.PAYROLL*.*
UACC(READ)
RDEFINE JESJOBS SUBMIT.*.PAYROLL*.BEN UACC(NONE)
v It is likely that one user would give another the authority to cancel all
of the first users jobs, with certain exceptions. For example, the
following profiles would allow JOE the authority to cancel BENs jobs,
except for his PAYROLL jobs:
RDEFINE JESJOBS CANCEL.*.BEN.* UACC(NONE)
PERMIT CANCEL.*.BEN.* CLASS(JESJOBS) ID(JOE) ACCESS(ALTER)
RDEFINE JESJOBS CANCEL.*.BEN.PAYROLL* UACC(NONE)
Users must have ALTER access authority to issue the CANCEL command for
the job.
4. If the JESJOBS class is not already active, activate the JESJOBS class:
SETROPTS CLASSACT(JESJOBS)
480
JES
2. Define a profile in the JESJOBS class as follows:
RDEFINE JESJOBS CANCEL.&RACLNDE.*.* UACC(NONE)
If there are any other JESJOBS resources that begin with CANCEL, you may
also need to permit users appropriate access to those.
4. If you have not already done so, activate the JESJOBS and RACFVARS
classes:
SETROPTS CLASSACT(JESJOBS RACFVARS)
5. Refresh SETROPTS RACLIST processing for the RACFVARS class for the
change to take effect:
SETROPTS RACLIST(RACFVARS) REFRESH
If, later, you decide that node POKMVS2 should no longer be treated as a local
node, do the following:
RALTER
RACFVARS &RACLNDE DELMEM(POKMVS2)
SETROPTS RACLIST(RACFVARS) REFRESH
SETROPTS GENERIC(JESJOBS) REFRESH
481
JES
v The user ID or group name of the users you want to authorize or restrict.
v The universal access authority to associate with each device. Valid access
authorities for input devices are:
NONE
READ
3. It is strongly recommended that you create a profile with a UACC of READ for
all JES input sources that are otherwise not defined:
RDEFINE JESINPUT ** UACC(READ)
5. When you are ready to start using the protection provided by the profiles you
have created, activate the JESINPUT class:
SETROPTS CLASSACT(JESINPUT) REFRESH
If you activate this class and create no profiles for it, users cannot submit batch
jobs.
482
JES
SYSOUT, or both. You must also determine which users and groups of users may
submit work, and the security labels that are valid for processing on your node.
483
JES
nodename.worktype.name
where:
nodename
Is the name of the node from which you expect inbound work. For
jobs, this is the submitting node. For SYSOUT, this is the execution
node.
Notes:
1. If &SUSER is specified as an ADDMEM value in a profile that
controls SYSOUT, a second check is done where nodename is
the submitting node.
2. If &DFLTGRP is specified as an ADDMEM value in a profile that
deals with groups (either jobs or SYSOUT), the users default
group is used.
3. It is recommended that you define a profile in the RACFVARS
class named &RACLNDE, and use &RACLNDE for all nodes
that are considered local to your system. For more information,
see Setting Up NODES Profiles on page 485.
worktype
USERJ
USERS
GROUPJ
GROUPS
SECLJ
SECLS
484
Is the actual user ID, group name, or security label you want
validated. If you are using NODES profiles to allow the use of these
input values, you must either define these values in your RACF
JES
database or use the ADDMEM operand to translate them into
acceptable values for your system. For jobs, the submitter
information is substituted. For SYSOUT, the owner information is
used. (See Understanding Mixed Security Environments on page
488.)
For example, the following profile controls whether jobs coming from user ID
WAYNE at node BERMUDA can be executed here:
BERMUDA.USERJ.WAYNE
You can optionally associate a local user ID with user ID WAYNE by specifying the
user ID on the ADDMEM operand.
You can specify generic characters in the profile name to control a wider range of
work. For example, if you place an asterisk in place of the nodename value, RACF
performs the requested type of validation for work from all nodes in the network
(unless a more specific profile exists). Examples of generic profiles in the NODES
class are shown later in this chapter. For more information, see Choosing Between
Discrete and Generic Profiles in General Resource Classes on page 198.
If you installed RACF and did not activate the NODES class, JES validates jobs
and SYSOUT in the following manner:
v JES runs only those jobs that are destined for your node and that have a valid
user ID and password on the job card if BATCHALLRACF is active. If
BATCHALLRACF is not active, the job can run without a RACF user ID.
v A security label of SYSHIGH is assigned to all SYSOUT destined for your node
(if security labels are being used) and may be printed only on those devices
permitted to SYSHIGH data. JES assigns the default user ID to this SYSOUT.
For information about default user IDs, see Understanding Default User IDs on
page 497.
v All work destined for another node remains unchanged.
If you choose to activate the NODES class, you must gather information from your
JES system programmer so that you can set up profiles to control the work entering
your system. The following sections identify the appropriate values for each type of
work.
485
JES
4. Define the local node or nodes in the &RACLNDE profile in the RACFVARS
class. Enter:
RDEFINE RACFVARS &RACLNDE ADDMEM(nodea nodeb...)
486
JES
POKMVS.SECLJ.A
POKMVS.SECLS.A
POKMVS.SECL%.A
POKMVS.USERJ.JOHN
POKMVS.USERS.JOHN
POKMVS.USER%.JOHN
POKMVS.USER%.TOM
POKMVS.USER%.*
POKMVS.*.*
*
*.USERJ.*
ADDMEM(ALPHA)
ADDMEM(ALPHA)
ADDMEM(JOHNNY)
ADDMEM(JOHNNY)
ADDMEM(NONAME)
ADDMEM(X)
UACC(READ)
UACC(READ)
UACC(NONE) /*never used*/
UACC(UPDATE)
UACC(UPDATE)
UACC(NONE) /*never used*/
UACC(NONE)
UACC(UPDATE)
UACC(READ)
UACC(NONE)
UACC(NONE)
487
JES
Authorizing Jobs
You can control which network jobs are authorized for processing at your installation
on the basis of submitters user ID, group name, or security label associated with
the inbound job.
To authorize or restrict jobs entering your system from another node, define a
NODES profile that specifies the criteria on which jobs are accepted. Ask your JES
system programmer for the following:
v The node names from which you expect jobs
v The user IDs or group names from which you expect jobs
v The security labels that you should accept
v The universal access authority, which determines how JES3 processes the job.
Table 37 on page 489 lists the universal access authorities you can assign and
defines the validation that RACF performs.
488
JES
Table 37. NODES Class Operands and the UACC Meaning for Inbound Jobs
Type of
Check
(operand)
User ID
(USERJ)
UACC
NONE
Fails the job.
READ
Verifies all security
information available
including password
validation.
UPDATE
CONTROL or greater
Security
Label
(SECLJ)
Note: For more details on how NJE jobs are processed, see Authorizing Jobs on page 488.
Note: If no profile exists for a job when the NODES class is active or if the NODES
class is inactive, RACF performs only user ID, group name, and password
validation without performing any translation.
If no profile exists for a job when the NODES class is active, RACF verifies all
security information available and a valid password and user ID must be specified
on the job card.
You can further reduce the risk of security exposures by allowing jobs to be
submitted from other nodes without requiring a password if the sending node
properly validates and transmits a users identity. You can either allow the
submitters identity (that is, the user ID and security label) to be propagated to the
job or you can specify that the submitter is a surrogate submitter who can submit
jobs on behalf of other users without needing a password.
For either case, you indicate in NODES class profiles which nodes are trusted to
provide valid submitter identity information. You can restrict the trusted information
to specified user IDs, group names, or security labels, if desired.
This submitter identity information in combination with user data on the job card is
used to determine the user identity to be used for the job.
489
JES
v If no user ID or password is specified on the job card, the submitters identity is
propagated to the job.8
v If a user ID but no password is specified, the user ID is allowed if the submitter is
authorized as a surrogate for that user ID.8
v If both user ID and password are specified on the job card, the submitters
identity is not propagated to the job, but will still be used for JESJOBS checking.
Normal password validation is performed.
Be sure that both the RACFVARS and the NODES classes are active and generics
are active for the NODES class, that you bring the classes in storage using
SETROPTS RACLIST, and that you issue a SETROPTS RACLIST REFRESH after
you define the two profiles. You need these profiles on every receiving system
where you want propagation to be controlled. Every user ID that has a PROPCNTL
entry on that system should be included in the ADDMEM list for &PROPCON.
With this setup, if a user ID is not coded on the job card, the job is routed to
another node, and the submitting user ID is a member of &PROPCON on the
receiving side, the job runs with the undefined user ID (default of ++++++++),
assuming SETROPTS(JES(BATCHALLRACF)) and
SETROPTS(JES(XBMALLRACF)) are not in effect.
Note that a better-fitting NODES profile with a higher UACC negates this protection.
For example, if in addition to the two profiles above you have a NODES profile
NODEX.USERJ.CICS1 with UACC(CONTROL), even if CICS1 is a member of
&PROPCON, an incoming job submitted by CICS1 runs as CICS1.
For more information about why you would want user propagation controlled, see
Controlling User ID Propagation in a Local Environment on page 473.
8. In either case, if SECLABEL is specified on the job card, it is used. If not, the SECLABEL of the submitter is propagated to the job.
490
JES
With NJE jobs, the submitter information used depends on whether the submitting
node is trusted. If the submitting node is trusted, the submitter information is either
used as passed or translated through NODES profiles. This information is subject to
reverification during any submit check that may be performed. This is consistent
with local jobs.
If the submitting node is not trusted, the submitter information cannot be used as
passed to RACF. When the submitter is identified by token information, the
submitter is then represented by the NJE unknown user (that is, no user ID). The
original submitter information is discarded. This allows UACC access to the checks
made on behalf of the submitter, such as SURROGATE and JESJOBS.
RACF validates an NJE batch job based on the submitter node and submitter user
ID in a USERJ profile and on the submitter node and submitter group name in a
GROUPJ profile. If there is an ADDMEM value, the NJE batch job submitter user ID
is translated to the ADDMEM value before the validation checks are made.
When RACF determines that a job is not from a trusted node, the submitter user ID
of the NJE batch job is set to the NJE unknown user ID and the submitter group
name is changed to blanks. For a job that is submitted from a trusted node, the
translated submitter user ID is propagated and becomes the user ID with which the
NJE batch job runs.
USERJ NODES profiles are checked before the GROUPJ NODES profiles. After
successful verification based on the submitter node and user ID, GROUPJ NODES
profiles are used to validate NJE batch jobs, based on the submitter node and
group name. If there is an ADDMEM value, the NJE batch job submitter group
name is translated to the ADDMEM value before the validation checks are made.
Note: If no USERJ NODES profile exists, the GROUPJ NODES profile is not
checked.
A GROUPJ NODES profile can be used to fail incoming jobs based on the
submitters group by specifying UACC of NONE in the profile. A GROUPJ NODES
profile can also be used to translate the submitting group to an appropriate group
for the receiving system. This is done by specifying a UACC of at least READ and
an appropriate ADDMEM member.
If the installation does not want incoming jobs to fail based on the groups, a special
ADDMEM of &DFLTGRP can be used. This is not a RACFVARS variable. It just
specifies that for jobs matching this GROUPJ profile, the resulting users default
group should be used in the verification.
Example:
RDEFINE NODES Z.GROUPJ.* UACC(READ) ADDMEM(&DFLTGRP)
Assuming appropriate use of USERJ profiles, all NJE batch jobs from node Z will
have SURROGAT and JESJOBS checking done based on the submit-users default
group. Checking done on the execution-user (assuming the submit group is
propagated, that is, GROUP is not on the jobcard), will be done with the
execution-users default group.
Authorizing SYSOUT
You can control the processing of SYSOUT at your installation based on the user
ID, group name, or security label associated with the inbound SYSOUT. If no profile
491
JES
exists for an NJE SYSOUT when the NODES class is active, SYSOUT ownership
cannot be assigned. See Understanding Default User IDs on page 497.
To authorize or restrict SYSOUT entering your system from another node, define
NODES class profiles that identify the criteria on which SYSOUT is accepted. Ask
your JES system programmer for the following:
v The node names from which you expect SYSOUT
v The user IDs, group names, and security labels from which you expect SYSOUT
v The universal access authority, which determines how JES processes the
SYSOUT. RACF can assign ownership based on either the user ID and node that
created the SYSOUT or the user ID and node that submitted the job that created
the SYSOUT.
Notes:
1. If the NODES profile allows the user ID to be associated with the SYSOUT,
but the user security information is incorrect, an IRR808I message is issued
and processing continues with the NJE unknown user as set by SETROPTS
JES(NJEUSERID(userid)).
2. &DFLTGRP can be used for SYSOUT in the same way as in batch jobs.
Specifying ADDMEM of &DFLTGRP in a GROUPS profile will cause
verification to be done on the owning-users default group.
Table 38 on page 493 lists the universal access authorities you can assign and
defines the validation that RACF performs.
492
JES
Table 38. NODES Class Operands, UACC and SYSOUT Ownership When Node Is Not Defined to &RACLNDE
Type of
Check
(operand)
User ID
(USERS)
UACC
NONE
READ
UPDATE
CONTROL or greater
If default or no security
information is available,
that is, from a downlevel
or default node,
processing is the same
as a UACC of READ.
Otherwise, assigns
ownership of the output If security information is
to the default NJE user from an uplevel node,
ID (default is ????????). that is, a non-default
valid security token is
passed, assigns the
translation value from
ADDMEM to the output.
When ADDMEM is not
specified, ownership is
assigned to the user ID
that created the output.
See Understanding
Mixed Security
Environments on page
488.
Processing is similar to
UACC(UPDATE) except
RACF translates any
available information
from any type of security
system. This allows
RACF to assign local
user IDs to output from
downlevel systems. See
Understanding Mixed
Security Environments
on page 488.
If the translation value
from ADDMEM is
&SUSER, check
submitting user ID and
node.
Assigns ownership of
the output to the default
NJE user ID (default is
????????).
Assigns ownership of
the output to the default
NJE user ID (default is
????????).
Note: When you specify &SUSER for ADDMEM and the submitting node is defined to &RACLNDE,
ownership is assigned to the submitter. See How SYSOUT Requests Are Verified on page 475.
Group
Name
(GROUPS)
Security
Label
(SECLS)
493
JES
Table 38. NODES Class Operands, UACC and SYSOUT Ownership When Node Is Not Defined to
&RACLNDE (continued)
Type of
Check
(operand)
UACC
NONE
READ
UPDATE
CONTROL or greater
Notes:
1. If the node name is specified in the RACFVARS profile named &RACLNDE, the node is treated as a locally
attached node and RACF verifies the supplied security information.
2. For more details on how NJE SYSOUT is processed, see Authorizing SYSOUT on page 491 and Validating
SYSOUT Based on the Submitter.
494
JES
Notes:
1. You should specify only one value on the ADDMEM operand. Any subsequent
values are ignored.
2. For jobs, an ADDMEM of &SUSER is ignored, as the NODES profile lookup for
jobs automatically deals with submitter information. It would be treated as
though no ADDMEM were specified for the profile. For more information on
&SUSER, see Validating SYSOUT Based on the Submitter on page 494.
If you do not define profiles that translate inbound user IDs, group names, and
security labels, those inbound values must be defined in your RACF database or
the work does not pass RACF validation.
Note: If the SECLABEL class is not active on your system, inbound security labels
are ignored.
Example: Simple NJE User Translation: Figure 47 shows how user IDs are
translated.
Node A
Job submitted
by user X
Node B
JOB
Job executed
by user Y
Node C
SYSOUT
Output printed
by user Z
On Node B:
On Node C:
RDEFINE NODES
A.USERJ.X
UACC(UPDATE)
ADDMEM(Y)
RDEFINE NODES
B.USERS.Y
UACC(UPDATE)
ADDMEM(Z)
495
JES
Example: Simple NJE User Translation Using &SUSER: Figure 48 shows how
user IDs are translated when &SUSER is specified on the ADDMEM operand. This
can be useful when jobs are run on a remote system, but the output is printed on
the submitters system.
Note: If you wish, you could specify &SUSER on a third system (as in node C in
Figure 47 on page 495).
Node A
Node B
Job submitted
by user X
JOB
Job's SYSOUT
is printed on
submitting
node.
SYSOUT
Job executed
by user Y
On Node A:
On Node B:
RDEFINE NODES
B.USERS.Y
UACC(UPDATE)
ADDMEM(&SUSER)
RDEFINE NODES
A.USERJ.X
UACC(UPDATE)
ADDMEM(Y)
RDEFINE NODES
A.USERS.X
UACC(CONTROL)
ADDMEM(&SUSER)
496
JES
SEMTNODE
VMNODE
MYNODE
DFLTNODE
TRSTNODE
LOCLNODE
NOTRUST
Profiles are
created on
this node.
Semitrusted Nodes
RDEFINE NODES SEMTNODE.USER%.* UACC(READ)
RDEFINE NODES DFLTNODE.USER%.* UACC(READ)
Untrusted Node
RDEFINE NODES NOTRUST.*.* UACC(NONE)
Note: To prevent any unknown nodes from submitting work to be done on your node, create the
following profile:
RDEFINE NODES *.*.* UACC(NONE)
497
JES
You cannot directly permit the default user ID (???????? or installation-defined) to
any resources. However, you can translate the default user ID to a valid user ID if
you want to process any of this type of work at your system.
You can change the ???????? user ID by using the NJEUSERID operand on the
SETROPTS command:
SETROPTS JES(NJEUSERID(?NETWORK))
The user ID you specify on the NJEUSERID operand cannot be a user ID defined
in the RACF database. Also, if you specify a user ID on the NJEUSERID operand,
you cannot later define a user profile for that user ID. This prevents network jobs
from having access to RACF-protected resources on your system.
The following example shows how to do this for jobs:
RDEFINE NODES nodename.USERJ.???????? UACC(READ or higher) ADDMEM(NJEJOBS)
The following example shows how to do this for both SYSOUT and jobs:
RDEFINE NODES nodename.USER%.???????? UACC(READ or higher) ADDMEM(NJEWORK)
498
JES
Notes:
a. Any time you make a change to a NODES profile, you must also refresh
SETROPTS RACLIST processing for the NODES class for the change to
take effect.
b. RACF does not do any logging nor issue any messages for the NODES
class.
3. Using the ADDMEM operand on the RALTER command, identify which nodes
are to be treated as local nodes:
RALTER RACFVARS &RACLNDE ADDMEM(node1 node2 node3...)
Notes:
a. If you define a node as a local node, you must ensure that its RACF
database is identical to the one on your node.
b. Because there are no defaults for &RACLNDE profiles in the RACFVARS
class, you must identify your own local node using the ADDMEM operand.
4. When you are ready to start using the protection defined in the profiles, activate
the RACFVARS class and activate SETROPTS RACLIST processing for the
class. You can do these two actions in one command:
SETROPTS CLASSACT(RACFVARS) RACLIST(RACFVARS)
499
JES
Notes:
a. Any time you make a change to a RACFVARS profile, you must also refresh
SETROPTS RACLIST processing for the RACFVARS class for the change
to take effect.
b. This also activates other functions that are administered through the
RACFVARS class.
For more information, see Controlling Where Output Can Be Processed on page
510.
500
JES
Profiles are not required in the JESSPOOL class for protection to be in effect
because the default for the class is failure when no profiles exist. IBM recommends
that you activate the generics for the JESSPOOL class because the profile names
are system generated.
Notes:
1. When the JESSPOOL class is active, RACF ensures that only authorized users
obtain access to job data sets on spool. Authorization to job data sets is
provided through RACF user profiles. If there is no profile for a data set, only
the user that created the data set can access, modify, or delete it.
2. While a job is executing, RACF optionally audits actions against SYSIN and
SYSOUT data sets. For SYSIN data sets, JES invokes RACF each time a
SYSIN data set is allocated, opened, or deleted. For SYSOUT data sets, JES
invokes RACF each time a SYSOUT data set is created, opened, deleted, or
selected for output.
3. For output selection, a data set can be selected by a TSO user through the
TSO OUTPUT command. A profile must exist to enable users other than the
creator to access data sets using the TSO OUTPUT command.
4. External writers, which are usually started tasks that process output to special
devices (such as microfiche), require at least ALTER access to the spool data
sets they process. If your installation has external writers, and you activate the
JESSPOOL class, you must either ensure that the external writers have ALTER
access to appropriate JESSPOOL profiles, or define the external writers as a
started procedure with the trusted attribute. You can define them either in the
STARTED class or in the RACF started procedures table (ICHRIN03).
Otherwise, the external writers cannot process output. Because external writers
are installation-written programs, you are strongly recommended to avoid giving
them the trusted attribute.
5. If SDSF is installed on your system, JESSPOOL profiles control which action
characters and overtypeable fields users can enter on SDSF panels. For
complete information on creating JESSPOOL profiles for use with SDSF, see
z/OS SDSF Operation and Customization.
6. SYSOUT application program interface (SAPI) applications, which are usually
started tasks that process output to special devices (like microfiche), require at
least UPDATE access to the spool data sets they process. If your installation
has SAPI applications, and you activate the JESSPOOL class, you must either
ensure that the SAPI applications have UPDATE access to appropriate
JESSPOOL profiles, or define the applications as a started procedure with the
trusted attribute. You can define them either in the STARTED class or in the
RACF started procedures table. Otherwise, the SAPI applications cannot
process output.
where:
501
JES
local-nodename
is the name of the node on which the SYSIN or SYSOUT data
set currently resides. The local node name appears in the JES
job log of every job.
Note: It is recommended that you define a profile in the
RACFVARS class named &RACLNDE, and use
&RACLNDE for all profiles in the JESSPOOL class.
userid
is the user ID associated with the job. This is the user ID RACF
uses for validation purposes when the job runs.
jobname
jobid
dsnumber
is the unique data set number JES assigned to the spool data
set. A D is the first character of this qualifier.
name
Note: You can specify generic characters for any of the qualifiers in the profile
name. For example, you can substitute an asterisk (*) for one of the
qualifiers, such as jobid, if it is not known.
A sample JESSPOOL profile name could be as follows. If user MYUSER
submits a job named MYJOB to run on NODEA, and JES assigns a job
ID of JOB08237, and the value of DSN= for a SYSOUT data set is
OUTPUT, the profile name for a SYSOUT data set created by this job
could be:
NODEA.MYUSER.MYJOB.JOB08237.D0000112.OUTPUT
If job MYJOB is run several times, and the same protection is desired for
the OUTPUT data set each time, the profile name could be:
NODEA.MYUSER.MYJOB.*.*.OUTPUT
502
NONE
READ
Lets the user view the spool data set, but does not let the user
change the data sets contents or attributes. For example,
READ does not allow the following operands on the TSO
OUTPUT command: DELETE, DEST, NEWCLASS, NOHOLD,
and NOKEEP.
UPDATE
Lets the user read or update the contents of a spool data set.
UPDATE does not allow the user to change the data sets
JES
attributes. UPDATE also allows users to update spool data sets
opened by an application in the same address space.
CONTROL
Is equivalent to UPDATE.
ALTER
Lets the user read or update a spool data set or change the
attribute of a spool data set. For example, ALTER allows any
operand to be specified on the TSO OUTPUT command,
including operands for deleting and printing. Also, when
specified for a discrete profile, ALTER lets the user change the
profile itself.
Note: If SDSF is installed on your system, JESSPOOL profiles control which action
characters and overtypeable fields users can enter on SDSF panels. For
complete information on creating JESSPOOL profiles for use with SDSF, see
z/OS SDSF Operation and Customization.
2. To prevent all users except the system administrator from being able to create
JESSPOOL profiles, issue either of the following commands:
RDEFINE JESSPOOL ** OWNER(sys_admin_id) UACC(NONE)
RDEFINE JESSPOOL * OWNER(sys_admin_id) UACC(NONE)
3. For each user who should be able to create JESSPOOL profiles for his or her
own spool data, create a JESSPOOL profile with the users user ID specified.
Make the user the owner of the profile. For example, for users SMITH and BEN:
RDEFINE JESSPOOL nodename.SMITH.** OWNER(SMITH) UACC(NONE)
RDEFINE JESSPOOL nodename.BEN.**
OWNER(BEN)
UACC(NONE)
5. Users with CLAUTH authority can define their own JESSPOOL profiles:
RDEFINE JESSPOOL profile-name OWNER(SMITH) UACC(NONE)
RDEFINE JESSPOOL profile-name OWNER(BEN)
UACC(NONE)
where profile-name is more specific than the JESSPOOL profile name you
defined for this user in step 3.
6. After defining their own JESSPOOL profiles, the users with CLAUTH can use
the following PERMIT command to grant other users access to the spool data
sets protected by that profile:
PERMIT profile-name CLASS(JESSPOOL)
ID(userid|groupname)
ACCESS(access-authority)
503
JES
where access-authority is one of the following:
NONE
READ
Lets the user view the spool data set, but does not let the user
change the data sets contents or attributes. For example,
READ does not allow the following operands on the TSO
OUTPUT command: DELETE, DEST, NEWCLASS, NOHOLD,
and NOKEEP.
UPDATE
Lets the user read or update the contents of a spool data set.
UPDATE does not allow the user to change the data sets
attributes. UPDATE also allows users to update spool data sets
opened by an application in the same address space.
CONTROL
Is equivalent to UPDATE.
ALTER
Lets the user read or update a spool data set or change the
attribute of a spool data set. For example, ALTER allows any
operand to be specified on the TSO OUTPUT command,
including operands for deleting and printing. Also, when
specified for a discrete profile, ALTER lets the user change the
profile itself.
Note: If SDSF is installed on your system, JESSPOOL profiles control which action
characters and overtypeable fields users can enter on SDSF panels. For
complete information on creating JESSPOOL profiles for use with SDSF, see
z/OS SDSF Operation and Customization.
Protecting JESNEWS
JESNEWS is a spool file that contains data to be printed following each jobs
output. Protecting JESNEWS prevents unauthorized users from adding, modifying,
or deleting these files, or (if security labels are used) writing data with a higher
security label into these files.
The procedure for protecting JESNEWS depends on whether JES2 or JES3 is
installed.
where:
504
JES
nodename
is the name of the node that created the JESNEWS data set.
userid
STCtaskid
is the name of the task that created the JESNEWS data set.
Dnewslvl
is the level of this copy of JESNEWS.
For example, for JESNEWS on NODEB:
RDEFINE JESSPOOL NODEB.*.$JESNEWS.*.*.JESNEWS UACC(READ)
Notes:
a. This example assumes that a SETROPTS GENERIC(JESSPOOL) was
previously issued to turn generics on for this class and that a SETROPTS
REFRESH was then done.
b. To improve system performance, you should consider including an entry for
JESNEWS in the global access checking table. For example:
NODEB.*.$JESNEWS.*.*.JESNEWS/READ
505
JES
Note: To improve system performance, you should consider including entries
for JESNEWS in the global access checking table. For example:
node.jesname.JOB00000.D0000000.JNEWSLCL/READ
node.jesname.JOB00000.D0000000.JNEWSRJP/READ
node.jesname.JOB00000.D0000000.JNEWSTSO/READ
Protecting SYSLOG
Your security policy may require that you protect SYSLOG because it is the record
of your systems daily activities.
To control SYSLOG, define a JESSPOOL profile for the data set, specifying an
appropriate universal access, and then grant access to the user IDs or group
names that need a different access.
See the following example:
RDEFINE JESSPOOL NODEB.+MASTER+.SYSLOG.*.*.? UACC(NONE)
PERMIT
Offloading Data
When you offload data from the spool to another device, JES2 copies the security
information for the data to the offload job and data set headers. No validation is
made of the security information written to the offload data set. JES2 calls RACF to
ensure the operator starting the offload operation has sufficient authority to issue
the command to start the offload.
During the offload process, JES2 calls RACF (using the WRITER class) to ensure
the owner of the SYSOUT data set has at least READ access to the offload device
506
JES
by checking the security information associated with the data against the devices
profile in the WRITER class. The offload device profile for offload SYSOUT
transmitter 1 would be:
jesxLOCAL.OFF1.ST
During spool offload, jobs are not checked for access to the device.
Reloading Data
When JES2 reloads the information from an offload data set, it performs any
security validation necessary (similar to reading a job into the system or receiving a
network SYSOUT data set) before writing the data to spool by checking the
JESJOBS class for reloaded jobs and the NODES class. When RACF performs the
NODES class check, if the node associated with the data is in the &RACLNDE
profile, RACF accepts the data.
The following profiles for the JESINPUT class apply to spool reload:
OFFn.JR
OFFn.SR
for jobs
for SYSOUT
As with offload, JES2 calls RACF to ensure the operator starting the reload
operation has sufficient authority to issue the commands.
When reloading a data set that was offloaded on this node, the name of the node
must be defined in the RACFVARS profile &RACLNDE, or NODES profiles are
required for NJE processing to associate user IDs with jobs or data.
How RACF Affects Jobs Dumped from and Restored to Spool (JES3
Only)
RACF performs security validation for all jobs restored to your system using the
JES3 Dump Job facility.
Dumping Jobs
JES3 dumps all security information associated with each job when you use the
dump job facility. However, JES3 does not perform security validation while
dumping jobs.
Restoring Jobs
JES3 calls RACF to revalidate the job. RACF validates the job using the security
information saved when the job was dumped and writes an SMF audit record for
each restored job.
Attention
Jobs and data transported to a complex that uses different security labels may
be inadvertently declassified.
MCS Consoles
Your MVS system programmer can require operators to log on to and log off from
MCS-managed consoles by specifying options in the CONSOLxx member of the
Chapter 17. Providing Security for JES
507
JES
SYS1.PARMLIB data set. When the CONSOLE class is active and a console being
used is protected by a profile in the CONSOLE class, RACF ensures that the
person attempting to LOGON has the proper authority to do so.
For information about controlling access to MCS consoles, see Protecting
Consoles on page 239.
508
JES
6. Because the remote workstation or node name is also used as a port of entry, it
needs to be defined to the JESINPUT class (if active). If it is not defined and
the class is later activated, RJE signons or NJE command authorizations fail
because of incorrect port of entry. For more information, see MVS/ESA and
RACF 1.9 Security Implementation Guide.
To use RACF to check LOGON or /*SIGNON passwords, take the following steps:
1. For each remote workstation or node to be protected, ask your JES system
programmer for the following:
v The ID of the remote workstation. The ID serves as the user ID of the remote
workstation. All users using a particular remote workstation must log on using
this ID and supply the same password. (The password will never expire.) The
ID is one of the following:
If JES2 is installed, the remote ID of the RJE console to be protected,
which takes the form RMTnnnn.
If JES3 is installed, the ID of the console you want to protect.
For NJE nodes, the name of the node to be used as the user ID of that
node.
2. For each remote workstation or NJE node, create a user profile:
ADDUSER userid
DATA(data)
PASSWORD(initial-password)
DFLTGRP(groupname)
where:
userid
data
initial-password
groupname
3. For each workstation for which you want RACF to check the users password,
create a profile in the FACILITY class, as follows:
RDEFINE FACILITY RJE.workstation
where nodename has been supplied by the JES system programmer. The
specification of UACC for these profiles has no effect.
5. Run a batch job with old and new passwords specified to set a new password
(which will never expire).
509
JES
6. When you are ready to start using the protection provided by the profiles you
have created, activate the FACILITY class:
SETROPTS CLASSACT(FACILITY)
7. If the class is active, define the workstation or node name to the JESINPUT
class, as follows:
RDEFINE JESINPUT workstation UACC(appropriate-access)
RDEFINE JESINPUT nodename
UACC(appropriate-access)
If the workstation or node name is not defined and the class is later activated,
sign on or command authorization fails because of incorrect port of entry. For
more information, see MVS/ESA and RACF 1.9 Security Implementation Guide.
JES3 Consoles
You cannot use RACF to control access to locally attached JES3 consoles. See
z/OS JES3 Initialization and Tuning Guide.
510
JES
v For data whose destination is a node:
jesname.NJE.nodename
where nodename is the name of the node to ultimately receive the output.
Also, UACC can be one of the following:
NONE
Allows no access
READ
Allows all users to send output to the protected device or node.
3. Give the appropriate access to users and groups:
PERMIT profile-name CLASS(WRITER) ID(user or group)
ACCESS(appropriate-access)
Allows no access
READ
where:
sysname
dev-class
modelno
ddd
specifies the device number associated with the printer.
v The universal access authority associated with the printer. A UACC of READ
indicates the printer can be allocated to all users in your installation. A UACC
of NONE indicates the printer can only be allocated to the users you specify.
v A list of users and groups that have access other than the UACC. READ
access allows the device to be allocated to the job submitted by the specified
user.
511
JES
v The security label associated with the printer (if security labels are being
used).
2. Create a profile in the DEVICES class to protect each writer:
RDEFINE DEVICES profile-name UACC(NONE)
3. When you are ready to start using the protection provided by the profiles you
have created, activate the DEVICES classes:
SETROPTS CLASSACT(DEVICES)
2. If the NODES class is active, create a NODES profile with RUSER as the
second qualifier:
RDEFINE NODES nodename.RUSER.userid UACC(appropriate-access)
READ
Reverify
UPDATE or higher
Pass
3. Permit the nodes user ID to the command profiles the node can issue:
512
JES
PERMIT command-profile-name CLASS(OPERCMDS) ID(HYDEPARK)
ACCESS(appropriate-access)
4. If the OPERCMDS and FACILITY classes are not already active, activate them:
SETROPTS CLASSACT(OPERCMDS FACILITY)
513
514
. 515
. 515
. 516
.
.
.
.
.
.
.
.
.
.
.
.
.
517
517
518
519
519
520
520
520
520
520
521
523
523
This chapter describes using RACF with the DFSMSdfp facility Storage
Management Subsystem (SMS). It describes factors that administrators should
consider when using RACF with SMS. A number of scenarios are used to explain
these factors. Many of the names used in these scenarios are arbitrary. The names
you use for user IDs, group names, and resources will differ, and the procedures
you decide to follow might vary from those given as examples in this chapter.
515
SMS
v STORCLAS. Use this RACF resource class to protect specific SMS storage
classes. (Storage class is the DFP construct name for attributes related to space
for a data set and the device and volume on which a data set resides.)
Note: The RACF general resource classes MGMTCLAS and STORCLAS are
different from, and should not be confused with, the DFP construct names
management class and storage class.
Then, to define a specific SMS class, issue the RDEFINE command and specify the
appropriate operands. After you define a profile to protect a specific SMS class,
issue the PERMIT command to create entries in the access list of the profile. You
might want to look at Determining the Owner of an SMS-Managed Data Set on
page 520 for more information.
For example, suppose you want to define a profile in the RACF general resource
class STORCLAS to protect an SMS storage class named DFP2STOR. You can
control which users and groups can use DFP2STOR by issuing one of the following
sequences of commands:
v To limit the number of users who can use DFP2STOR:
1. Issue the RDEFINE command to define the profile for DFP2STOR and assign
a UACC of NONE to the profile. The format of the command is as follows:
RDEFINE STORCLAS DFP2STOR UACC(NONE)
This command specifies that no users can access DFP2STOR, except for the
creator of the profile. For more information, see z/OS Security Server RACF
Command Language Reference.
2. Selectively allow certain users and groups access to DFP2STOR by issuing
the PERMIT command and specifying an ACCESS of READ. The format of
the command is as follows:
PERMIT DFP2STOR CLASS(STORCLAS) ID(SMITH JONES) ACCESS(READ)
This command allows SMITH and JONES the use of storage class
DFP2STOR.
v To allow many users the use of DFP2STOR:
1. Issue the RDEFINE command to define the profile for DFP2STOR and assign
a UACC of READ to the profile. The format of the command is as follows:
RDEFINE STORCLAS DFP2STOR UACC(READ)
This command prevents SMITH and JONES from using storage class
DFP2STOR.
516
SMS
v For SMS resource classes that you want to be available to all users, consider
creating an entry in the global access checking table. For example, to allow all
users access to DFP2STOR, enter:
RDEFINE GLOBAL STORCLAS ADDMEM(DFP2STOR/READ)
SETROPTS GLOBAL(STORCLAS) REFRESH
517
SMS
518
SMS
The PAYROLL group can then create data sets such as PAYROLL.LGL88.WEEK1,
PAYROLL.LGL88.WEEK2, and PAYROLL.LGL88.MARCH.SUM, but the LEGAL
group actually owns the data sets.
(The profile name PAYROLL.LGL88.** is a generic profile name that uses enhanced
generic naming. Before you issue the above command, both generic profile
checking for the DATASET class and enhanced generic naming must be active. If
these options are not active, issue the SETROPTS GENERIC(DATASET) and
SETROPTS EGN commands before you define the generic profile.)
You can specify a value for RESOWNER when you define a new data set profile
using the ADDSD command or when you change an existing data set profile using
the ALTDSD command. You can display the information in this field using the
LISTDSD command. See z/OS Security Server RACF Command Language
Reference for more information on these commands.
Note that the RESOWNER field, which represents the data set owner for data set
allocation purposes, is different from the OWNER field, which represents the user or
group that owns the data set profile and can therefore work with the profile itself.
519
SMS
520
SMS
SETROPTS CLASSACT(FIELD)
When you specify profile-name, use the format shown in the following examples.
Controlling Access to All Fields in the DFP Segment of User Profiles: You can
define a profile that lets you control access to all of the fields in the DFP segment
of all user profiles. Before you define this profile, generic profile checking for the
FIELD class must be active. If generic profile checking is not active, issue the
SETROPTS GENERIC(FIELD) command.
To define this profile, issue the RDEFINE command with a generic profile name. For
example, enter:
RDEFINE FIELD USER.DFP.* UACC(NONE)
Note: When you specify a UACC of NONE, you prevent all users from accessing
the DFP segment in all user profiles, including their own. Likewise, if you
specify a UACC of READ, you allow all users to read the information
contained in all fields of the DFP segment for all user profiles.
If the FIELD class is not yet RACLISTed, you must enter the following command
after you define or alter the profile:
SETROPTS RACLIST(FIELD)
If the FIELD class is already RACLISTed, you must refresh the profiles with the
following command after you define or alter the profile:
SETROPTS RACLIST(FIELD) REFRESH
This command defines a profile in the FIELD general resource class that protects,
with a UACC of NONE, the DATACLAS field in the DFP segment of all user profiles.
For more information, see Field-Level Access Checking on page 213.
If the FIELD class is not yet RACLISTed, you must enter the following command
after you define or alter the profile:
SETROPTS RACLIST(FIELD)
If the FIELD class is already RACLISTed, you must refresh the profiles with the
following command after you define or alter the profile:
SETROPTS RACLIST(FIELD) REFRESH
521
SMS
Controlling Access to All Fields in the DFP Segment of Group Profiles: You
can define a profile that allows you to control access to all fields in the DFP
segment of all group profiles. Before you define the following profile, generic profile
checking for the FIELD class must be active. If it is not active, issue the
SETROPTS GENERIC(FIELD) command before you define the generic profile. To
define this profile, issue the RDEFINE command and specify GROUP.DFP.* for
profile-name as shown in the following example:
RDEFINE FIELD GROUP.DFP.* UACC(NONE)
Note: When you specify a UACC of NONE, you prevent all users from accessing
the DFP segment in all group profiles, including their current connect group.
Likewise, if you specify a UACC of READ, you allow all users to read the
information contained in all fields of the DFP segment for all group profiles.
If the FIELD class is not yet RACLISTed, you must enter the following command
after you define or alter the profile:
SETROPTS RACLIST(FIELD)
If the FIELD class is already RACLISTed, you must refresh the profiles with the
following command after you define or alter the profile:
SETROPTS RACLIST(FIELD) REFRESH
This command defines a profile in the FIELD general resource class that protects,
with a UACC of NONE, the STORCLAS field in the DFP segment of all group
profiles. For more information, see Field-Level Access Checking on page 213.
If the FIELD class is not yet RACLISTed, you must enter the following command
after you define or alter the profile:
SETROPTS RACLIST(FIELD)
If the FIELD class is already RACLISTed, you must refresh the profiles with the
following command after you define or alter the profile:
SETROPTS RACLIST(FIELD) REFRESH
Controlling Access to All Fields in the DFP Segment of Data Set Profiles: You
can define a profile that allows you to control access to all fields in the DFP
segment of all data set profiles. Before you define this profile, generic profile
checking for the FIELD class must be active. If generic profile checking is not
active, issue the SETROPTS GENERIC(FIELD) command. To define this profile,
issue the RDEFINE command and specify DATASET.DFP.* for profile-name as
shown in the following example:
RDEFINE FIELD DATASET.DFP.* UACC(NONE)
Note: When you specify a UACC of NONE, you prevent all users from accessing
the DFP segment in all data set profiles, including data set profiles that they
own. Likewise, if you specify a UACC of READ, you allow all users to read
the information contained in all fields of the DFP segment for all data set
profiles.
522
SMS
If the FIELD class is not yet RACLISTed, you must enter the following command
after you define or alter the profile:
SETROPTS RACLIST(FIELD)
If the FIELD class is already RACLISTed, you must refresh the profiles with the
following command after you define or alter the profile:
SETROPTS RACLIST(FIELD) REFRESH
This command defines a profile in the FIELD general resource class that protects,
with a UACC of NONE, the RESOWNER field in the DFP segment of all data set
profiles. For more information, see Field-Level Access Checking on page 213.
If the FIELD class is not yet RACLISTed, you must enter the following command
after you define or alter the profile:
SETROPTS RACLIST(FIELD)
If the FIELD class is already RACLISTed, you must refresh the profiles with the
following command after you define or alter the profile:
SETROPTS RACLIST(FIELD) REFRESH
You can also specify the value &RACUID with the ID operand on the PERMIT
command. When you enter this value on the PERMIT command, you allow all users
access to the specified field within the DFP segment of their own user profiles. For
example, if you issue the following command, you allow all users to read the
DATAAPPL field in the DFP segment of their own user profiles.
PERMIT USER.DFP.DATAAPPL CLASS(FIELD) ID(&RACUID) ACCESS(READ)
523
SMS
Control data sets
Source data sets for ACS routines
The test library for ACS routines
For information on how to use RACF to protect these resources, see the following
publications:
v MVS/ESA SML: Managing Data, which shows the sequence of RACF commands
you need to issue to protect the various SMS resources
v z/OS DFSMSdfp Storage Administration Reference and z/OS DFSMS: Managing
Catalogs, which show the names of the profiles you need to define to protect the
various SMS resources.
524
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
525
526
529
529
529
530
530
531
525
TSO/E
also check the completeness and accuracy of the conversion that is performed by
the RACONVRT EXEC. For more information on using the RACONVRT EXEC, see
z/OS TSO/E Customization.
No access allowed.
READ
UPDATE
CONTROL
Same as READ.
ALTER
To control the use of TSO resources, issue RACF commands in the following
sequence:
1. Activate the TSO general resource classes:
SETROPTS CLASSACT(TSOPROC ACCTNUM PERFGRP TSOAUTH)
526
TSO/E
To protect a TSO resource so that a limited number of users can access it, you
can define it and specify a UACC of NONE. Then you can create an access list
containing only those users who require access to the resource. The following
example shows how to define a logon procedure, LOGPROC2, in the
TSOPROC resource class and protect it with a UACC of NONE.
RDEFINE TSOPROC LOGPROC2 UACC(NONE)
527
TSO/E
The first account number listed is used. For example, you if you want to
allow only two account numbers, D1001 and D1002, and you want to
ensure that users log on with at least one of them, create the following
profiles:
RDEFINE ACCTNUM D1001 UACC(READ)
RDEFINE ACCTNUM D1002 UACC(READ)
RDEFINE ACCTNUM ** UACC(NONE)
v For the PERFGRP class, the profile name must be the number of the
performance group itself (no generic characters are allowed).
v For the TSOAUTH class, you should consider creating discrete profiles
for each TSO attribute. The following examples assume that only a few
users should be able to request mounts, but that every user (except
those specifically disallowed) should be able to submit batch jobs:
RDEFINE TSOAUTH MOUNT UACC(NONE)
RDEFINE TSOAUTH JCL UACC(READ)
3. Use the PERMIT command to allow users and groups to use the TSO
resources. The following example shows how to allow users USERA and
USERB to specify logon procedure LOGPROC2 when they log on using TSO:
PERMIT LOGPROC2 CLASS(TSOPROC) ID(USERA USERB) ACCESS(READ)
528
TSO/E
Note: If SETROPTS RACLIST processing is already activated for the TSO
general resource classes, you must refresh SETROPTS RACLIST
processing:
SETROPTS RACLIST(TSOPROC ACCTNUM PERFGRP TSOAUTH) REFRESH
529
TSO/E
where SENDER1 and SENDER2 are valid RACF user IDs or group names, and
RECVR1 and RECVR2 are valid RACF user IDs. The first PERMIT in the
example allows SENDER1 to send messages to RECVR1. The second PERMIT
in the example prevents SENDER2 from sending messages to RECVR2.
3. When you are ready to start using the security provided by these profiles,
activate both the DIRAUTH class and the SMESSAGE class, and activate
SETROPTS RACLIST processing for the SMESSAGE class. SETROPTS
RACLIST processing helps ensure high performance when access authorities
are checked. You can do these actions in one command:
SETROPTS CLASSACT(SMESSAGE DIRAUTH) RACLIST(SMESSAGE)
Note: Any time you make a change to an SMESSAGE profile, you must also
refresh SETROPTS RACLIST processing for the SMESSAGE class for
the change to take effect. For example:
SETROPTS RACLIST(SMESSAGE) REFRESH
OUTPUT
RECEIVE
530
TSO/E
Users with the OIDCARD attribute must supply a valid operator identification
card during logon.
v Operands on the TSO LOGON command:
NEWPASSWORD (to specify a new password to replace the current
password)
GROUP (to specify the group name to which the user is connected during the
terminal session).
v Settings on the TSO PROFILE command:
PREFIX (used in determining the RRSFLIST data set name)
INTERCOM (determines whether RRSF uses SEND to send messages to the
command issuer for directed commands).
v Sending and receiving messages: Depending on how security labels are used on
your system, and on how SETROPTS options are set, users may need to be
aware of their current security label when they send or receive messages from
other users. For more information, see Controlling the Use of the TSO SEND
Command on page 529.
v Submitting and cancelling jobs: Users have flexibility with regard to which jobs
they can work with using the TSO SUBMIT and CANCEL commands. For more
information, see Surrogate Job Submission on page 481 and Controlling Who
Can Cancel Jobs by Job Name on page 480.
531
532
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
534
535
535
536
536
536
537
537
537
538
538
539
540
541
542
543
543
544
545
546
546
547
547
548
548
549
549
550
551
551
552
553
554
554
This chapter describes using RACF with z/OS UNIX. The information presented
here can also be used with OS/390 UNIX unless otherwise indicated. This chapter
describes factors to consider when using RACF to manage group identifiers (GIDs)
and user identifiers (UIDs). It also describes how to map GIDs and UIDs to RACF
group names and user IDs.
The z/OS UNIX security functions provided by RACF include user validation, file
access checking, privileged user checking, and user limit checking. z/OS UNIX
users are defined with RACF commands. When a job starts or a user logs on, the
user ID and password are verified by RACF. When an address space requests an
z/OS UNIX function for the first time, RACF:
1. Verifies that the user is defined as a z/OS UNIX user.
2. Verifies that the users current connect group is defined as a z/OS UNIX group.
3. Initializes the control blocks needed for subsequent security checks.
533
z/OS UNIX
Additional Reading
See z/OS UNIX System Services Planning for complete information on setting
up and using RACF in the z/OS UNIX environment.
See Special Considerations for Auditing z/OS UNIX on page 115 for
information on auditing z/OS UNIX security events.
See z/OS Security Server RACF Auditors Guide for complete information on
auditing in the RACF environment.
See z/OS Planning for Multilevel Security and the Common Criteria for
information about using security labels for z/OS UNIX files and directories.
Note: RACF program control does not control programs that are executed in any
way that bypasses MVS contents supervision, such as load modules
contained in z/OS UNIX files. Therefore, loading a program from a z/OS
UNIX file prevents you from opening a data set in a PADS
(program-access-to-data-sets) environment, and prevents you from loading a
program from an MVS library if you only have EXECUTE authority. You
should use program control to restrict access to any programs, such as
these, that provide facilities for bypassing MVS contents supervision. For
more information, see Chapter 9, Protecting Programs, on page 303.
For more information, see The OMVS Segment in Group Profiles on page 53 and
Using default OMVS segments in USER and GROUP profiles on page 541.
Although the same GID can be assigned to multiple RACF groups, it is not
recommended. If you assign the same GID to multiple groups, control at an
individual group level is lost because the GID is used in z/OS UNIX security checks.
RACF groups that have the same GID assignment are treated as a single group
during z/OS UNIX security checks.
You can enforce identity uniqueness when assigning UNIX identifiers. For more on
controlling GID uniqueness, refer to Controlling the use of shared UNIX identities
on page 537. A unique GID can be defined automatically using the AUTOGID
operand, as described in Enabling automatic assignment of UNIX identities on
page 538.
534
z/OS UNIX
For special considerations about using the RACF list-of-groups checking (GRPLIST)
option for access to z/OS UNIX file system resources, such as HFS files, see
GRPLIST Considerations for z/OS UNIX on page 113.
For more information, see The OMVS Segment in User Profiles on page 68 and
Using default OMVS segments in USER and GROUP profiles on page 541.
Although you can assign the same UID to multiple users, it is not recommended.
However, it may be necessary for some cases, such as superusers. If you assign
the same UID to multiple users, control at an individual user level is lost because
the UID is used in z/OS UNIX security checks. Users with the same UID
assignment are treated as a single user during z/OS UNIX security checks.
You can enforce identity uniqueness when automatically assigning UNIX identifiers.
For more on controlling UID uniqueness, refer to Controlling the use of shared
UNIX identities on page 537. A unique UID can be defined using the AUTOUID
operand, as described in Enabling automatic assignment of UNIX identities on
page 538.
v To see the RACF user IDs that are associated with UID 0, enter:
RLIST UNIXMAP U0 ALL
v To see all RACF groups and user IDs associated with GIDs and UIDs, enter:
RLIST UNIXMAP * ALL
For information about the UNIXMAP class, see Using the UNIXMAP class
and Virtual Lookaside Facility (VLF) on page 543.
4. For installations at AIM stage 2 or higher, you can list a set of users or groups
with a specific UID or GID, for example using 223 for the UID value and 55
for the GID value, enter:
Chapter 20. RACF and z/OS UNIX
535
z/OS UNIX
SEARCH CLASS(USER) UID(223)
SEARCH CLASS(GROUP) GID(55)
Superuser authority
A UID of 0 is used to define an z/OS UNIX superuser. A superuser can perform any
z/OS UNIX function and passes all z/OS UNIX security checks. Users running with
the trusted or privileged attribute (for example, started tasks or jobs assigned by a
RACROUTE REQUEST=VERIFY exit) are considered z/OS UNIX superusers even
if their assigned UID is a value other than 0.
You may choose to assign the UID of 0 to multiple RACF user IDs. However, you
should seek to minimize the assignment of superuser authority in your installation.
You can accomplish this by setting z/OS UNIX user limits, and by managing
superuser privileges through UNIXPRIV profiles. See Using UNIXPRIV class
profiles to manage z/OS UNIX privileges on page 546 for more information.
|
|
|
|
ASSIZEMAX
CPUTIMEMAX
FILEPROCMAX
MEMLIMIT
MMAPAREAMAX
PROCUSERMAX
SHMEMMAX
THREADSMAX
Once you have set individual user limits for users who require higher resource
limits, you should consider removing their superuser authority. You should also
reevaluate your installations BPXPRMxx limits and consider reducing these limits.
See z/OS UNIX System Services Planning for more information.
536
z/OS UNIX
password attempts, or from being used for other purposes, such as logging on to
the system. For more information, see Defining Protected User IDs on page 87.
Sharing IDs
By default, RACF does not prohibit the sharing of UIDs and GIDs among any
number of users or groups. However, you can control enforcement of unique UNIX
identifiers by defining a profile called SHARED.IDS in the UNIXPRIV class.
Rules:
|
|
|
|
|
|
|
|
|
Once you define this profile, the default behavior of the ADDUSER, ALTUSER,
ADDGROUP, and ALTGROUP commands are changed for the UID and GID
operands for the OMVS segment. Any attempt to assign an ID already in use fails
537
z/OS UNIX
with message IRR52174I being issued. Similarly, if you attempt to assign the same
ID to a group of names on a single command, the command fails with message
IRR52185I being issued.
Once the SHARED.IDS profile has been defined, if you wish to make an exception
to the enforcement of UNIX identity uniqueness, the SHARED operand must be
used.
To specify the SHARED operand, you must have the SPECIAL attribute or at least
READ authority to the SHARED.IDS profile in the UNIXPRIV class. For example:
PERMIT SHARED.IDS CLASS(UNIXPRIV) ID(USSADMIN) ACCESS(READ)
SETROPTS RACLIST(UNIXPRIV) REFRESH
The
The
The
The
MARCY
COLDEN
DACKS
FORTY6RS
For the ALTUSER and ALTGROUP commands, AUTOUID and AUTOGID cannot be
used to change the ID value if one exists for the user. However, it is not considered
an error if the existing ID is unique, meaning it is not shared. If it is not unique, the
command fails and message IRR52178I is issued.
If you attempt to use automatic assignment (AUTOUID) with a list of users or
groups, the command will fail with message IRR52184I being issued. For example:
ADDUSER (TOM DICK HARRY) OMVS(AUTOUID)
538
z/OS UNIX
Notes:
v Implementing SHARED.IDS and BPX.NEXT.USER is a prerequisite to completing
successful automatic ID assignment.
v The AUTOUID and AUTOGID operands cannot be specified with the SHARED
operand. Doing so results in command failure and message IRR52186I being
issued.
v AUTOUID is ignored if UID or NOUID is specified.
v AUTOGID is ignored if GID or NOGID is specified.
For more information on these commands, refer to the z/OS Security Server RACF
Command Language Reference.
When the maximum value of 2 147 483 647 is reached, subsequent automatic ID
assignment attempts fail and message IRR52181I is issued.
The starting value used is chosen at your discretion. For example, if UID values
02000 are already in use, and GID values 0200 are already in use, you should
use a UID starting value of 2001 and a GID starting value of 201:
RALTER FACILITY BPX.NEXT.USER APPLDATA(2001/201)
Ranges can be useful in an RRSF environment. Specify a starting and ending value
separated by a dash (-) if you want to include a range of values. Both values
must be valid UID or GID values and the second must be greater than the first.
Ranges can be specified independently for UIDs or GIDs. For example:
RDEFINE
RDEFINE
RDEFINE
RDEFINE
FACILITY
FACILITY
FACILITY
FACILITY
BPX.NEXT.USER
BPX.NEXT.USER
BPX.NEXT.USER
BPX.NEXT.USER
APPLDATA(50000-80000/3000-10000)
APPLDATA(50000/3000-10000)
APPLDATA(50000-80000/3000)
APPLDATA(NOAUTO/3000-10000)
Notes:
v You cannot specify blanks in the APPLDATA string.
539
z/OS UNIX
v Syntax checking of APPLDATA does not occur until AUTOUID and AUTOGID
operands are specified on the ADDUSER, ALTUSER, ADDGROUP, and
ALTGROUP commands.
v If you have defined BPX.NEXT.USER with incorrect APPLDATA, issuing
AUTOUID or AUTOGID fails with message IRR52187I being issued.
v You can change the APPLDATA values at any time.
v After successful automatic ID assignment, RACF updates the APPLDATA starting
value with either the next potential value or end of range.
RRSF Considerations
RACF does two things to facilitate automatic ID assignment in an RRSF
environment in order to prevent different nodes from arriving at the same ID values
independently for different users and then propagating these updates on the
network.
1. RACF suppresses propagation of its own internal updates to the
BPX.NEXT.USER profile. This prevents RACF from altering the
BPX.NEXT.USER profile on other RRSF nodes when you are using automatic
direction of application updates for the FACILITY class.
2. RACF alters the command image on the source node before propagating it out
to other RRSF nodes. RACF inserts the generated ID value into the command
image so (from the perspective of the target node) an explicit ID assignment is
being requested. This protects you when automatic command direction is in
effect for USER and GROUP profiles.
For example, if you issue
ADDUSER SEYMOUR OMVS(AUTOUID HOME(/u/seymour) PROGRAM(bin/sh))
and RACF arrives at a UID value of 4120 through BPX.NEXT.USER, the command
propagated out is:
ADDUSER SEYMOUR OMVS(AUTOUID UID(4120) HOME(/u/seymour) PROGRAM(/bin/sh))
The BPX.NEXT.USER profile on the target node is not used as a result of receiving
an update that involved automatic ID generation at the source node (when the
ADDUSER command runs on the target node, AUTOUID is ignored because UID is
specified).
To avoid ID collisions on your RRSF network, you should do either of the following:
v Use non-overlapping ID ranges on each of the RRSF nodes to avoid conflicts
when an automatic ID request is made on a given node and propagated to any
other node.
Since you do not want APPLDATA updates being propagated between nodes,
you should be careful when defining and altering BPX.NEXT.USER if automatic
command direction is active for the FACILITY class. Using the ONLYAT operand
(on the RALTER and RDEFINE commands) when you change BPX.NEXT.USER
prevents propagation of a nodes APPLDATA. ONLYAT must be used whether
you are creating the BPX.NEXT.USER profile on a local or remote node.
For example, to define the BPX.NEXT.USER profile on the local node, issue:
RALTER FACILITY BPX.NEXT.USER APPLDATA(10000-19999/10000-19999)
ONLYAT(.MYID)
540
z/OS UNIX
v Require that user and group updates (specifically, those involving UID and GID
requests) be performed on a single node, and propagated to other RRSF nodes
from this node. Though you do not have to be concerned with the contents of
BPX.NEXT.USER on any node other than the source node (whether or not
automatic command direction or automatic direction of application updates is
being used), all nodes should be running with SHARED.IDS implemented.
any of the following are true, default OMVS segment processing will not occur:
The FACILITY class is inactive.
The FACILITY class profile BPX.DEFAULT.USER does not exist.
There is no application data in the BPX.DEFAULT.USER profile.
The application data in the BPX.DEFAULT.USER profile does not contain the
name of an existing USER profile, or the names of existing USER and GROUP
profiles.
v When looking for a UID, the USER profile found using the application data does
not contain an OMVS segment, or its OMVS segment does not contain a UID.
v When looking for a GID, the GROUP profile found using the application data
does not contain an OMVS segment, or its OMVS segment does not contain a
GID.
The processing of the default OMVS segments for the user and the current connect
group are independent of each other. The OMVS segment of the user specified on
the initUSP callable service may be used to obtain the UID, and the GID may come
from the group name specified in the FACILITY class profile. Similarly, when the
default UID found via the user ID specified in the FACILITY class profile is used,
the GID may come from the users current connect group. Also, the user ID
specified in the FACILITY class profile does not need to be a member of the group
name specified in that profile. These values are used independently.
Chapter 20. RACF and z/OS UNIX
541
z/OS UNIX
In the following example, the security administrator sets up the default USER and
GROUP OMVS segments in preparation for the installations migration to z/OS
UNIX. In this case, a new user and group profile will be created to contain the
defaults, and the FACILITY class has already been activated.
ADDUSER OEDFLT NAME(OE DEFAULT USER) OMVS(UID(888888) HOME(/u/OEDFLT))
ADDGROUP OEGROUP OMVS(GID(17))
RDEFINE FACILITY BPX.DEFAULT.USER APPLDATA(OEDFLT/OEGROUP)
The format of the application data is exactly as shown when a default is being set
up for both USER and GROUP OMVS segments. To set up a default for the USER
OMVS segment only, the format is:
APPLDATA(OEDFLT)
542
z/OS UNIX
Performance
Active
UNIXMAP class
Active
VLF
Active
UNIXMAP class
Inactive
VLF
Inactive
UNIXMAP class
Active
VLF
Running in this state at all times will give you the best
performance.
If VLF is inactive, requests for UID-to-user-ID mapping
and GID-to-group-name mapping must access a
UNIXMAP class profile in the database, which degrades
performance. Running with VLF inactive should be done
only when you need to stop VLF to make changes to it.
If the UNIXMAP class is inactive, requests for
UID-to-user-ID mapping and GID-to-group-name
mapping must search the entire RACF database when
the UID or GID specified is not found in VLF. Running in
this state degrades performance severely. The inactive
state for the UNIXMAP class is provided as a migration
aid. After migration is complete, you should never need
to run with the UNIXMAP class inactive.
543
z/OS UNIX
Table 40. The UNIXMAP Class and VLF: Effects on Performance for Installations That Have
Not Reached Stage 3 of Application Identity Mapping (continued)
State
Performance
Inactive
UNIXMAP class
Inactive
VLF
You have the option to cache additional z/OS UNIX security information in VLF. This
capability allows RACF to avoid accessing the RACF database when called to
create a security environment for z/OS UNIX users. To use the cached user security
(USP) packet, the IRRSMAP class must be defined to VLF. For more information,
see z/OS Security Server RACF System Programmers Guide.
For information about the effect of certain RACF commands on VLF, see RACF
Commands for Flushing a VLF Cache on page 334.
For more information on VLF, see:
v z/OS MVS Planning: Operations
v z/OS MVS Initialization and Tuning Guide
v z/OS MVS Initialization and Tuning Reference
544
z/OS UNIX
5. Execute the command file produced in step 3. When you execute this file, you
may see messages ICH408I and ICH10102I, indicating that some profile is
already defined to the UNIXMAP class. This occurs if a UID maps to more than
one user ID or if a GID maps to more than one group name.
6. If SETROPTS ADDCREATOR was in effect prior to step 4, issue SETR
ADDCREATOR now to restore that setting.
7. Issue SETROPTS CLASSACT(UNIXMAP). The UNIXMAP profiles will now be
used to do UID and GID lookups. To maintain performance, it is recommended
that the UNIXMAP class remain active.
Administrative activity can now be resumed against users and groups. From this
point, RACF automatically keeps the UNIXMAP profiles synchronized with the user
and group profiles.
RACF creates a UNIXMAP profile named U13 with ORTIZ contained on the access
list. If the following command is subsequently issued:
ALTUSER ORTIZ OMVS(UID(55))
RACF deletes the U13 profile and creates a U55 profile with ORTIZ contained on
the access list.
In general, you should not alter these profiles. However, it is possible that they
might get inadvertently deleted, or damaged by database corruption. If a profile is
deleted, or if the user is not contained in its access list, RACF will not be able to
retrieve information for the UID or GID that the profile represented. RACF will be
unable to locate the mapping profile and will send z/OS UNIX a return code
indicating that the UID or GID is not known.
If this happens, an authorized user needs to repair the damage. First, see if the
user name associated with the UID or the group name associated with the GID can
Chapter 20. RACF and z/OS UNIX
545
z/OS UNIX
be determined from a message displayed by RACF. For example, suppose you
received an error message associated with user ORTIZ. You should display the UID
associated with the user profile for ORTIZ by entering:
LISTUSER ORTIZ OMVS NORACF
If, for example, LISTUSER displays a UID of 13, you would then enter:
RDEFINE UNIXMAP U13 UACC(NONE)
PERMIT U13 CLASS(UNIXMAP) ACCESS(NONE) ID(ORTIZ)
PERMIT U13 CLASS(UNIXMAP) ID(your-userid) DELETE
Note: Generic profile names are generally permitted for resources in the
UNIXPRIV class, though there are certain exceptions such as the
CHOWN.UNRESTRICTED resource. These examples are documented in
their appropriate sections. If you wish to authorize all file-system
privileges, you can use generics and define a profile called
SUPERUSER.FILESYS.**.
546
z/OS UNIX
2. Authorize selected users or groups as appropriate:
PERMIT SUPERUSER.FILESYS.CHOWN CLASS(UNIXPRIV)
ID(appropriate-groups-and-users) ACCESS(READ)
Note: If you do not activate the UNIXPRIV class and activate SETROPTS
RACLIST processing for the UNIXPRIV class, only superusers will be
allowed to transfer ownership of any file.
4. You must activate SETROPTS RACLIST processing for the UNIXPRIV class, if
it is not already active. For a complete description of this function, see
SETROPTS RACLIST Processing on page 128.
SETROPTS RACLIST(UNIXPRIV)
547
z/OS UNIX
Note: If you do not activate the UNIXPRIV class and activate SETROPTS
RACLIST processing for the UNIXPRIV class, only superusers will be
allowed to transfer ownership of files to others.
3. You must activate SETROPTS RACLIST processing for the UNIXPRIV class, if
it is not already active. For a complete description of this function, see
SETROPTS RACLIST Processing on page 128.
SETROPTS RACLIST(UNIXPRIV)
1.
2.
3.
Attention: When a new file system is mounted, you must turn on the set-gid bit of
its root directory if you want new objects within the file system to have their group
owner set to that of the parent directory.
548
z/OS UNIX
Administering ACLs
The z/OS UNIX setfacl command is used to create, modify, and delete ACLs. The
z/OS UNIX getfacl command is used to display the contents of ACLs. To create
and administer an ACL for a file, you must either be the file owner or you must have
superuser authority by having UID(0) or READ access to
SUPERUSER.FILESYS.CHANGEPERMS in the UNIXPRIV class.
You can also use setfacl to create default (or model) ACLs for directories. When
new objects are created within the directory, the default ACL is automatically
inherited by the new object. See z/OS UNIX System Services Planning for complete
information on using ACLs.
You must activate the FSSEC class before ACLs can be used in access decisions.
You can define and display ACLs while the FSSEC class is inactive, however they
will not be used for authorization checking. Similarly, if you have defined default
ACLs on directories, the ACLs will be inherited by new objects while the FSSEC
class is inactive but they will not be used for authorization checking.
The following command can be used to activate the FSSEC class.
Example:
SETROPTS CLASSACT(FSSEC)
When a security decision is needed, the file system calls RACF, supplying the ACL,
if present, and the FSP. RACF provides authorization checking and auditing, and
then returns control to the file system. See Authorization Checking for
RACF-Protected Resources on page 719 for details.
549
z/OS UNIX
1.
_____________________________________________________________
2.
If needed, explicitly allow certain restricted users to access certain files using
the usual authorization method of adding those users, or one of their groups, to
the files ACL using the setfacl command. (See z/OS UNIX System Services
Command Reference for details.)
Example:
setfacl -m user:thabo:rwx MyFile
3.
4.
For any given z/OS UNIX process, the result of the first check to the
RESTRICTED.FILESYS.ACCESS resource will be cached for the life of the
process. Therefore, subsequent authorization changes to this resource will not
take effect for that process.
_____________________________________________________________
550
z/OS UNIX
1.
_____________________________________________________________
2.
See z/OS UNIX System Services Planning for details about authorizing users
for the SUPERUSER.FILESYS resource.
_____________________________________________________________
3.
_____________________________________________________________
SUPERUSER.FILESYS.ACLOVERRIDE is checked only when a users access was
denied by a matching ACL entry based on the users UID or one of the users GIDs.
If the users access was denied by the files permission bits,
SUPERUSER.FILESYS is checked. See Authorizing Access to z/OS UNIX Files
and Directories on page 730 for details.
551
z/OS UNIX
z/OS UNIX provides the pthread_security_np callable service and support through
the C run-time library that enables unauthorized multithreaded applications to create
and delete a RACF security environment in a fashion that is mediated and
controlled by the kernel and RACF.
Note: The term unauthorized refers to applications that are not APF-authorized and
do not run in supervisor state or in a system storage protection key.
The pthread_security_np callable service enables multithreaded applications to
customize the security environment of a thread, allowing it to execute under a
different RACF identity than the server. You need to authorize the server to use the
pthread_security_np service.
552
z/OS UNIX
v READ access allows the server to establish a thread-level security environment
for the clients it services. However, the user ID of the server and the user ID of
the client must be authorized to the resources the server accesses. A thread
level security environment in which both the clients and servers identities are
used in the access control decision, but a password was not supplied by the
client, is called an unauthenticated client security environment.
Depending on the design and implementation of the client/server application, a
client might need to supply an authenticator to the server.
For example, the client might be prompted to supply a password or a password
substitute, such as a RACF PassTicket, to the server to prove its identity. If a
RACF password or PassTicket is specified as a option on the
pthread_security_np service, and the password or PassTicket is valid for the
client user ID, only the RACF user ID of the client is used in rendering access
control decisions. This task level security environment created by an application
server is called an authenticated client security environment. Because the client
has trusted the application server sufficiently to supply a RACF password or
PassTicket to the server, the server is granted the capability of acting as a
surrogate for that client.
This capability enables you to determine:
On behalf of which user IDs the server can act
What resources the server can access when acting on behalf of one of its
clients
Potentially, for additional security checking, two audit records can be produced to
audit:
v The client accessing the resource
v The server accessing the resource on behalf of the client
If you choose to implement this additional security checking, you might need to
authorize the identity associated with the application server to the resource profiles
that protect the resources accessed by the server on behalf of its clients.
See z/OS UNIX System Services Planning for a complete description of the
administrative planning steps and requirements for using the
pthread_security_service.
553
z/OS UNIX
cross-linked with the RACF user ID. This z/OS UNIX service is also supported
through the C run-time library via the __convert_id_np() function call.
These services use the SAF callable service, R_dceruid (IRRSUD00), which
accesses the appropriate profile information stored in the RACF database, to
perform the identity conversion. The use of these identity mapping functions is
RACF-protected. The R_dceruid callable service performs an authorization request
to determine if the user ID associated with the application server is authorized to
use the identity conversion service. Controlling the use of these conversion services
is discussed in Controlling applications that invoke R_dceruid on page 616.
For more information about the convert_id_np(BPX1CID) callable service, see z/OS
UNIX System Services Programming: Assembler Callable Services Reference.The
C language support for the __convert_id_np() is discussed in z/OS C/C++
Run-Time Library Reference.
554
|
|
|
|
|
|
|
|
|
|
556
557
557
559
559
560
561
565
567
567
567
567
568
569
569
571
571
571
572
572
573
573
574
576
577
578
578
578
580
580
581
582
582
582
583
583
583
583
584
584
585
585
586
587
588
588
589
594
594
595
596
597
555
Digital certificates
Scenario 5: Creating Client Browser Certificates with a Locally Signed
Certificate . . . . . . . . . . . . . . . . . . . . . . . . 599
Scenario 6: Enabling Secure Outbound FTP . . . . . . . . . . . . 599
Scenario 7: Sharing One Certificate Between Multiple Servers . . . . . . 600
|
|
|
|
|
|
User certificate
A certificate that is associated with a RACF user ID and is used to
authenticate the users identity. The RACF user ID can represent a
traditional user or be assigned to a server or started procedure.
|
|
|
Certificate-authority certificate
A certificate that is associated with a certificate authority and is used to
verify signatures in other certificates.
556
Digital certificates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Site certificate
A certificate that is associated with an off-platform server or other network
entity, such as a peer VPN server. This category of certificate can also be
used to share a single certificate and its private key among multiple RACF
user IDs. When used for sharing, a certificate may be referred to as a
placeholder certificate.
You can use RACF to administer certificates in two ways:
v You can store certificates and associate them with specific user IDs using the
RACDCERT ADD command. You can also generate your own certificates using
the RACDCERT GENCERT command. In either case, a registered certificate
profile is created in RACF. These profiles are sometimes called discrete
certificate profiles.
Registered certificates are stored in certificate profiles. These profiles contain an
exact copy of the certificate and, for user IDs on this system, the private key, if it
exists. Certificates stored in this way can be used to simply associate a
certificate with a user ID or they may be gathered into a collection, or key ring,
for use by other applications as part of a secure network protocol. For details,
see Using the RACDCERT Command to Administer Certificates and RACF and
Key Rings on page 567.
v You can map several certificates, without storing them, to one or more RACF
user IDs using the RACDCERT MAP command. This method is called certificate
name filtering.
The profiles created by RACDCERT MAP are called certificate mapping profiles.
Such profiles are used only to associate certificates with user IDs. They cannot
be connected to key rings for use by other applications. For details, see
Certificate Name Filtering on page 569.
|
|
|
|
|
|
|
|
RACF has restrictions for the size of the private key for certificates that have
associated private keys. The minimum key size is 512 bits. The maximum key size
is determined by United States export regulations and is controlled by RACF and
non-RACF code in z/OS. Currently, this upper limit is 2048 bits for keys generated
in RACF using the PCI Cryptographic Coprocessor (PCICC) and 1024 bits for keys
generated using cryptographic software or generated outside RACF. For certificates
that do not have associated private keys, the upper limit for the size of the public
key is 2048 bits. Currently, the standard sizes for keys are as follows:
|
|
|
|
|
Key size
512 bits
768 bits
1024 bits
2048 bits
Key type
Low-strength key
Medium-strength key
High-strength key
Very high-strength key
557
Digital certificates
v
v
v
v
v
v
v
The RACDCERT command is your primary administrative tool for managing digital
certificates using RACF. Authority to use the RACDCERT command is controlled
through resources in the FACILITY class. The RACDCERT command is used to
manage resources in the following classes:
|
|
|
DIGTCERT
DIGTRING
DIGTNMAP
USER
|
|
|
Attention
Use caution when executing the DELUSER command from downlevel systems
if your installation shares the RACF database. A DELUSER command
executed from a downlevel system will not manage profiles in the DIGTCERT,
DIGTRING, DIGTNMAP and USER class correctly. You may inadvertently
create inconsistencies in your RACF database, and may leave residual
DIGTCERT, DIGTRING, or DIGTNMAP profiles. See Using the RACF
Remove ID Utility (IRRRID00) on page 372 for information about locating and
removing residual profiles.
See z/OS Security Server RACF Command Language Reference for more
information about the RACDCERT command.
558
Digital certificates
See RRSF Considerations for Digital Certificates on page 414 for information
about propagating updates made by the RACDCERT command to other nodes in
an RRSF network.
559
Digital certificates
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
RDEFINE
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
FACILITY
|
|
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
IRR.DIGTCERT.ADDRING
IRR.DIGTCERT.DELRING
IRR.DIGTCERT.LISTRING
IRR.DIGTCERT.ADD
IRR.DIGTCERT.ALTER
IRR.DIGTCERT.DELETE
IRR.DIGTCERT.LIST
IRR.DIGTCERT.GENCERT
IRR.DIGTCERT.GENREQ
IRR.DIGTCERT.EXPORT
IRR.DIGTCERT.REKEY
IRR.DIGTCERT.ROLLOVER
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
ID(WEBADMIN)
|
|
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
PERMIT
IRR.DIGTCERT.ADD
IRR.DIGTCERT.ALTER
IRR.DIGTCERT.DELETE
IRR.DIGTCERT.LIST
IRR.DIGTCERT.ADDRING
IRR.DIGTCERT.DELRING
IRR.DIGTCERT.LISTRING
IRR.DIGTCERT.CONNECT
IRR.DIGTCERT.REMOVE
IRR.DIGTCERT.REKEY
IRR.DIGTCERT.ROLLOVER
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
CLASS(FACILITY)
ID(*)
ID(*)
ID(*)
ID(*)
ID(*)
ID(*)
ID(*)
ID(*)
ID(*)
ID(*)
ID(*)
PERMIT
PERMIT
IRR.DIGTCERT.LIST
CLASS(FACILITY) ID(HELPDESK) ACCESS(CONTROL)
IRR.DIGTCERT.LISTRING CLASS(FACILITY) ID(HELPDESK) ACCESS(CONTROL)
|
|
IRR.DIGTCERT.ADD
IRR.DIGTCERT.ADDRING
IRR.DIGTCERT.DELRING
IRR.DIGTCERT.LISTRING
IRR.DIGTCERT.CONNECT
IRR.DIGTCERT.REMOVE
IRR.DIGTCERT.LIST
IRR.DIGTCERT.ALTER
IRR.DIGTCERT.DELETE
IRR.DIGTCERT.GENCERT
IRR.DIGTCERT.GENREQ
IRR.DIGTCERT.EXPORT
IRR.DIGTCERT.REKEY
IRR.DIGTCERT.ROLLOVER
IRR.DIGTCERT.MAP
IRR.DIGTCERT.ALTMAP
IRR.DIGTCERT.DELMAP
IRR.DIGTCERT.LISTMAP
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
UACC(NONE)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
ACCESS(CONTROL)
560
Digital certificates
In addition, RACFADM wants to associate the saved certificate for user
NETB0Y with a label called Savings Account. RACFADM issues the following
RACDCERT command:
RACDCERT ID(NETB0Y) ADD(RACFADM.NETB0Y.CERT) TRUST
WITHLABEL(Savings Account)
561
Digital certificates
562
Digital certificates
LISTRING operand. User ID GEORGEM has three key rings with certificates
and one key ring which has no certificates. Figure 52 shows the output of the
following command:
RACDCERT ID(GEORGEM) LISTRING
Cert Owner
-----------ID(GEORGEM)
ID(GEORGEM)
ID(GEORGEM)
ID(JOHNP)
USAGE
-------PERSONAL
CERTAUTH
SITE
PERSONAL
DEFAULT
------YES
NO
NO
NO
Ring:
>GEORGEMsRing<
Certificate Label Name
-------------------------------GEORGEMs Cert # 48
GEORGEMs Cert # 84
New Cert Type - Ser # 00
Cert Owner
-----------ID(GEORGEM)
ID(GEORGEM)
ID(GEORGEM)
USAGE
-------PERSONAL
PERSONAL
PERSONAL
DEFAULT
------NO
NO
YES
Ring:
>GEORGEMsRing#2<
Certificate Label Name
-------------------------------GEORGEMs Cert # 84
GEORGEMs Cert # 48
Cert Owner
-----------ID(GEORGEM)
ID(GEORGEM)
USAGE
-------PERSONAL
PERSONAL
DEFAULT
------NO
NO
Ring:
>GEORGEMsRing#3<
*** No certificates connected ***
Figure 52. Output from the RACDCERT LISTRING Command
3. User NETB0Y requests the listing of his Savings Account digital certificate to
ensure it has been defined, and that it is marked trusted. He has READ
authority to the FACILITY class resource IRR.DIGTCERT.LIST. He issues the
RACDCERT command with the LIST operand, specifying the label to identify his
certificate. Figure 53 shows the output of the following command:
RACDCERT LIST(LABEL(Savings Account))
563
Digital certificates
4. User RACFADM with SPECIAL authority uses the RLIST DIGTCERT * command
to request the listing of all DIGTCERT profiles. This RLIST command lists
information about the profiles that contain digital certificates, rather than
information about the certificates themselves. (Use the RACDCERT LIST
command to list detailed information about certificates.) Figure 54 shows a
partial sample of the output of the following command:
RLIST DIGTCERT *
The RLIST command lists the universal access value for a profile in the
DIGTCERT class differently based on the TRUST status of the digital certificate
contained in the profile:
Trust status
Universal access
Trusted
ALTER
Untrusted
???????
OWNER
-------IBMUSER
UNIVERSAL ACCESS
---------------???????
YOUR ACCESS
----------NONE
WARNING
------NO
INSTALLATION DATA
----------------NONE
APPLICATION DATA
---------------irrcerta
AUDITING
-------FAILURES(READ)
NOTIFY
-----NO USER TO BE NOTIFIED
.
.
.
Figure 54. Output from the RLIST DIGTCERT Command
564
Digital certificates
Figure 55 shows several listings of profiles containing certificate-authority
certificates that are supplied with your RACF system. For more information, see
Supplied digital certificates on page 588.
SEARCH CLASS(DIGTCERT)
[email protected]=ThawtePersonalBasicCA.OU=CertificationServic
esDivision.O=ThawteConsulting.L=CapeTown.SP=WesternCape.C=ZA
[email protected]=ThawtePersonalFreemailCA.OU=Certification
ServicesDivision.O=ThawteConsulting.L=CapeTown.SP=WesternCape.C=ZA
[email protected]=ThawtePersonalPremiumCA.OU=CertificationSe
rvicesDivision.O=ThawteConsulting.L=CapeTown.SP=WesternCape.C=ZA
00BA5AC94C053B92D6A7B6DF4ED053920D.OU=Class2PublicPrimaryCertificationAutho
rity.O=VeriSign,Inc..C=US
00E49EFDF33AE80ECFA5113E19A4240232.OU=Class3PublicPrimaryCertificationAutho
rity.O=VeriSign,Inc..C=US
[email protected]=ThawtePremiumServerCA.OU=CertificationServic
esDivision.O=ThawteConsultingcc.L=CapeTown.SP=WesternCape.C=ZA
[email protected]=ThawteServerCA.OU=CertificationServicesDivisio
n.O=ThawteConsultingcc.L=CapeTown.SP=WesternCape.C=ZA
02AD667E4E45FE5E576F3C98195EDDC0.OU=SecureServerCertificationAuthority.O=RSA
DataSecurity,Inc..C=US
325033CF50D156F35C81AD655C4FC825.OU=Class1PublicPrimaryCertificationAuthori
ty.O=VeriSign,Inc..C=US
3381F595.CN=IntegrionCertificationAuthorityRoot.O=IntegrionFinancialNetwork
.C=US
33820AD2.CN=IBMWorldRegistryCertificationAuthority.O=IBMWorldRegistry.C=US
.
.
.
Figure 55. Output from the SEARCH CLASS(DIGTCERT) Command
565
Digital certificates
RACDCERT CHECKCERT(NETADMN.SOMEONZ.CERT)
Digital certificate information for user GTM:
Label: LABEL00000001
Certificate ID: 2QbVxePC1ujigaWJlYeiQMGDg5aklaNA
Status: NOTRUST
Start Date: 1998/06/05 14:58:37
End Date:
2000/06/04 14:58:37
Serial Number:
>84<
Issuers Name:
>CN=BobsBank Class 2<
Subjects Name:
>[email protected]=G.T.Miles.T=President.OU=Loans.O=BobsBank,INC<
>..SP=NY.L=Internet.C=USA<
Private Key Type: ICSF
Private Key Size: 1024
2. User USERA finds a digital certificate and is uncertain who it belongs to, and
whether or not it has been defined to RACF. The digital certificate is contained
in data set NETADMN.SOMEONZ.CERT and is associated with user GTM. USERA
has READ authority to the data set NETADMN.SOMEONZ.CERT. He issues the
following RACDCERT command. The output he receives reflects only the
certificate information contained in the data set, and does not include certificate
information contained in the RACF database. Note that the listing contains the
same level of information that NETADMN receives in Example 3.
RACDCERT CHECKCERT(NETADMN.SOMEONZ.CERT)
Start Date: 1998/06/05 14:58:37
End Date:
2000/06/04 14:58:37
Serial Number:
>84<
Issuers Name:
>CN=BobsBank Class 2<
Subjects Name:
>[email protected]=G.T.Miles.T=President.OU=Loans.O=BobsBank,INC<
>..SP=NY.L=Internet.C=USA<
3. User NETADMN has a digital certificate in a data set, and is uncertain who it
belongs to, and whether or not it has been defined. The digital certificate is in
data set NETADMN.SOMELSZ.CERT. NETADMN has CONTROL authority to the
FACILITY class resource IRR.DIGTCERT.LIST. He issues the following
RACDCERT, and the output he receives indicates that the certificate is not
associated with a user ID.
566
Digital certificates
RACDCERT CHECKCERT(NETADMN.SOMELSZ.CERT)
Start Date: 1998/03/18 14:58:37
End Date:
2000/03/17 14:58:37
Serial Number:
>79<
Issuers Name:
>CN=BobsBank Class 2<
Subjects Name:
>[email protected]=J. Miles.T=Manager.OU=Branch2.O=BobsBank,INC<
>..SP=NY.L=Internet.C=USA<
System SSL and other security middleware use the R_datalib callable service
(IRRSDL00) to retrieve certificate information from RACF. In order for applications
to retrieve certificates and private keys from RACF, the certificates must be
Chapter 21. RACF and Digital Certificates
567
Digital certificates
connected to a RACF key ring. The key ring is the data store that R_datalib opens,
reads, and closes as directed by the application.
|
|
The usage assigned to a certificate when it is connected to a key ring indicates its
intended purpose. Personal certificates are to be used by the local server
application to identify itself. Certificate-authority certificates are to be used to verify
the peer entitys certificate. Peers with certificates issued by certificate authorities
connected to the key ring are considered trusted network entities. Peers possessing
certificates that can not be verified because the certificate-authority certificate is not
available may also be considered trusted if their personal certificates are connected
to the key ring as a trusted site certificate.
Restrictions:
1. Use caution when connecting a peers certificate to a key ring as a trusted site
certificate. The normal certificate verification tests performed by the server on
the peers certificate are bypassed in this case. Hence, even expired certificates
are considered trusted.
2. Certificates marked NOTRUST cannot be retrieved using the R_datalib callable
service even if they are connected to a key ring. RACF hides them from the
calling application and does not indicate that they connected to the key ring.
|
|
|
|
|
|
|
|
Key rings are associated with specific RACF user IDs. A RACF user ID can have
more than one key ring. Key rings are managed using the RACDCERT command,
and are maintained in the general resource class called DIGTRING.
RACF key rings provide an installation-wide method to share key rings across
multiple servers. You can decentralize responsibility to manage key rings by
granting access to resources in the FACILITY class. (See Examples of Controlling
the Use of the RACDCERT Command on page 559.) However, you can retain sole
ability to connect certificates to key rings at your installation. This will allow you to
implement and maintain a centralized security or trust policy toward certificate
authorities. For example, you can establish key rings for servers that contain
certificates from only approved certificate authorities. You can then delegate other
key-ring responsibilities to server administrators who will be able remove certificates
from their key rings, but not add certificates from unapproved sources.
Key rings are identified by ring names that are 1237 characters in length. Each
key ring profile in the DIGTRING class contains references to those certificates that
are part of that key ring. Profile names are in the form:
userid.ring-name
When you delete a user ID, DELUSER command processing deletes the users key
rings by deleting the associated resources in the DIGTRING class. The certificates
referenced in the key ring are not deleted unless they too are associated with the
user ID being deleted.
|
|
|
|
568
Digital certificates
the SETROPTS RACLIST(DIGTCERT) REFRESH command. If you do not refresh
the RACLISTed DIGTCERT profiles, RACF will still use the new digital certificate.
However, performance may be impacted.
Note: RACF will use the RACLISTed digital certificates first, so any RACLISTed
digital certificates that have been altered, re-added, or deleted will not reflect
those changes until the DIGTCERT class has been refreshed.
Profile names in the DIGTCERT class are in the form:
serial-number.issuers-distinguished-name
For example:
41D87A3B05DE6FBD466C2069661E3872
OU=VeriSign Class1.O=VeriSign.L=Internet
(serial number)
(issuers distinguished name)
Any characters that would not be valid in a profile name, such as a blank, will be
replaced with X'4A' (). The profile name for this DIGTCERT profile would be:
41D87A3B05DE6FBD466C2069661E3872.OU=VeriSignClass1.O=VeriSign.L=Internet
In this profile, the APPLDATA contains the RACF user ID associated with this digital
certificate. The UACC of profiles in this class is the status of the certificate. When a
certificates status is set to TRUST, the initACEE callable service allows it to be
mapped to the RACF user ID contained in the APPLDATA field.
569
Digital certificates
Table 41. Subjects and Issuers Distinguished Names
Subjects distinguished name
CN=Agneta Berglund.OU=Sales.OU=New
York.OU=US.O=World Sales Corp
CN=Hiro Ogura.OU=Admin.OU=New
York.OU=US.O=World Sales Corp
CN=Timo Kokkonen.OU=Sales.OU=Los
Angeles.OU=US.O=World Sales Corp
\
/
\
O=World Sales Corp
L=Internet
/
\
/
O=VeriSign, Inc.
/
\
OU=US
OU=VeriSign Class 1
/
\
Individual Subscriber
/
\
/
\
OU=New York
OU=Los Angeles
/
\
\
/
\
\
OU=Sales
OU=Admin
OU=Sales
/
\
\
/
\
\
CN=Agneta Berglund
CN=Hiro Ogura
CN=Timo Kokkonen
Now, lets look at the left branch of the tree in Figure 56 as representing a
hierarchical organization, with each level of the tree, or node, representing a
different level within an organization. For example, Agneta works in the Sales
department in New York for the US division of the World Sales Corporation. If
viewed as a hierarchy of user groups, each level of the tree may represent
increased access authority, with each group consisting of the groups below it.
For example, as an employee of World Sales, Agneta may have access to the
internal phone numbers of all World Sales employees. As a member of the US
division, she may also have access to the US division internal Web site, in addition
to the phone numbers of all employees. Being in New York may allow her to run
sales reports for the New York office, as well as to access the Web site and
employee phone numbers. Being in the Sales department may allow her to place
customer orders, in addition to all other access authorities.
You can associate a user ID with each node in a directory information tree using
certificate name filtering. Each user ID may represent a number of users, each of
whom has one or more digital certificates. Therefore, you can administer several
certificates and the access authorities for several users, through a single user ID.
570
Digital certificates
For each node that you associate with a user ID, you create a certificate name filter
that contains partial or full distinguished names, depending on where the node falls
in the hierarchy.
Figure 57. Sample RACDCERT MAP Command for Creating an Issuers Name Filter
See z/OS Security Server RACF Command Language Reference for more
information about the RACDCERT MAP command.
The PROTECTED attribute protects the user ID from being used to logon directly to
the system and from being revoked through incorrect password attempts. See
Defining Protected User IDs on page 87.
The RESTRICTED attribute ensures that the user ID will not be used to access
protected resources it is not specifically authorized to access. See Defining
Restricted User IDs on page 88.
571
Digital certificates
Once SETROPTS RACLIST processing is active for the DIGTNMAP class, you
must refresh the DIGTNMAP class in order for new or changed certificate name
filters to take effect. After creating or changing a certificate name filter, you must
issue the following command:
SETROPTS RACLIST(DIGTNMAP) REFRESH
Attention
Use caution when executing the RACDCERT MAP command from systems
that do not support the DIGTNMAP class, if your installation shares the RACF
database with downlevel systems. A RACDCERT command executed from a
downlevel system will not manage profiles in the DIGTNMAP class. You may
inadvertently create inconsistencies in your RACF database, and may leave
residual DIGTNMAP profiles. See Using the RACF Remove ID Utility
(IRRRID00) on page 372 for more information about locating and removing
residual profiles.
The SEARCH FILTER and RLIST commands are not intended for use with profiles
in the DIGTNMAP class and will deliver unpredictable results. These profiles can
only be displayed using the RACDCERT LISTMAP command: For example:
RACDCERT ID(WEBUSER) LISTMAP
Based on the output of the RACDCERT LISTMAP command shown in Figure 58,
there is one certificate name filter associated with the WEBUSER user ID.
Figure 58. Sample Output from the LISTMAP Command for an Issuers Name Filter
See z/OS Security Server RACF Command Language Reference for more
information about the RACDCERT LISTMAP command.
572
Digital certificates
Figure 59. Sample RACDCERT MAP Commands for Creating Subjects Name Filters
The filter labeled NY SALES REPS contains the portion of the subjects distinguished
name that identifies the user as an employee of the Sales department in the New
York office of the US division of the World Sales Corporation. Based on this filter,
RACF will associate the user ID NYSALES to any user presenting a certificate
containing this significant portion of the subjects distinguished name, who does not
have an individual certificate registered with RACF.
The filter labeled NY OTHERS contains the portion of the subjects distinguished
name that identifies the user as an employee in the New York office of the US
division of the World Sales Corporation. Based on this filter, RACF will associate
the user ID NYUSER to any user presenting a certificate containing this significant
portion of the subjects distinguished name, who does not have an individual
certificate registered with RACF.
Users that present certificates that contain subjects distinguished names that match
both filters will be associated with the user ID of the most specific filter. In this case,
the most specific filter is the filter labeled NY SALES REPS. For example, if the
users Agneta and Hiro, whose certificate information is shown in Table 41 on page
570, present certificates while these two subjects name filters are in effect, the
following will result:
1. Agneta will be associated with the user ID NYSALES, based on the filter labeled
NY SALES REPS.
2. Hiro will be associated with the user ID NYUSER, based on the filter labeled NY
OTHERS.
573
Digital certificates
Note: If either Agneta or Hiro had individual certificates registered to RACF,
they would have been assigned the user ID specified when the
certificates were registered.
Details for Processing Subjects Name Filters: Using the previous example,
Hiro presents a certificate that is not registered with RACF. The following represents
the sequence of processing that RACF, specifically the initACEE callable service,
will complete to process a subjects name filter.
1. The sequence shown in How RACF Processes Certificate Name Filters on
page 576 is followed, until the full subjects name is used to check for a
matching profile in the DIGTNMAP class, to determine if there is an applicable
certificate name filter.
Result: No DIGTNMAP profile is found to match:
CN=Hiro Ogura.OU=Admin.OU=New York.OU=US.O=World Sales Corp
2. A partial subjects name is formed by removing the most specific node (the CN
node) and used to check for a matching profile in the DIGTNMAP class.
Result: No DIGTNMAP profile is found to match:
OU=Admin.OU=New York.OU=US.O=World Sales Corp
3. The next partial subjects name is formed by removing the next most specific
node (OU=Admin) and used to check for a matching profile in the DIGTNMAP
class.
Result: A DIGTNMAP profile is found to match:
OU=New York.OU=US.O=World Sales Corp
4. Processing by initACEE continues using the user ID NYUSER for Hiros certificate.
574
Digital certificates
Example: The RACDCERT MAP command shown in Figure 60 creates a subjects
and issuers name filter based on the partial subjects distinguished name and the
full issuers name.
Figure 60. Sample RACDCERT MAP Command for Creating a Subjects and Issuers Name
Filter
This filter contains the portion of the subjects distinguished name that identifies the
user as an employee of the Administration department in the New York office of the
US division of the World Sales Corporation, and the full issuers distinguished name
that identifies the issuer as VeriSign Class 1. Based on this filter, RACF will
associate the user ID NYADMIN to any user presenting a certificate issued by
VeriSign Class 1 containing this significant portion of the subjects distinguished
name, who does not have an individual certificate registered with RACF.
Therefore, if the users Timo and Hiro, whose certificate information is shown in
Table 41 on page 570, present certificates while all defined name filters are in
effect, the following will result:
1. Hiro will be associated with the user ID NYADMIN, based on the filter labeled NY
ADMIN.
2. Timo will be associated with the user ID WEBUSER, based on the filter labeled
INTERNET OTHERS.
Note: If either Hiro or Timo had individual certificates registered to RACF, they
would have been assigned the user ID specified when the certificates
were registered.
Details for Processing Subjects and Issuers Name Filters: Timo presents a
digital certificate that is not registered with RACF. The following represents the
sequence of processing that RACF, specifically the initACEE callable service, will
complete in order to process full and partial subjects names.
1. The sequence shown in How RACF Processes Certificate Name Filters on
page 576 is followed, until the full subjects name and issuers name is used to
check for a matching profile in the DIGTNMAP class, to determine if there is an
applicable certificate name filter.
Result: No DIGTNMAP profile is found to match:
CN=Timo Kokkonen.OU=Sales.OU=Los Angeles.OU=US.O=World Sales Corp |
OU=VeriSign Class 1 Individual Subscriber.O=VeriSign, Inc.L=Internet
2. A partial subjects name is formed by removing the most specific node (the CN
node) and used to check for a matching profile in the DIGTNMAP class.
Result: No DIGTNMAP profile is found to match:
OU=Sales.OU=Los Angeles.OU=US.O=World Sales Corp | OU=VeriSign Class 1
Individual Subscriber.O=VeriSign, Inc.L=Internet
3. The next partial subjects name is formed by removing the next most specific
node (OU=Sales) and used to check for a matching profile in the DIGTNMAP
class.
Result: No DIGTNMAP profile is found to match:
Chapter 21. RACF and Digital Certificates
575
Digital certificates
4.
5.
6.
7.
Each step of the search using a partial name may actually involve a series of
searches for partial name values based on the full name. Each partial name value
576
Digital certificates
in the series is determined by removing the next most specific node in the name.
For details on searching for a series of partial name values, see the next example
using Timos certificate.
|
The RACDCERT MAP commands in Figure 62 can be used to create the same
certificate name filters as those created by the RACDCERT MAP commands in
Figure 61. Note that the RACDCERT commands in Figure 61 using the model
certificate are shorter and may minimize typographic errors when defining long filter
names.
Figure 62. Sample RACDCERT MAP Commands Not Using a Model Certificate
577
Digital certificates
Figure 63. Sample RACDCERT MAP Command Using the NOTRUST Option
578
Digital certificates
contracted VeriSign to issue certificates to its users, one certificate for each user.
When one of the companys users connects to the royalties application, the users
certificate should be assigned the ROYALID user ID. When one of the companys
users connects to the inventory application, the users certificate should be
assigned the INVID user ID.
The RACDCERT MAP and RDEFINE commands shown in Figure 64 create a full
issuers name filter that maps these two user IDs based on the application being
accessed by the user of the certificate. The RACDCERT command uses the
MULTIID option to specify additional criteria contained in the DIGTCRIT class using
the predefined variable &APPLID. The RDEFINE commands create two profiles in the
DIGTCRIT class that associate each APPLID value with the user ID indicated by
the APPLDATA value.
Figure 64. Sample RACDCERT MAP and RDEFINE Commands for Mapping Multiple User
IDs
You can display mapping information for a MULTIID filter using the RACDCERT
LISTMAP command with the LABEL option. For example:
RACDCERT MULTIID LISTMAP(LABEL(All Michaels Music Employees))
Figure 65. Sample Output from the LISTMAP Command for a MULTIID Filter
For details about using the RACDCERT MAP command with the MULTIID option,
RACDCERT LISTMAP, and the RDEFINE command, see z/OS Security Server
RACF Command Language Reference.
If a user certificate is used for additional applications and should be associated with
a user ID for these applications, you can create a generic DIGTCRIT profile named
APPLID=* to cover all other applications. For example, the addition of the following
DIGTCRIT profile to the MULTIID filter created in Figure 64 specifies that the
ALLAPPS user ID should be associated with all certificates used to access all other
applications.
579
Digital certificates
SETROPTS GENERIC(DIGTCRIT)
RDEFINE DIGTCRIT APPLID=* APPLDATA(ALLAPPS)
SETROPTS RACLIST(DIGTCRIT) REFRESH
Note: If the caller of the initACEE callable service does not specify the APPLID
variable, only the APPLID=* profile in the DIGTCRIT class will be used to
determine the RACF user ID.
LOW
The RACDCERT MAP and DIGTCRIT commands shown in Figure 66 on page 581
set up an issuers name filter that uses multiple user IDs based on SYSID and
ENCRLVL. In this example, there is a certificate available for use as a model in
data set JAMALDC. The certificate contains the following issuers name.
OU=Jamals Bank General Subscriber.O=VeriSign, Inc.L=Internet
580
Digital certificates
GENERIC(DIGTCRIT)
DIGTCRIT SYSID=SYSB.ENCRLVL=HIGH APPLDATA(ACCTREP)
DIGTCRIT SYSID=SYSB.ENCRLVL=*
APPLDATA(GENERAL)
DIGTCRIT SYSID=SYSA.ENCRLVL=*
APPLDATA(GENERAL)
RACLIST(DIGTCRIT) REFRESH
Figure 66. Sample RACDCERT MAP and RDEFINE Commands using Multiple Criteria
The issuers name filter created in Figure 66 associates the following user IDs:
GENERAL
ACCTREP
Details for Processing an Issuers Name Filter with Multiple Criteria: For
example, if a customer accesses the Jamals Bank system using an unregistered
user certificate, the following represents the sequence of processing that RACF,
specifically the initACEE callable service, will complete to process multiple criteria
using a DIGTCRIT profile.
1. The sequence shown in How RACF Processes Certificate Name Filters on
page 576 is followed, until the full issuers name is used to check for a matching
profile in the DIGTNMAP class, to determine if there is an applicable certificate
name filter.
Result: A DIGTNMAP profile is found to match:
OU=Jamals Bank General Subscriber.O=VeriSign, Inc.L=Internet
2. The criteria definitions, SYSID=&SYSID.ENCRLVL=&ENCRLVL are found in the
DIGTNMAP profile, and the supplied values are substituted for each variable:
SYSID=SYSA and ENCRLVL=LOW.
Result: A DIGTCRIT profile is found to match:
SYSID=SYSA.ENCRLVL=*
3. Processing by initACEE continues using the user ID GENERAL for the customers
certificate.
Note: In this example, if the application calling the initACEE callable service
does not pass the ENCRLVL variable, only the SYSID= value is used to
determine the user ID. Therefore, the DIGTCRIT profile named
SYSID=SYSA.ENCRLVL=* is found to match, and the user ID GENERAL is still
used for the customers certificate.
581
Digital certificates
Once SETROPTS RACLIST processing is active for the DIGTCRIT class, you must
refresh the DIGTCRIT class in order for new or changed profiles to take effect. After
creating or changing a DIGTCRIT class profile, you must issue the following
command:
SETROPTS RACLIST(DIGTCRIT) REFRESH
|
|
|
|
|
582
Digital certificates
|
|
|
|
|
|
|
|
You may receive a notification from your certificate authority that a certificate is
nearing its expiration date. When you renew a certificate using the same private
key, you extend the life of the private key and all information in the expiring
certificate is updated to reflect the renewal, including the key ring connection
information. The following procedures outline the steps to renew a certificate
labeled My Web Server Cert and is associated with the RACF user ID WEBSRV. In
each procedure, the expiring certificate was either issued by an external certificate
authority, issued by a local certificate authority, or was self-signed within RACF.
|
|
|
|
|
|
|
1.
583
Digital certificates
_____________________________________________________________
|
|
|
|
|
|
|
2.
Send the certificate request to the CA and receive the newly signed and
reissued certificate back from the CA into MVS data set SYSADM.CERT.B64.
Restriction: The certificate request data contained in the data set must be sent
to, and received from, the external CA using the process defined by the CA.
Those steps are not included.
_____________________________________________________________
|
|
|
|
3.
Add the newly signed certificate into RACF and replace the existing certificate
by executing the following command:
|
|
|
You have now renewed a certificate that was issued by an external certificate
authority using the same private key. All information in the certificate is updated to
reflect the renewal, including the key ring connection information.
|
|
|
|
|
|
|
|
|
|
1.
2.
_____________________________________________________________
Perform the following steps to renew an expiring certificate using the same private
key when the certificate was generated by RACF and issued by a local certificate
authority. The expiring certificate was signed by a CERTAUTH certificate labeled
Local RACF CA.
Create a certificate request based on the expiring certificate and store it in a
MVS data set SYSADM.CERT.REQ by executing the following command:
RACDCERT ID(WEBSRV) GENREQ(LABEL(My Web Server Cert))
DSN(SYSADM.CERT.REQ)
_____________________________________________________________
|
|
|
Renew and replace the existing certificate by executing the following command:
RACDCERT ID(WEBSRV) GENCERT(SYSADM.CERT.REQ)
SIGNWITH(CERTAUTH LABEL(Local RACF CA))
_____________________________________________________________
|
|
|
You have now renewed a certificate that was signed by a local certificate authority
and you renewed it using the same private key. All information in the certificate is
updated to reflect the renewal, including the key ring connection information.
|
|
|
|
|
|
|
|
1.
|
|
|
|
|
2.
|
|
|
You have now renewed an expiring self-signed certificate using the same private
key. All information in the certificate is updated to reflect the renewal, including the
key ring connection information.
_____________________________________________________________
Execute the following command to renew and replace the expiring self-signed
certificate:
RACDCERT ID(WEBSRV) GENCERT(SYSADM.CERT.REQ)
SIGNWITH(LABEL(My Web Server Cert))
_____________________________________________________________
584
Digital certificates
|
|
|
|
|
|
When you renew a certificate using a new private key, you retire the private key
and replace it with a new one. This process is commonly called certificate rekeying
or key rollover. You choose this option to prevent a private key from being
overused. (The more a key is used, the more susceptible it is to being broken and
recovered by an unintended party.)
|
|
|
|
|
|
|
All information in the renewed certificate is updated to reflect the renewal, including
the key ring connection information. Once you retire and replace the old certificate,
you can now begin to use the new certificate and its private key. You can continue
to use the old, retired certificate until it expires to verify previously generated
signatures. However, you cannot use the retired certificate to sign new certificates.
Additionally, do not connect the retired certificate to any key rings as the default
certificate.
|
|
|
|
|
|
|
|
When you rekey and rollover a private key, you use the REKEY and ROLLOVER
operands of the RACDCERT command. The REKEY operand makes a self-signed
copy of the original certificate with a new public-private key pair. The ROLLOVER
operand finalizes the rekey operation by replacing the use of the original certificate
with the new certificate in every key ring to which the original certificate is
connected. It also destroys the original private key and copies over the information
about its serial number base in case the certificate was being used to sign new
certificates.
|
|
|
In the following procedures, the expiring certificate was either issued by an external
certificate authority, issued by a local certificate authority, or was self-signed within
RACF. In each case, you will replace the private key with a new one.
|
|
|
|
|
|
|
|
|
1.
In this procedure, you are renewing a CERTAUTH certificate with label Local PKI
CA. It was issued by a commercial CA and is being used by PKI Services for the
PKI templates as a certificate authority (CA) certificate, making the PKI Services CA
a subordinate CA. The PCI cryptographic coprocessor will to be used to generate
the new key-pair. The size of the new private key will be 1024 bits (RACF default
size).
|
|
|
_____________________________________________________________
|
|
|
|
|
2.
|
|
|
|
|
3.
Create a request for an external CA to sign the new public key and reissue the
certificate. Create the request for the new key and store it in MVS data set
SYSADM.CERT.REQ by executing the following command:
RACDCERT CERTAUTH GENREQ(LABEL(Local PKI CA-2)) DSN(SYSADM.CERT.REQ)
_____________________________________________________________
Send the certificate request to the CA and receive the newly signed and
reissued certificate back from the CA into MVS data set SYSADM.CERT.B64.
Restriction: The certificate request data contained in the data set must be sent
to, and received from, the external CA using the process defined by the CA.
Those steps are not included.
Chapter 21. RACF and Digital Certificates
585
Digital certificates
_____________________________________________________________
|
|
|
|
|
4.
|
|
|
|
|
|
|
|
5.
You are now ready to retire the original certificate and must stop all use of the
original private key. If you are rekeying the PKI Services CA certificate, stop the
PKI Services daemon.
At this point, the original certificate and its private key exist in RACF with label
Local PKI CA. The new certificate and its private key exist in a separate
entry in RACF with label Local PKI CA-2. You can proceed to rollover the
key.
_____________________________________________________________
6.
Add the newly signed certificate into RACF and replace the self-signed rekeyed
certificate by executing the following command:
RACDCERT CERTAUTH ADD(SYSADM.CERT.B64)
_____________________________________________________________
|
|
|
_____________________________________________________________
|
|
|
7.
|
|
|
|
|
|
|
|
You have now rekeyed a certificate that was issued by an external certificate
authority, using a new private key. All information in the certificate is updated to
reflect the renewal, including the key ring connection information. You have retired
and replaced the old certificate. You can now begin to use the new certificate and
its private key. You can continue to use the old certificate for signature verification
purposes until it expires. However, you cannot use the old certificate to sign new
certificates. Additionally, do not connect the old certificate to any key rings, as the
default certificate.
|
|
|
|
|
|
Perform the following steps to rekey a certificate issued by a local CA and replace
the private key.
1.
If you rekeyed the PKI Services CA certificate for the PKI templates, restart the
PKI Services daemon.
_____________________________________________________________
In this procedure, you are rekeying the certificate associated with the user ID
FTPSRV with label My FTP Server Cert. The certificate was issued by a
CERTAUTH certificate with label Local RACF CA that was generated by RACF.
|
|
|
_____________________________________________________________
|
|
|
|
|
2.
3.
Create a certificate request based on the new self-signed certificate and store it
in a MVS data set SYSADM.CERT.REQ by executing the following command:
RACDCERT ID(FTPSRV) GENREQ(LABEL(My FTP Server Cert-2))
DSN(SYSADM.CERT.REQ)
_____________________________________________________________
|
|
|
_____________________________________________________________
586
Digital certificates
|
|
|
|
|
|
|
4.
5.
|
|
|
You are now ready to retire the original certificate and must stop all use of the
original private key.
At this point, the original certificate and its private key exist in RACF with label
My FTP Server Cert. The new certificate and its private key exist in a
separate entry in RACF with label My FTP Server Cert-2. You can now
proceed to rollover the key.
_____________________________________________________________
Finalize the rollover by executing the following command:
RACDCERT ID(FTPSRV) ROLLOVER(LABEL(My FTP Server Cert))
NEWLABEL(My FTP Server Cert-2)
_____________________________________________________________
|
|
|
|
|
|
|
|
You have now renewed a certificate that was signed by a local certificate authority
and you renewed it using a new private key. All information in the certificate is
updated to reflect the renewal, including the key ring connection information. You
have retired and replaced the old certificate. You can now begin to use the new
certificate and its private key. You can continue to use the old certificate for
signature verification purposes until it expires. However, you cannot use the old
certificate to sign new certificates. Additionally, do not connect the old certificate to
any key rings, as the default certificate.
|
|
|
|
|
1.
|
|
|
_____________________________________________________________
|
|
|
|
|
|
2.
You are now ready to retire the original certificate and must stop all use of the
original private key.
At this point, the original certificate and its private key exist in RACF with label
My FTP Server Cert. The new certificate and its private key exist in a
separate entry in RACF with label My FTP Server Cert-2. You can now
proceed to rollover the key.
3.
|
|
|
|
|
|
|
|
|
|
_____________________________________________________________
You have now renewed an expiring self-signed certificate using a new private key.
All information in the certificate is updated to reflect the renewal, including the key
ring connection information. You have retired and replaced the old certificate. You
can now begin to use the new certificate and its private key. You can continue to
use the old certificate for signature verification purposes until it expires. However,
you cannot use the old certificate to sign new certificates. Additionally, do not
connect the old certificate to any key rings, as the default certificate.
587
Digital certificates
The supplied certificate-authority certificates are not connected to any key ring and
are defined as untrusted. This means that they will not be used for authenticating
these certificate authorities until you decide to use them.
Do not delete these certificates. If they do not exist at IPL time, RACF initialization
will automatically add them. Therefore, if you delete them, they will be recreated at
the next IPL.
1.
_____________________________________________________________
2.
_____________________________________________________________
3.
588
Add a key ring for your server application, such as your Web server.
Digital certificates
Example:
RACDCERT ADDRING(SSLring) ID(WEBSRV)
_____________________________________________________________
4.
Repeat this step for each certificate you want your server to accept.
_____________________________________________________________
5.
Unless already done, generate or acquire a certificate and private key for your
server. Certificates can be generated using a product such as z/OS Security
Server PKI Services, or by RACF using the RACDCERT GENCERT command.
_____________________________________________________________
589
Digital certificates
>US<
Private Key Type: None
Ring Associations:
*** No rings associated ***
590
Digital certificates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
End Date:
2011/10/24 23:59:59
Serial Number:
>236C971E2BC60D0BF97460DEF108C3C3<
Issuers Name:
>OU=Class 3 Public Primary Certification Authority.O=VeriSign, Inc..C=<
>US<
Subjects Name:
>OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign.O<
>U=VeriSign International Server CA - Class 3.OU=VeriSign, Inc..O=Veri<
>Sign Trust Network<
Key Usage: CERTSIGN
Private Key Type: None
Ring Associations:
*** No rings associated ***
591
Digital certificates
>e.C=ZA<
Private Key Type: None
Ring Associations:
*** No rings associated ***
592
Digital certificates
Label: Integrion CA
Certificate ID: 2QiJmZmDhZmjgcmVo4WHmYmWlUDDwUBA
Status: NOTRUST
Start Date: 1997/05/20 10:03:48
End Date:
2017/05/20 10:03:48
Serial Number:
>3381F595<
Issuers Name:
>CN=Integrion Certification Authority Root.O=Integrion Financial Netwo<
>rk.C=US<
Subjects Name:
>CN=Integrion Certification Authority Root.O=Integrion Financial Netwo<
>rk.C=US<
Private Key Type: None
Ring Associations:
*** No rings associated ***
593
Digital certificates
Key Usage: CERTSIGN
Private Key Type: None
Ring Associations:
*** No rings associated ***
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Implementation Scenarios
Scenario 1: Secure Server with a Certificate Signed by a Certificate
Authority
Secure servers require the ability to retrieve the certificate that is associated with a
particular server, along with the ability to perform operations with the private key of
the server, such as establishing an SSL session. Assume that we have a secure
server which has the distinguished name of OU=Inventory,O=XYZZY,C=US and a
domain name of xyzzy.com. This server executes on z/OS with the user ID
INVSERV. The steps to implement a server certificate are:
1. Generate a self-signed certificate for the server. This certificate is associated
with the user ID that is associated with the secure server.
RACDCERT ID(INVSERV)
GENCERT
SUBJECTSDN(CN(xyzzy.com)
OU(Inventory)
O(XYZZY)
C(US))
WITHLABEL(Inventory Server)
Note: SSL requires that the domain name must be the common name (CN).
2. Create a certificate request to send to our chosen certificate authority. The
certificate request that we are creating is based on the certificate that we
created in the step above. Place this certificate into the data set
MARKN.INVSERV.GENREQ.
RACDCERT ID(INVSERV)
GENREQ(LABEL(Inventory Server))
DSN(MARKN.INVSERV.GENREQ)
3. Send the certificate request to the certificate authority. The certificate request is
in base64-encoded text. Typically, the request is sent to the certificate authority
by using cut and paste to place the certificate request into an e-mail that is
sent to the certificate authority.
Note: RACF is not involved with this step.
594
Digital certificates
4. The certificate authority validates the certificate. If the certificate is approved by
the certificate authority, it is signed by the certificate authority, and returned to
the requestor.
Note: RACF is not involved with this step.
5. Receive the returned certificate into a data set (for
example,MARKN.INVSERV.CERT). The returned certificate is in base64-encoded
text. This may be done with cut and paste, FTP, or other technique.
Note: RACF is not involved with this step.
6. Replace the self-signed certificate with the certificate signed by the certificate
authority. Note that the certificate is only replaced if the user ID that is
specified as the ID value on the RACDCERT ADD command is the same user
ID that was specified when the certificate was created. If the ID is not the
same, then the certificate is added anew.
RACDCERT ID(INVSERV)
ADD(MARKN.INVSERV.CERT)
WITHLABEL(Inventory Server)
7. Connect the certificate to INVSERVs existing key ring and mark it as the
default certificate.
RACDCERT ID(INVSERV)
CONNECT(LABEL(Inventory Server)
RING(RING01)
DEFAULT)
|
|
|
|
|
|
|
|
|
|
|
|
|
8. Assuming the chosen certificate authority certificate has already been added to
RACF under CERTAUTH with the label of External Inventory CA, connect it
to the key ring as well. This completes the certificate hierarchy from root to
inventory server.
RACDCERT ID(INVSERV)
CONNECT(CERTAUTH LABEL(External Inventory CA)
RING(RING01))
10. Configure INVSERVs software to use RING01 for SSL. For example, for the
z/OS HTTP Server, set the keyFile directive to KeyFile RING01 SAF.
Note: RACF is not involved with this step.
595
Digital certificates
2. Export the certificate to a data set, in this case MARKN.LOCCERTA.CERT.
RACDCERT CERTAUTH
EXPORT(LABEL(XYZZY Local Certificate Authority))
DSN(MARKN.LOCCERTA.CERT)
3. Place the certificate into the z/OS UNIX hierarchical file system (HFS).
OPUT MARKN.LOCCERTA.CERT /u/loccerta/certauth.cacert
7. Connect the certificate to INVSERVs existing key ring and mark it as the
default certificate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RACDCERT ID(INVSERV)
CONNECT(LABEL(Inventory Server)
RING(RING01)
DEFAULT)
8. Connect the local certificate authority certificate to the key ring as well. This
completes the certificate hierarchy from root to inventory server.
RACDCERT ID(INVSERV)
CONNECT(CERTAUTH LABEL(XYZZY Local Certificate Authority)
RING(RING01))
10. Configure INVSERVs software to use RING01 for SSL. For example, for the
z/OS HTTP Server, set the keyFile directive to KeyFile RING01 SAF.
Note: RACF is not involved with this step.
|
|
|
|
|
596
Digital certificates
|
|
|
1. Using ikeyman or gskkyman, export the certificate from the ikeyman or gskkyman
key database file as a PKCS#12 export file and place it into the z/OS UNIX
HFS.
|
|
|
|
|
|
|
|
|
|
|
|
3. Add the certificate to the RACF database and assign it a user. Assume that
ikeyman or gskkyman encrypted the certificate with the password xyz.
RACDCERT ID(MARKN)
ADD(MARKN.IMPORTED.CERT)
WITHLABEL(Mark"s Personal Certificate)
TRUST
PASSWORD(xyz)
|
|
|
|
|
|
|
|
|
Authority required: CLAUTH for the USER class and JOIN in the default
group to which they are connected.
2. Create the internal certificate authority.
RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN(ACME CA) O(ACME) C(US))
WITHLABEL(ACME)
597
Digital certificates
4. Generate the server certificates and the associated private keys. On platforms
other than z/OS or OS/390, this is performed using a facility such as mkkf,
ikeyman, or equivalent. On z/OS or OS/390, this is performed using the
RACDCERT GENCERT command. To generate the certificates for the two
servers, these two RACDCERT commands are required:
RACDCERT ID(INSS)
GENCERT
SUBJECTSDN(CN(Internal Secure Server) C(US))
WITHLABEL(INSS-001)
SIGNWITH(CERTAUTH LABEL(ACME))
RACDCERT ID(EXSS)
GENCERT
SUBJECTSDN(CN(External Secure Server) C(US))
WITHLABEL(EXSS-001)
The internal server certificate was signed by the internal certificate authority.
However, the external server certificate must be signed by the "Really Big"
external certificate authority. To do that, follow steps 26 in Scenario 1
replacing the ID and LABEL values specified with ID(EXSS) and
LABEL(EXSS-001).
Authority required: UPDATE to the resources IRR.DIGTCERT.ADD and
IRR.DIGTCERT.GENREQ in the FACILITY class, along with CONTROL to the
resource IRR.DIGTCERT.GENCERT in the FACILITY class.
5. Create key rings for the secure servers.
|
|
|
|
|
|
|
|
|
|
|
|
|
9. Configure INSSs software to use RING01 for SSL. For example, for the z/OS
HTTP Server, set the keyFile directive to KeyFile RING01 SAF.
Note: RACF is not involved with this step.
10. Give user EXSS permission to read its own key ring:
|
|
|
|
|
|
11. Configure EXSSs software to use RING01 for SSL. For example, for the z/OS
HTTP Server, set the keyFile directive to KeyFile RING01 SAF.
Note: RACF is not involved with this step.
598
Digital certificates
3. Export the certificate and private key to an MVS data set in PKCS#12 binary
form where the password is The circus is coming:
RACDCERT ID(MARKN)
EXPORT
LABEL(My Browser Cert)
DSN(MARKN.BROWSERC.P12BIN)
PASSWORD(The circus is coming)
FORMAT(PKCS12DER)
4. Use FTP to send the exported certificate data set in binary format to the target
workstation. Use the appropriate browser-specific procedure to import the
PKCS#12 package.
Note: RACF is not involved with this step.
5. Optionally, the certificate labeled My Browser Cert may be deleted from the
RACF database if an appropriate certificate name filter is available to provide a
user ID association, and the specific association between this certificate and the
user ID MARKN is not required.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
599
Digital certificates
2. Create a key ring to hold the three certificate authority certificates. (This key ring
represents the FTP trust policy for this company.) The key ring must be
associated with a single user ID even though it will be shared by multiple users.
Therefore, the key ring in this scenario is associated with the local FTP server
daemon user ID, FTPD:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. Connect the three certificate authority (CA) certificates to the FTP servers key
ring. Because this key ring will contain only CA certificates, it will not have a
default certificate. Therefore, the DEFAULT keyword is not specified.
RACDCERT ID(FTPD) CONNECT(CERTAUTH LABEL(CA For FTP Server 1) RING(RING01))
RACDCERT ID(FTPD) CONNECT(CERTAUTH LABEL(CA For FTP Server 2) RING(RING01))
RACDCERT ID(FTPD) CONNECT(CERTAUTH LABEL(CA For FTP Server 3) RING(RING01))
4. Permit the z/OS users who need to invoke FTP (USER01 and USER02) read
access to the shared key ring:
RDEFINE FACILITY IRR.DIGTCERT.LISTRING UACC(NONE)
PERMIT IRR.DIGTCERT.LISTRING CLASS(FACILITY) ID(USER01,USER02) ACCESS(UPDATE)
5. Configure the FTP client to use the shared key ring by specifying its fully
qualified name for the KEYRING directive:
KEYRING FTPD/RING01
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Restriction: You may be restricted from sharing certificates if, for example, you use
a protocol that requires different certificate extensions each server.
1. Generate a self-signed placeholder certificate for the two servers. Since this will
be a shared certificate, it should be associated with SITE rather than the
INVSERV user ID:
RACDCERT SITE GENCERT
SUBJECTSDN(CN(xyzzy.com) OU(Shared) O(XYZZY) C(US))
WITHLABEL(Shared Server)
3. Send the certificate request to the CA and receive the returned certificate from
the CA into data set MARKN.SHRSERV.CERT.
Restriction: The certificate request data contained in the data set must be sent
to, and received from, the external CA using the process defined by the CA.
Those steps are not included.
4. Replace the self-signed certificate with the certificate signed by the certificate
authority. The example command uses the SITE keyword because the
self-signed placeholder certificate was created under SITE and will only be
replaced if the SITE keyword is specified on the RACDCERT ADD command. If
SITE is not specified, then the certificate is added as a new certificate.
RACDCERT SITE ADD(MARKN.SHRSERV.CERT) WITHLABEL(Shared Server)
600
Digital certificates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5. Create a key ring to be shared between the two user IDs. (The key ring must be
associated with a single user ID even though it will be shared by the two
servers. Therefore, associate the key ring with the user ID of one of the two
servers.) Then, connect the shared certificate to INVSERVs key ring and mark
it as the default certificate.
RACDCERT ID(INVSERV) ADDRING(RING01)
RACDCERT ID(INVSERV) CONNECT(LABEL(Shared Server) RING(RING01) DEFAULT)
6. Protect the shared key ring and permit the user IDs of each server access to
read it. (Because the key ring is associated with INVSERV, the user ID for the
inventory server needs only READ access.)
RDEFINE FACILITY IRR.DIGTCERT.LISTRING UACC(NONE)
PERMIT IRR.DIGTCERT.LISTRING CLASS(FACILITY) ID(INVSERV) ACCESS(READ)
PERMIT IRR.DIGTCERT.LISTRING CLASS(FACILITY) ID(FTPD) ACCESS(UPDATE)
7. Protect the private key and permit the user IDs of each server to access it. They
both need CONTROL access.
RDEFINE FACILITY IRR.DIGTCERT.GENCERT UACC(NONE)
PERMIT IRR.DIGTCERT.GENCERT CLASS(FACILITY) ID(INVSERV,FTPD) ACCESS(CONTROL)
8. Configure each server to use the shared key ring. Because the key ring is
associated with INVSERV, the KEYRING directive need not be fully qualified for
when you configure the INVSERV server. For the FTP server, specify the fully
qualified name.
|
|
|
|
|
601
Digital certificates
602
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
603
604
604
605
606
607
608
608
608
609
609
This chapter provides information on using RACF with z/OS Security Server
Network Authentication Service.
Network Authentication Service uses RACF to store and administer information
about principals and realms, using RACF user profiles and general resource
profiles. The KERB segment of the user profile is used to store information about
Network Authentication Service principals on your local system. The general
resource class KERBLINK allows you to map principals to RACF user IDs on your
system. The general resource class REALM defines the local Network
Authentication Service realm and its trust relationships with foreign realms.
RACF also provides a callable service named R_ticketserv (IRRSPK00) for
application servers that use Network Authentication Service services. See
Controlling applications that invoke R_ticketserv on page 619 for more information.
This chapter describes how to use RACF to complete the following steps in the
implementation of Network Authentication Service.
1. Customizing the local environment.
a. Defining your local RRSF (RACF remote sharing facility) node.
b. Defining your local realm.
c. Defining local principals.
2. Defining your foreign environment.
a. Defining foreign realms.
b. Mapping RACF user IDs for foreign principals.
See the Network Authentication Service product documentation for implementation
details.
603
Network Authentication
In this section, we will discuss defining your local server as the local realm. Once
this definition is complete, you can begin defining your users as local principals and
ensuring that their keys are registered with your local server.
You must define your local system as the local RRSF node to allow keys to be
generated for local principals who have their passwords changed through
application updates. If the local RRSF node is not defined, RACF will not generate
keys for local principals who change their own passwords. See Generating keys for
local principals on page 606 for more information.
If RRSF is already implemented, you might have already defined your local system
as a local RRSF node. However, be sure to review RRSF Considerations for
Network Authentication Service on page 416.
MINTKTLFE
DEFTKTLFE
MAXTKTLFE
ENCRYPT
PASSWORD
See z/OS Security Server RACF Command Language Reference for detailed
information about using the KERB option of the RDEFINE and RALTER commands
to administer profiles in the REALM class.
Example of defining the local realm
The following example shows a local realm KRB2000.IBM.COM being defined with a
minimum ticket lifetime of 30 seconds, a default ticket lifetime of 10 hours, a
604
Network Authentication
maximum ticket lifetime of 24 hours, and a password of 744275. All of the ticket
lifetimes are specified in seconds. The administrator then lists the new REALM
profile.
RDEFINE REALM KERBDFLT KERB(KERBNAME(KRB2000.IBM.COM) MINTKTLFE(30)
DEFTKTLFE(36000) MAXTKTLFE(86400) PASSWORD(NEW1pw))
RLIST REALM
CLASS
----REALM
KERB INFORMATION
---------------KERBNAME= KRB2000.IBM.COM
MINTKTLFE= 0000000030
MAXTKTLFE= 0000086400
DEFTKTLFE= 0000036000
KEY VERSION= 001
See z/OS Security Server RACF Command Language Reference for RLIST
authorization requirements.
If Kerberos is in use at your installation and you wish to define a realm name, you
must consider the following. In order to help you distinguish between RACF and
Kerberos REALM names since RACF allows differentiation in the nomenclature, you
can use the RDEFINE command to define the non-Kerberos profile names in the
REALM class. For example, if you want to define the SAFDFLT profile in the
REALM class (as opposed to the KERBDFLT profile) using the APPLDATA field to
define the RACF realm name, issue:
RDEFINE REALM SAFDFLT APPLDATA(racf.winmvs2c)
As a result, the realm name of racf.winmvs2c is selected to give a name to the set
of user IDs and other user information held in the security manager database.
MAXTKTLFE
ENCRYPT
See z/OS Security Server RACF Command Language Reference for detailed
information about using the KERB option of the ADDUSER and ALTUSER
commands to administer user profiles for local principals.
For example:
ALTUSER LEMIEUX KERB(KERBNAME(JacquesLemieux))
Chapter 22. RACF and z/OS Security Server Network Authentication Service
605
Network Authentication
606
Network Authentication
users change their passwords from systems that support the KERB segment.
Password changes made from systems that do not support the KERB segment will
not generate keys to complete the users local principal definitions.
If your installation shares the RACF database among systems that support the
SETROPTS KERBLVL option and those that do not, you should not enable
KERBLVL(1). This could allow the creation of keys that are unusable on downlevel
systems. If KERBLVL(1) is desired, you should ensure that keys are not generated
or authenticated on downlevel systems.
Methods for generating keys: Security administrator method: You can change
a users password so that a key can be generated using the ALTUSER command
with the NOEXPIRED option. For example:
ALTUSER LEMIEUX PASSWORD(new1pw) NOEXPIRED
Notes:
1. Do not use the NOPASSWORD option.
2. You must specify a password value so a key can be generated.
3. All characters of the password will be folded to uppercase.
Alternatively, you can add a KERB segment for a local principal and generate the
required key using a single RACF command. For example:
ALTUSER LEMIEUX PASSWORD(NEW1PW) NOEXPIRED KERB(KERBNAME(JacquesLemieux))
User method: Users can change their own passwords, completing their own
definitions as local principals, by using any standard RACF password-change
facility, such as one of the following:
v TSO PASSWORD command (without the ID option)
v TSO logon
v CICS signon
Notes:
1. Password change requests from applications that encrypt the password prior to
calling RACF will not result in usable keys.
2. All characters of the password will be folded to uppercase.
A local principals key will be revoked whenever the users RACF user ID is revoked
or the RACF password is considered expired. If the users key is revoked, the
server will reject ticket requests from this user.
Chapter 22. RACF and z/OS Security Server Network Authentication Service
607
Network Authentication
Attention
Do not execute the DELUSER command, or an ALTUSER command with the
NOKERB option, for a user profile that contains a KERB segment from RACF
systems that do not support the KERBLINK class. These systems do not
automatically manage KERBLINK profiles. You will inadvertently leave residual
mapping profiles in the KERBLINK class. For information about recovery
procedures, see z/OS Security Server RACF System Programmers Guide.
608
Network Authentication
principals) to access protected resources on your local system by mapping one or
more RACF user IDs to foreign principal names. You do not need provide foreign
principals ability to logon to your local system. You can simply provide mapping to
one or more local user IDs so they can gain access privileges for local resources
that are under the control of an application server, such as DB2.
Using the KERB option of the RDEFINE and RALTER commands, you define a
REALM profile and specify the following information:
PASSWORD
Value of the password for this trust relationship with a foreign realm.
Notes:
1. This password is not the same as a RACF user password. Therefore, it
is not constrained by the SETROPTS password rules that can be
specified to control user passwords.
2. A value must be supplied to establish a trust relationship with this
foreign realm.
See z/OS Security Server RACF Command Language Reference for detailed
information about using the KERB option of the RDEFINE and RALTER commands
to administer profiles in the REALM class.
For example:
RDEFINE REALM /.../KERBZOS.ENDICOTT.IBM.COM/KRBTGT/KER2000.ENDICOTT.IBM.COM
KERB(PASSWORD(1276458))
If you wish to map a unique RACF user ID to each foreign principal, you must
specify the foreign realm name and the foreign principal name. If you wish to map
the same RACF user ID to every foreign principal in the foreign realm, you need
only specify the foreign realm name. In each case, you specify the local user ID
using the APPLDATA option of the RDEFINE or RALTER command.
Chapter 22. RACF and z/OS Security Server Network Authentication Service
609
Network Authentication
Example of mapping foreign principal names
In the following example, the users SYKORA and NEDVED will have their foreign
principal names mapped with individual user IDs on the local z/OS system. All other
foreign principals presenting tickets from the KERBZOS.ENDICOTT.IBM.COM server will
be mapped to the ENDKERB user ID on the local z/OS system.
RDEFINE KERBLINK /.../KERBZOS.ENDICOTT.IBM.COM/SYKORA APPLDATA(PETRS)
RDEFINE KERBLINK /.../KERBZOS.ENDICOTT.IBM.COM/NEDVED APPLDATA(PAVELN)
RDEFINE KERBLINK /.../KERBZOS.ENDICOTT.IBM.COM/
APPLDATA(ENDKERB)
Note: All characters of the foreign realm name and the foreign principal name will
be folded to uppercase.
See z/OS Security Server RACF Command Language Reference for detailed
information about using the RDEFINE and RALTER commands to administer
mapping profiles for foreign principals in the KERBLINK class.
610
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
611
612
612
612
612
613
613
614
614
614
615
615
615
615
615
616
616
616
616
616
616
616
618
619
619
619
620
620
This chapter provides information about using RACF to authorize applications that
invoke SAF callable services. It also provides additional usage information specific
to the RACF implementation of SAF callable services.
SAF callable services are supported by RACF and may be supported by other
security products. See z/OS Security Server RACF Callable Services for detailed
information about invoking these services.
611
Callable services
612
Callable services
a very important security objective. Therefore, you should exercise administrative
control in the following areas by authorizing:
1. Which certificates with a hostIdMappings extension will be honored
2. Which servers will be authorized to accept logins using certificates that contain
explicit user IDs and host names
When an application calls the initACEE callable service for this purpose and passes
a certificate that has a hostIdMappings extension, the caller must have READ
authority for the IRR.HOST.host-name resource defined in the SERVAUTH class,
and the certificate must have been issued by a certificate authority that is defined
with the HIGHTRUST option.
The initACEE callable service builds a security context (ACEE) for the user ID
contained in hostIdMappings extension only if the certificate presented is not
registered in the RACF database, and there is no matching certificate name filter.
Note: You should assign protected user IDs for servers using the NOPASSWORD
option. See Assigning RACF User IDs to Started Procedures on page 143.
Define resources in the SERVAUTH class using the following format:
IRR.HOST.host-name
Permit servers to access this resource with READ authority. This will allow them to
accept logins for the host name specified in the resource name. For example, to
allow the servers in the WEBSRVGP to accept logins for the host system called
MVSDSN1, execute the following commands:
RDEFINE SERVAUTH IRR.HOST.MVSDSN1 UACC(NONE)
PERMIT
IRR.HOST.MVSDSN1 CLASS(SERVAUTH) ID(WEBSRVGP) ACCESS(READ)
SETROPTS CLASSACT(SERVAUTH)
In this example, if a server running under the authority of user ID WEBSRV1 presents
a client certificate issued by a certificate authority with HIGHTRUST status and the
certificate contains a hostIdMappings extension that includes a user ID mapping for
host name MVSDSN1, a security context (ACEE) will be created for the user ID
mapped to MVSDSN1, as indicated in the hostIdMappings extension.
See z/OS Security Server RACF Command Language Reference for details about
syntax and authorization required for using the RACDCERT command.
613
Callable services
Attention
Make sure an existing generic profile in the FACILITY class does not
inadvertently grant R_admin authority by default. It is recommended that you
define a profile named IRR.RADMIN.* with UACC(NONE) to protect all RACF
commands until you determine which commands you wish to protect and
which applications you wish to authorize.
The following example protects all RACF commands using the IRR.RADMIN.*
resource in the FACILITY class with UACC(NONE). It also authorizes an application
server called APPL04 to use the R_admin callable service to execute the LISTUSER
command.
614
Callable services
SETROPTS
RDEFINE
RDEFINE
PERMIT
GENERIC(FACILITY)
FACILITY IRR.RADMIN.*
UACC(NONE)
FACILITY IRR.RADMIN.LISTUSER UACC(NONE)
IRR.RADMIN.LISTUSER CLASS(FACILITY) ID(APPL04) ACCESS(READ)
The FACILITY class must be active to enable applications to use R_admin. If it is not
already active at your installation, you must activate the FACILITY class using the
SETROPTS command.
SETROPTS CLASSACT(FACILITY)
Authorizing servers
You authorize these application servers by administering a FACILITY class resource
called IRR.RCACHESERV.cachename. The server must be associated with a RACF
user ID or group that has at least READ authority to this resource to successfully
invoke IRRSCH00.
With READ authority, the server is authorized to use only the Fetch function of
IRRSCH00. With UPDATE authority or higher, the server can use all functions of
the service.
If the FACILITY class is inactive or the resource is not defined, only servers running
in system key or supervisor state may use IRRSCH00.
Authorization changes that you make for a server currently invoking IRRSCH00 will
not take effect until the job step task invoking the service ends and a new one is
started
User certificates
An application can extract the private key from a user certificate if the following
conditions are met:
1. The callers user ID is the user ID associated with the certificate.
Chapter 23. Controlling applications that invoke callable services
615
Callable services
2. The certificate is connected to its key ring with the PERSONAL usage option.
User certificates
An application can increment the last serial number issued (CERTLSER) for a
user certificate if the following conditions are met:
1. The callers user ID is the user ID associated with the certificate.
2. The callers user ID has at least READ authority to the resource
IRR.DIGTCERT.GENCERT in the FACILITY class.
GENCERT
GENRENEW
616
Callable services
REQCERT
REQRENEW
REVOKE
VERIFY
For end-user functions, FACILITY class profiles protect this interface. The form of
the FACILITY class profiles is:
IRR.RPKISERV.<function>
<function>
For SAF GENCERT and EXPORT requests where the application has READ and
UPDATE access, subsequent access checks are performed against the
IRR.DIGTCERT.<function> FACILITY profiles. These are identical to the checks the
RACDCERT TSO command makes. See z/OS Security Server RACF Command
Language Reference for more information.
For PKI Services EXPORT, GENCERT, GENRENEW, REQCERT, REQRENEW,
REVOKE, and VERIFY requests in which the application has READ and UPDATE
access, subsequent access checks are performed against the
IRR.DIGTCERT.<function> FACILITY profiles. The following table summarizes the
access requirements for the user ID whose access is checked:
Table 42. Summary of accesses required for PKI Services request
Request
Access
EXPORT
v IRR.DIGTCERT.EXPORT
UPDATE access if no passphrase is specified on the call
READ access if a passphrase is specified.
CONTROL access if you want to export a PKS#7 certificate
617
Callable services
Table 42. Summary of accesses required for PKI Services request (continued)
Request
Access
GENCERT
GENRENEW
REQCERT
REQRENEW
REVOKE
VERIFY
MODIFYCERTS
MODIFYREQS
QUERYCERTS
QUERYREQS
REQDETAILS
618
Callable services
To determine the appropriate access level of the caller, the current TCB is checked
for an ACEE. If one is found, the authority of that user is checked. If there is no
ACEE associated with the current TCB, the ACEE associated with the address
space is used to locate the user ID.
Attention: UPDATE access to the IRR.RPKISERV.PKIADMIN resource also
controls who can act as PKI Services administrators. PKI Services administrators
play a very powerful role in your organization. The decisions they make when
managing certificates and certificate requests determine who will access your
computer systems and what privileges they will have when doing so.
Recommendation: Give UPDATE authority only to those individuals whom you
would trust with the RACF SPECIAL attribute. If you assign PKI Services
administrators who do not have the RACF SPECIAL attribute, do not also give
these individuals direct access to the end-user functions of the R_PKIServ callable
service as described in the previous section.
Authorizing servers
You authorize these servers by administering a FACILITY class resource called
IRR.RPROXYSERV. The server must be associated with a RACF user ID or group
that has at least READ authority to this resource to successfully invoke IRRSPY00.
If the FACILITY class is inactive or the resource is not defined, only servers running
in system key or supervisor state can successfully invoke IRRSPY00.
619
Callable services
To authorize applications that do not run in system key or supervisor state, you
must define RACF user IDs for them. These RACF user IDs must be given READ
access to a RACF general resource called IRR.RTICKETSERV in the FACILITY
class.
Attention
Make sure an existing generic profile in the FACILITY class does not
inadvertently grant this authority by default. It is recommended that you create
a profile to protect the IRR.RTICKETSERV resource with UACC(NONE) until
you determine which applications require access.
620
When the server establishes a connection with an EIM domain using EIM services,
the EIM services will look for the domain distinguished name, bind distinguished
name, and bind password in the following order:
1. Input parameters to the EIM service.
2. The LDAPBIND profile named in the EIM segment of the callers USER profile.
3. IRR.PROXY.DEFAULTS profile in the FACILITY class.
EIM services require a host name, bind distinguished name, bind password, and
domain distinguished name before they can establish a connection with an EIM
domain. The services return a configuration error if some, but not all, of the required
values are provided in the input parameters, the LDAPBIND profile, or the
IRR.PROXY.DEFAULTS profile.
You can temporarily disable a server or system from using the configured EIM
domain without deleting the EIM information from the RACF profiles. This option
can be used when you want to stop the system or server from establishing new
connections with the EIM domain. When an EIM domain is disabled, existing
connections to the domain are allowed to complete their work. If an EIM service is
attempting to establish a connection with a domain and the domain is disabled via a
RACF profile, the EIM does not look further for a domain that is enabled.
To disable a server from using the configured EIM domain, issue:
Copyright IBM Corp. 1994, 2005
621
EIM
RALTER LDAPBIND eim-domain EIM(OPTIONS(DISABLE))
The EIM administrator can provide you the name given to the local RACF registry in
the EIM domain.
|
|
|
|
|
|
|
If your EIM application or server handles Kerberos tickets or digital certificates, you
can issue the following command to define default registry names for the configured
EIM domain.
|
|
|
|
The registry names you define must correspond to the names given to the Kerberos
and X.509 registries in the EIM domain because your EIM application uses them
when retrieving the mapping of a user ID. See z/OS Integrated Security Services
EIM Guide and Reference or see your EIM administrator for more information.
622
. . . . . . . .
. . . . . . . .
. . . . . . . .
password enveloping
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
623
624
625
625
626
This chapter provides information on using RACF with z/OS LDAP Server. It covers
two topics:
1. Defining proxy information about z/OS LDAP Server so that other products can
communicate with an LDAP directory. (Using a PROXY segment in the
LDAPBIND profile is required for this communication.)
2. Setting up LDAP event notification for user changes, such as password changes
and other updates. (Using a PROXY segment in the LDAPBIND profile is not
required for LDAP event notification.)
The segment can be listed using the RLIST command. Note that the bind password
is not displayed and only an indication of whether or not it is present is shown (YES
or NO).
RLIST LDAPBIND MY.LDAP.SERVER PROXY NORACF
CLASS
NAME
------------LDAPBIND
MY.LDAP.SERVER1
PROXY INFORMATION
----------------LDAPHOST=LDAP://SOME.LDAP.HOST:389
BINDDN=cn=Joe User,ou=Poughkeepsie,o=IBM,c=US
BINDPW=YES
v To get PKI Services to use the above information, you must update the PKI
Services configuration to specify the LDAPBIND class profile. For example:
[LDAP]
NumServers=1
BindProfile1=MY.LDAP.SERVER1
623
LDAP
Optionally, default LDAP binding information can be defined in the PROXY
segment of the IRR.PROXY.DEFAULTS profile in the FACILITY class. For
example:
RDEFINE FACILITY IRR.PROXY.DEFAULTS
PROXY(LDAPHOST(ldap://some.ldap.host:389)
BINDDN(cn=Joe User,ou=Poughkeepsie,o=IBM,c=US) BINDPW(MYPASS1))
|
|
|
|
|
|
|
|
|
RACF can be configured to create LDAP change log entries in response to changes
to RACF user profiles. This provides an open, remote method of change
notification. An LDAP client can read the LDAP change log, detect updates to RACF
users, and retrieve RACF user entries using only LDAP interfaces. To use this
function, the LDAP server must be configured to enable the SDBM backend. See
z/OS Integrated Security Services LDAP Server Administration and Use for details.
|
|
|
|
|
|
|
|
|
|
|
Event notification, through the creation of an LDAP change log entry, is controlled
by the NOTIFY.LDAP.USER resource in the RACFEVNT class. If RACFEVNT is
active, and the NOTIFY.LDAP.USER resource is protected (by either a discrete or
generic profile), then an LDAP change log entry will be created for the following
types of user updates.
1. Password changes, regardless of the interface used, as long as the new
password is enveloped. (See Chapter 26, Password enveloping, on page 627
for a description of the password enveloping function, including the conditions
under which a password is enveloped.)
2. Updates to a users revoke status (that is, changes to the FLAG4 field in the
USER profile), regardless of the interface used
3. User additions made using the ADDUSER command
4. User modifications made using ALTUSER and PASSWORD commands
|
|
|
|
|
|
|
|
|
|
Restrictions:
v Changes to group connection information are not supported. These changes are
normally performed using the CONNECT and REMOVE commands.
v Use of the UACC and AUTHORITY operands of the ALTUSER command also
update group connection information, and are not supported.
624
LDAP
|
|
v Other RACF commands that update user profiles, such as RACDCERT and
RACLINK, are not supported.
|
|
|
|
|
|
|
|
|
Notes:
1. The RACF panels and the R_admin callable service (IRRSEQ00) issue TSO
commands internally, so these interfaces are included. Note that the RACF
panels may generate multiple commands while processing a user profile, and
this may result in multiple change log entries.
2. An application that updates user profiles through means other than TSO
commands can create its own change log entry using a new function of the
R_Proxyserv callable service (IRRSPY00), documented in z/OS Security Server
RACF Callable Services.
|
|
|
|
The LDAP change log entry will contain information such as the change initiator, the
affected user, the type of update (add, modify, or delete), and the time and date of
the change. It will not contain a list of fields which were changed, nor will it contain
the new values for these fields.
|
|
|
|
|
|
In the case of a password change, a change log entry will only be created if the
users password was enveloped. (See Chapter 26, Password enveloping, on page
627.) This change log entry will contain the changes attribute identifying the
password field as the changed field. The changes attribute will not contain the actual
password value, but will contain a value of *ComeAndGetIt*, denoting that there is
an encrypted password envelope which can be subsequently retrieved.
|
|
|
|
If other RACF profile fields are changed in the same request that updates the
password, such as in the case of the ALTUSER userid PASSWORD(newpass)
RESUME) command, then two change log entries are created: one to describe the
password update, and another to describe the non-password update).
|
|
See z/OS Integrated Security Services LDAP Server Administration and Use for
information on the change log.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
625
LDAP
|
|
|
|
|
|
626
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This chapter provides information about creating password envelopes that enable
authorized applications to recover user passwords. Password envelopes are used
by IBM Directory Integrator, in conjunction with LDAP notification (see Overview of
LDAP event notification on page 624), to enable a heterogeneous password
synchronization solution.
|
|
627
628
628
629
629
629
629
630
630
631
634
636
|
|
|
|
|
|
|
|
|
RACF can be configured to save user passwords such that the clear text can be
recovered by an authorized application. This ability can be restricted to a subset of
your users. When an eligible users password is changed, the new password is
encrypted under a public key which is contained within a key ring associated with
the RACF subsystem address space identity. The encrypted password is then
stored in the users profile. When an application requests the password, RACF
decrypts the password, and then encrypts it in PKCS#7 format for recipients whose
digital certificates have been placed on the same RACF key ring. The application
can then decrypt the password envelope using their private key.
|
|
|
|
|
|
|
For the most part, any new password will be enveloped for an eligible user, with the
following exceptions:
v Initial ADDUSER passwords.
v When the new password is the same as the current password.
v When the ALTUSER or PASSWORD command is used to change the password,
and the new password is equal the users default group name
v When an application uses RACROUTE or ICHEINTY, rather than a RACF
command, to set the password, and the password contains characters that are
not accepted by the RACF commands. RACF commands only accept the
characters AZ, 09, X'5B' ($), X'7B' (#), and X'7C' (@).
v When an application uses RACROUTE or ICHEINTY to set the password and
specifies ENCRYPT=NO.
|
|
|
|
|
|
|
|
|
627
Password enveloping
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes:
1. Generic characters may not be used in this profile name.
2. The enveloped password will neither be displayed by LISTUSER nor unloaded
by IRRDBU00, although IRRDBU00 will indicate the presence of a password
envelope for a given user with a YES/NO field. See z/OS Security Server RACF
Macros and Interfaces for more information.
3. There will be no SMF records created as a result of failed access checks to this
resource. Audit options in the profile can be used to log successes, and thus
maintain a history of whose passwords have been enveloped.
4. If the user cannot be verified (RACROUTE REQUEST=VERIFY), then a new
password will not be enveloped. For example, if a revoked users password is
changed by an administrator, the new password will not be enveloped. If you
want the new password to be enveloped in this scenario, specify the RESUME
operand when you use the ALTUSER command to specify the new password.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Both the signing hash algorithm and encryption strength are configurable attributes.
The APPLDATA of the PASSWORD.ENVELOPE profile is used to specify the
signing hash algorithm used to sign the PKCS#7 password envelope, and the
encryption strength used when encrypting the password envelope. The syntax of
the APPLDATA string consists of a character string indicating the signing hash
algorithm, followed by a forward slash (/), followed by a string indicating the
encryption strength.
|
|
|
|
|
|
|
|
|
|
|
|
Recommendation: Use the strongest encryption possible. If you must use weaker
encryption, for example, due to export regulations, then protect yourself against
offline attacks by carefully controlling access to the RACF database, and any other
repository in which password envelopes may be stored after being retrieved from
RACF.
Value
STRONG
MEDIUM
628
Password enveloping
|
Value
|
|
WEAK
|
|
|
Note: Strong encryption may not be available on all customer systems depending
on government export regulations. See z/OS Crytographic Services System
Secure Sockets Layer Programming for more information.
|
|
|
|
|
|
|
If the APPLDATA is not specified in the profile, the defaults are taken as noted
above. If an empty qualifier exists in the APPLDATA, then the default value will be
taken for that qualifier. For example, if the APPLDATA is specified as SHA1, then
SHA1 will be used as the signing hash algorithm, and triple DES will be used as the
encryption algorithm. If the APPLDATA is specified as /MEDIUM, then MD5 will be
used as the signing hash algorithm, and DES will be used as the encryption
algorithm.
|
|
|
|
|
|
|
|
|
|
IRR.PWENV.KEYRING is the name of a key ring associated with the identity of the
RACF subsystem address space (RASP). It contains a certificate with private key
for the RASP itself. This certificate is used to encrypt a users new password. It is
also used to decrypt the stored password when a PKCS#7 envelope is retrieved by
an authorized application. The contents of the returned envelope are signed using
this certificate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
629
Password enveloping
Tip: While you are initially configuring and testing this function, check the console
for error messages. As RACF detects errors during the password enveloping
process, they will be reported to the console, not to the end user who initiates a
password change.
|
|
|
|
|
Preparing RACF
v Add an OMVS segment to the RACF address space user ID, and to its default
group. The output of the SET LIST command will identify the subsystem user ID.
Adding an OMVS segment may not be necessary if you have set up a default
UNIX identity (by implementing the BPX.DEFAULT.USER profile in the FACILITY
class), but you should not set up the default UNIX identity just for the password
enveloping function.
Recommendation: You can specify any UID value you choose. For example, if
the RACF subsystem is running under a user ID of RACFSUB, whose default
group is STCGRP:
|
|
|
|
|
|
|
|
|
|
|
Note: This example takes advantage of the AUTOUID and AUTOGID keywords
to automatically assign a unique UID and GID. See Enabling automatic
assignment of UNIX identities on page 538 for instructions on how to
enable automatic UID/GID assignment. Alternatively, a unique UID can be
explicitly assigned using the UID operand, and a GID can be explicitly
assigned using the GID operand.
v If the RACF subsystem identity does not have the TRUSTED or PRIVILEGED
attribute, it will require the necessary FACILITY class authorization in order to
extract certificates from a key ring. (The certificate setup is described in
Generating a X.509 V3 certificate for user password enveloping on page 631.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You may already be protecting this resource, perhaps with a generic profile.
Modify this step as needed for your environment.
Recommendation: Assign the TRUSTED attribute to the RACF address space
user ID.
|
|
|
|
|
|
|
|
|
If you want to use RACF as your certificate authority (CA), create a CA certificate, if
you have not already done so. The following command creates a certificate
authority (or signer) certificate identified by the label RACFCA that will be used to
create subsequent certificates, such as the certificate that RACF will use during the
password enveloping process. Command values, such as subjectsdn,
organization, and country, can be modified to reflect the naming structure and
conventions used at your installation.
|
|
|
|
|
630
Password enveloping
|
|
|
|
|
|
|
RACF signs the password envelope so that a recipient can verify that the envelope
signature was created using RACFs certificate (created in Generating a X.509 V3
certificate for user password enveloping). If the recipient also wants to check the
veracity of RACFs certificate, this CA certificate is needed. In this case, the CA
certificate must be exported to a key ring known to the recipient application and
marked as trusted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v A digital certificate containing a private key must be generated for RACF use.
This certificate and its associated private key will be used in the RACF password
enveloping process. In the following example, RACDCERT commands are used
to generate a certificate for the RACF address space, whose RACF user ID is
RACFSUB. This certificate is signed by RACF, which is the certificate authority in
the context of this example. The local CA certificate is identified by the label
RACFCA.
|
|
|
|
|
|
The actual user ID for your subsystem is defined by setting up a started task
identity using either the started procedures table (ICHRIN03), or by defining a
profile in the STARTED class. See z/OS Security Server RACF System
Programmers Guide for information about setting up the RACF subsystem. If you
change the user ID under which the RACF subsystem runs, then you will need to
create and populate the key ring for this new identity as described below.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Recommendations:
Use ICSF to store private keys, as shown. If you do not use ICSF, then omit
this operand from the command.
After performing the setup, avoid changing RACFs private key. If you change
it, RACF will not be able to build PKCS#7 envelopes for existing passwords.
(Because the passwords were encrypted under the old public key, they cannot
be decrypted under the new private key.) Normal operation will resume as
users subsequently change their passwords.
Note: The label RASP1 is shown as an example only. You can specify a value of
your choice.
v Create a RACF key ring named IRR.PWENV.KEYRING. Note that the name of the
key ring is case-sensitive.
RACDCERT ID(RACFSUB) ADDRING(IRR.PWENV.KEYRING)
At the time a users password is changed, if the user is eligible for enveloping
(see below) then the users new password is encrypted under the public key of
Chapter 26. Password enveloping
631
Password enveloping
|
|
|
|
the default certificate only, and stored back in the users USER profile. When an
application requests the envelope, the password is decrypted using the private
key of the default certificate, and a PKCS#7 password envelope is created for all
of the recipients on the key ring.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note: Note that any user with READ access to the RACF database, or who is
authorized to invoke the RACROUTE REQUEST=EXTRACT macro, can
obtain the default certificates private key and any users encrypted
password. As always, you should protect the RACF database and its
copies against inappropriate access. Further, you should verify that
applications retrieving passwords do so using only the R_admin interface.
v During the RACF password enveloping process, RACF encrypts data that can
only be recovered by the intended recipient of that data. An intended recipient,
such as the identity of the IBM Directory Integrator process running on a
non-z/OS platform, is identified by an X.509 V3 certificate. Certificates that
identify intended recipients of RACF password envelopes must be connected to
the key ring IRR.PWENV.KEYRING associated with the user ID of the RACF
subsystem address space. Note that these certificates are only used to encrypt
password information; they are not used to bind to LDAP or to authenticate to
RACF.
Recommendation: Generally speaking, permit only trusted applications, not
users, to recover user passwords.
Certificates for intended recipients may be created by RACF, and exported to
non-z/OS processes, for instance. The creation of the certificates may be
accomplished using the following sample RACDCERT commands that generate
certificates for IDI1 and APP2 (the identities of processes that are authorized to
retrieve RACF password envelopes). These certificates are signed with the local
CA (RACF) certificate that is identified by the label RACFCA.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
632
Password enveloping
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-keyalg RSA
keytool -genkey -alias APP2 -keypass xxxxxx
-storepass xxxxxx -keystore recipient.jks
-dname "CN=(Application Server 2),O=(ibm),C=(us)" -keyalg RSA
The keytool commands above create two self-signed certificates. For example
purposes, this is sufficient. In a production environment, you may wish to use
something other than a self-signed certificate.
Export certificates:
The rfc keyword specifies base64-encoded output.
keytool -export -alias IDI1 -file IDI1.b64 -keystore recipient.jks -storepass
xxxxxx -rfc
keytool -export -alias APP2 -file APP2.b64 -keystore recipient.jks -storepass
xxxxxx -rfc
The following example uses IBM Key Management, running on Windows 2000.
The commands are slightly different from those in the previous example, but the
procedure is the same.
Create key database:
gsk5cmd.exe -keydb -create -db recipient.kdb -pw xxxx
Create certificates:
gsk5cmd.exe -cert -create -db recipient.kdb -pw xxxx -label IDI1 -dn
"CN=(IBM Directory Integrator Server 1),O=(ibm),C=(us)"
gsk5cmd.exe -cert -create -db recipient.kdb -pw xxxx -label APP2 -dn
"CN=(Application Server 2),O=(ibm),C=(us)"
The gsk5cmd commands above create two self-signed certificates. For example
purposes, this is sufficient. In a production environment, you may wish to use
something other than a self-signed certificate.
Export certificates:
gsk5cmd.exe -cert -extract -db recipient.kdb -pw xxxx -label
"IDI1" -target IDI1.b64 -format ascii
gsk5cmd.exe -cert -extract -db recipient.kdb -pw xxxx -label
"APP2" -target APP2.b64 -format ascii
|
|
|
|
|
|
|
|
|
|
|
At this point, using either example above, the contents of the certificates are
contained in the files IDI1.b64 and APP2.b64.
Copy the certificates to the host system. Because the certificates were exported
in base64, they can be cut and pasted into a host file, using a text editor. If you
use FTP, transfer them using in ASCII (not binary) mode. The files should start
with -----BEGIN CERTIFICATE----- and end with -----END CERTIFICATE----when viewed on the host. For this example, the files are copied to
CERT.IDI1.TEXT and CERT.APP2.TEXT.
Import the certificates in RACF using the RACDCERT command:
|
|
|
|
If you created self-signed certificates, RACF will warn that the certificate authority
is not defined to RACF, but will properly import the certificates.
v Connect the recipient certificates to the key ring. RACF will encrypt the password
for up to 20 recipient certificates:
633
Password enveloping
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RACF constructs the PKCS#7 password envelope at the time the envelope is
requested. So, if you add a certificate for a principal, that principal will be able to
decrypt the password for any eligible user whose current password has already
been changed (assuming the principal has the authorization which is described in
the next step). Likewise, if a certificate is removed from the key ring, the principal
will not be able to decrypt any password envelopes, even if the password was
changed when the certificate was on the ring, and even if the authorization
described in the next step has not been removed for the principal.
You should export RACFs certificate to the recipient key database. This is used
to verify the signature of password envelopes as they are decrypted to ensure
they came from RACF. You need to export both the RACF CA certificate and the
RACF address space certificate. These were created above.
Start with the CA certificate:
RACDCERT CERTAUTH EXPORT(LABEL(RACFCA)) DSN(CERT.RACFCA.TEXT) FORMAT(CERTB64)
RACDCERT ID(RACFSUB) EXPORT(LABEL(RASP1)) DSN(CERT.RASP.TEXT) FORMAT(CERTB64)
These files must be transferred to the recipient system. Use FTP (ASCII mode)
or simply cut and paste them to create the racfca.cert and rasp.cert files.
Then, import the files:
Using the keytool command:
keytool -import -alias RACFCA -file racfca.cert -keystore recipient.jks -storepass xxxxxx
keytool -import -alias RASP1 -file rasp.cert -keystore recipient.jks -storepass xxxxxx
v Authorize these same principals to the R_admin function that retrieves the
password envelope from RACF:
RDEFINE FACILITY IRR.RADMIN.EXTRACT.PWENV UACC(NONE)
PERMIT IRR.RADMIN.EXTRACT.PWENV CLASS(FACILITY) ID(IDI1 APP2) ACCESS(READ)
|
|
|
|
|
|
Failed access attempts to this resource are logged by default. The log string of
the audit record contains the user ID whose password envelope being retrieved.
Recommendation: Given the sensitive nature of this function, log successful
accesses as well. For example, a user with the RACF AUDITOR attribute would
execute the following command:
|
|
|
Assuming the FACILITY class is already ACTIVE and RACLISTed, refresh the
class.
|
|
|
|
634
Password enveloping
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
used to sign the PKCS#7 password envelope, and the encryption strength used
when encrypting the password envelope. For example, to specify the strongest
signing and encryption:
RDEFINE RACFEVNT PASSWORD.ENVELOPE UACC(NONE) APPLDATA(MD5/STRONG)
v Enable password enveloping for users whose passwords are to be encrypted for
the intended recipients whose digital certificates were set up above. This is done
by permitting a given user or group to the PASSWORD.ENVELOPE profile.
PERMIT PASSWORD.ENVELOPE CLASS(RACFEVNT) ID(USER1 USER2 GROUPA GROUPB) ACCESS(READ)
v Stop and restart the RACF subsystem address space after defining the
PASSWORD.ENVELOPE profile and activating the RACFEVNT class. If the RACF
subsystem address space is already up and running when you configure
password enveloping and you do not stop and restart the address space, it will
not have the proper environment set up to perform the function and will fail any
request to envelope passwords.
635
Password enveloping
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Before implementing password enveloping, carefully weigh the risks against the
benefits. RACF has always implemented one-way encryption when storing a users
new password. This implementation makes it impossible for even a system
administrator to obtain a users password once that user has changed his initial
logon password. This implementation protects users against unauthorized use of
their passwords, and increases system accountability. Implementing this function
will make it possible for an authorized user or application to retrieve a users current
password. Subsequent use of this password will result in a loss of accountability,
resulting in the question: Who actually entered the user ID and password and is
now working under the users identity? A RACF administrator currently has the
capability of simply changing the users password, and then logging on as that user.
However, in this case, the user will become aware at next logon time that his
password has changed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There are other solutions that perform password synchronization in which z/OS is a
participating platform. Such applications hook into RACF exits to intercept password
changes. The PKCS#7 password enveloping function, in conjunction with LDAP
event notification, provides a simpler way for such applications to subscribe to
password changes, but does not by itself provide a higher or lower degree of
security than is already put in place by such applications. Ultimately, it is the
application that you must rely on to maintain the security of RACF passwords from
the point the passwords are intercepted. For example, the application should not
send a clear text password across a network and should protect any repository that
might contain clear text passwords.
|
|
|
|
|
|
|
|
|
|
|
|
636
Password enveloping
|
|
|
|
|
|
|
|
|
|
|
|
|
requested, using the current contents of the key ring.) Therefore, if the private
key of a recipient is compromised, you can remove the recipients certificate from
the RACF key ring to dynamically render password envelopes indecipherable to
the thief of the recipients private key. Even if the thief is able to masquerade as
the intended recipient, bind to LDAP, and retrieve the password envelope under
the recipients identity, he will not be able to decipher it using the stolen private
key.
v Profiles in the RACFEVNT class establish password enveloping policy. This
policy allows you to scope password enveloping to a subset of RACF users,
allowing you to exclude sensitive user IDs at your discretion.
v Policy changes are logged to SMF for each privileged operation associated with
password enveloping, such as changes to the key ring, changes to the
enveloping policy, and actual retrievals of password envelopes from RACF.
637
638
Class Name
Description
ALCSAUTH
APPCLU
APPCPORT
Controlling which user IDs can access the system from a given LU
(APPC port of entry). Also, conditional access to resources for users
entering the system from a given LU.
APPCSERV
APPCSI
APPCTP
APPL
CACHECLS
Contains profiles used for saving and restoring cache contents from the
RACF database.
CBIND
CDT
CONSOLE
CSFKEYS
CSFSERV
DASDVOL
DBNFORM
DEVICES
Used by MVS allocation to control who can allocate devices such as:
DIGTCRIT
639
CDT classes
Table 44. Resource Classes for z/OS and OS/390 Systems (continued)
Class Name
Description
DIGTNMAP
DIGTRING
Contains a profile for each key ring and provides information about the
digital certificates that are part of each key ring.
DIRAUTH
DLFCLASS
FACILITY
FIELD
GCSFKEYS
GDASDVOL
GLOBAL
GMBR
Member class for GLOBAL class (not for use on RACF commands).
GSDSF
GTERMINL
IBMOPC
JESINPUT
JESJOBS
JESSPOOL
Controlling access to job data sets on the JES spool (that is, SYSIN and
SYSOUT data sets).
KEYSMSTR
Contains profiles that hold keys to encrypt data stored in the RACF
database, such as LDAP BIND passwords and DCE passwords.
LDAPBIND
Contains the LDAP server URL, bind distinguished name, and bind
password.
LOGSTRM
NODES
1
1
v Whether jobs are allowed to enter the system from other nodes
v Whether jobs that enter the system from other nodes have to pass
user identification and password verification checks
640
NODMBR
Member class for NODES class (not for use on RACF commands).
OPERCMDS
Controlling who can issue operator commands (for example, JES and
MVS, and operator commands). 2
PMBR
Member class for PROGRAM class (not for use on RACF commands).
PROGRAM
CDT classes
Table 44. Resource Classes for z/OS and OS/390 Systems (continued)
|
|
|
Class Name
Description
PROPCNTL
Controlling if user ID propagation can occur, and if so, for which user IDs
(such as the CICS or IMS main task user ID), user ID propagation is not
to occur.
PSFMPL
PTKTDATA
RACGLIST
RACGLIST
RACGLIST
RACGLIST
RACGLIST
RACFEVNT
RRSFDATA
RVARSMBR
SCDMBR
Member class for SECDATA class (not for use on RACF commands).
SDSF
SECDATA
SECLABEL
SECLMBR
Member class for the SECLABEL class (not for use on RACF
commands).
SERVAUTH
SERVER
SMESSAGE
SOMDOBJS
STARTED
SURROGAT
If surrogate submission is allowed, and if allowed, which user IDs can act
as surrogates.
SYSMVIEW
TAPEVOL
Tape volumes.
641
CDT classes
Table 44. Resource Classes for z/OS and OS/390 Systems (continued)
Class Name
Description
TEMPDSN
Controlling who can access residual temporary data sets. You cannot
create profiles in this resource class.
TERMINAL
VTAMAPPL
WRITER
ACICSPCT
BCICSPCT
CCICSCMD
CPSMOBJ
CPSMXMP
DCICSDCT
ECICSDCT
FCICSFCT
GCICSTRN
GCPSMOBJ
HCICSFCT
JCICSJCT
KCICSJCT
MCICSPPT
NCICSPPT
PCICSPSB
QCICSPSB
SCICSTST
TCICSTRN
CICS transactions.
UCICSTST
VCICSCMD
2
1
2
2
2
1
2
1
DB2 classes
642
DSNADM
DSNR
GDSNBP
GDSNCL
GDSNDB
GDSNJR
GDSNPK
GDSNPN
GDSNSC
CDT classes
Table 44. Resource Classes for z/OS and OS/390 Systems (continued)
Class Name
Description
GDSNSG
GDSNSM
GDSNSP
GDSNSQ
GDSNTB
GDSNTS
GDSNUF
GDSNUT
MDSNBP
MDSNCL
MDSNDB
MDSNJR
MDSNPK
MDSNPN
MDSNSC
MDSNSG
MDSNSM
MDSNSP
MDSNSQ
MDSNTB
MDSNTS
MDSNUF
MDSNUT
DCEUUIDS
Used to define the mapping between a users RACF user ID and the
corresponding DCE principal UUID.
Enterprise Java Beans classes
EJBROLE
GEJBROLE
JAVA
Contains profiles that are used by Java for z/OS applications to perform
authorization checking for Java for z/OS resources.
IMS classes
AIMS
CIMS
Command.
DIMS
FIMS
GIMS
HIMS
IIMS
JIMS
643
CDT classes
Table 44. Resource Classes for z/OS and OS/390 Systems (continued)
Class Name
Description
LIMS
MIMS
OIMS
Other.
PIMS
Database.
QIMS
SIMS
TIMS
Transaction (trancode).
UIMS
WIMS
PRINTSRV
GINFOMAN
INFOMAN
LFSCLASS
ILMADMIN
Lotus Notes for z/OS and Novell Directory Services for OS/390 classes
NDSLINK
Mapping class for Novell Directory Services for OS/390 user identities.
NOTELINK
GMQADMIN
GMQCHAN
GMQNLIST
GMQPROC
GMQQUEUE
MQADMIN
MQCHAN
MQCMDS
MQCONN
MQNLIST
MQPROC
MQQUEUE
1
1
NetView classes
644
NETCMDS
NETSPAN
NVASAPDT
NetView/Access Services.
CDT classes
Table 44. Resource Classes for z/OS and OS/390 Systems (continued)
Class Name
Description
PTKTVAL
RMTOPS
RODMMGR
KERBLINK
REALM
STORCLAS
SUBSYSNM
ROLE
Specifies the complete list of resources and associated access levels that
are required to perform the particular job function this role represents and
defines which RACF groups are associated with this role.
TMEADMIN
ACCTNUM
PERFGRP
TSOAUTH
TSOPROC
DIRACC
DIRSRCH
FSOBJ
FSSEC
IPCOBJ
PROCACT
PROCESS
UNIXMAP
Contains profiles that are used to map z/OS UNIX UIDs to RACF user
IDs and z/OS UNIX GIDs to RACF group names.
UNIXPRIV
645
CDT classes
Table 44. Resource Classes for z/OS and OS/390 Systems (continued)
Class Name
Description
Notes:
1. You cannot specify this class name on the GENCMD, GENERIC, and
GLOBAL/NOGLOBAL operands of the SETROPTS command.
2. You cannot specify this class name on the GLOBAL operand of SETROPTS or, if you do,
the GLOBAL checking is not performed.
3. You cannot specify this class name on the GENCMD and GENERIC operands of the
SETROPTS command.
Description
DIRECTRY
FACILITY
646
FIELD
FILE
GLOBAL
GMBR
Member class for GLOBAL class (not for use on RACF commands).
GTERMINL
Terminals whose IDs do not fit into generic profile naming conventions.
PSFMPL
When class is active, PSF/VM performs separator and data page labeling
as well as auditing.
PTKTDATA
PTKTVAL
RACFVARS
RACF variables. In this class, profile names, which start with &
(ampersand), act as RACF variables that can be specified in profile
names in other RACF general resource classes.
RVARSMBR
SCDMBR
Member class for SECDATA class (not for use on RACF commands).
SECDATA
SECLABEL
SFSCMD
Controls the use of shared file system (SFS) administrator and operator
commands.
CDT classes
Table 45. Resource Classes for z/VM and VM Systems (continued)
Class Name
Description
TAPEVOL
Tape volumes.
TERMINAL
VMBATCH
VMBR
Member class for VMEVENT class (not for use on RACF commands).
VMCMD
VMEVENT
VMMAC
VMMDISK
VM minidisks.
VMNODE
RSCS nodes.
VMRDR
VM unit record devices (virtual reader, virtual printer, and virtual punch).
VMSEGMT
VXMBR
Member class for VMXEVENT class (not for use on RACF commands).
VMXEVENT
VMPOSIX
WRITER
VM print devices.
Notes:
1. You cannot specify this class name on the GENCMD, GENERIC, and
GLOBAL/NOGLOBAL operands of the SETROPTS command.
2. You cannot specify this class name on the GLOBAL operand of the SETROPTS
command or, if you do, the GLOBAL checking is not performed.
647
CDT classes
648
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
649
653
654
654
655
655
656
657
657
658
Command Functions
ADDGROUP
v
v
v
v
v
ADDSD
v
v
v
v
ADDUSER
v
v
v
v
v
v
v
v
v
v
v
v
v
v
v
v
v
Define one or more new users and connect the users to their default connect group.
Specify a model data set profile for a user.
Define CICS operator information.
Define default DFP information for a user.
Define the EIM information for a user.
Define the preferred national language.
Define default operator information.
Define default TSO logon information for a user.
Define default work attributes.
Define the z/OS UNIX information for a user.
Define the DCE information for a user.
Define default NetView operator information.
Define the COMMAND field of the logon panel.
Define the LNOTES and NDS information for a user.
Define access checking with the RESTRICTED and NORESTRICTED keywords.
Define the KERB information for a user.
Define the PROXY information for a user.
ALTDSD
ALTGROUP
v Change the information in one or more group profiles (such as the superior group, owner, or model
profile name).
v Change or delete the default DFP information for a group.
v Add, change, or delete the information for the z/OS UNIX group.
649
Command Functions
ALTUSER
v Change the information in one or more user profiles (such as the owner, universal access authority, or
security level).
v Revoke or reestablish one or more users privileges to access the system.
v Specify logging of information about the user, such as the commands the user issues.
v Change or delete CICS operator information.
v Change or delete the default DFP information for a user.
v Define, change or delete the EIM information for a user.
v Change the preferred national language.
v Change or delete the default operator information.
v Change or delete the default TSO logon information for a user.
v Change or delete the default work attributes.
v Add, change, or delete the information for the z/OS UNIX user.
v Change the DCE information for a user.
v Change or delete NetView operator information.
v Manipulate the COMMAND field of the logon panel.
v Change the LNOTES and NDS information for a user.
v Change access checking methods with the RESTRICTED and NORESTRICTED keywords.
v Add or change the KERB information for a user.
v Add or change the PROXY information for a user.
CONNECT
DELDSD
DELGROUP
v Delete one or more groups and their relationship to the superior group.
DELUSER
v Delete one or more users and remove all of their connections to RACF groups.
DISPLAY
HELP
LISTDSD
v List the details of one or more discrete or generic data set profiles, including the users and groups
authorized to access the data sets.
v Determine the most specific matching generic profile for a data set.
v Perform a local refresh of generic DATASET profiles.
LISTGRP
v List the details of one or more group profiles, including the users connected to the group.
v List only the information contained in a specific segment (RACF, DFP, or OMVS) of the group profile.
v Display limited information if the group is a UNIVERSAL group.
LISTUSER
v List the details of one or more user profiles, including all of the groups to which each user is
connected.
v List only the information contained in a specific segment (for example, DFP or OMVS information) of a
user profile.
PASSWORD
PERMIT
v
v
v
v
650
Command Functions
RACDCERT
v List information about the existing certificate definitions for a specified RACF-defined user ID or the
requesters user ID.
v Add a certificate definition and associate it with a specified RACF-defined user ID or the requesters
user ID and set the TRUST flag.
v Check to see if a certificate has been defined to RACF.
v Alter the TRUST flag for an existing definition.
v Delete an existing definition.
v Add or remove a certificate to a key ring.
v Create, delete, or list an existing key ring.
v Generate a public/private key pair and certificate.
v Write a certificate or certificate package to a data set.
v Create a certificate request.
v Create, alter, delete, or list a certificate name filter.
v Gather diagnostic information.
RACLINK
RACPRIV
RALTER
v Change the discrete or generic profiles for one or more resources whose class is defined in the class
descriptor table.
v Maintain the global access checking tables.
v Maintain security category and security level tables.
v List the encryption keys used if the profile has a KERB segment.
v Maintain CDTINFO, DLFDATA, SESSION, SSIGNON, and STDATA segment information in the
profiles.
v Define, change, or delete the DOMAINDN, OPTIONS and LOCALREGISTRY information in the EIM
segment.
v Change profiles associated with a SystemView for MVS application.
v Define, change, or delete the LDAPHOST address, BINDDN and BINDPW information in the PROXY
segment.
RDEFINE
v RACF-protect by a discrete or generic profile any resource whose class is defined in the class
descriptor table.
v Define entries in the global access checking table.
v Define security category and security level tables.
v Define the encryption keys used if the profile has a KERB segment.
v Define CDTINFO, DLFDATA, SESSION, SSIGNON, and STDATA segment information in the profiles.
v Define the EIM segment and the DOMAINDN, OPTIONS and LOCALREGISTRY information for the
segment.
v Define the list of classes for which RACF is to save RACLISTed results on the RACF database.
v Define profiles associated with a SystemView for MVS application.
v Create, alter, or delete additional criteria for a certificate name filter.
v Define the LDAPHOST address, BINDDN and BINDPW information if the profile has a PROXY
segment.
v Define the SHARED.IDS profile in the UNIXPRIV class, which controls the default behavior of adding
or altering UIDs and GIDs in the OMVS segment.
v Modify the processing of z/OS UNIX System Services by defining profiles in the UNIXPRIV class that
either:
Serve as system-wide options (such as the CHOWN.UNRESTRICTED or
FILE.GROUPOWNER.SETGID profiles).
Define an individual superuser capability (such as the ability to change file ownership using the
SUPERUSER.FILESYS.CHOWN resource), which can be granted to a user instead of assigning
UID(0).
RDELETE
v Remove RACF-protection from one or more resources whose class is defined in the class descriptor
table.
v Delete the global access checking tables.
v Delete the security category and security level tables.
v Delete a class from the list of classes for which RACF saves RACLISTed results on the RACF
database.
REMOVE
v Remove one or more users from a group and assign a new owner for any group data sets owned by
the users.
651
Command Functions
RESTART
RLIST
v List the details of discrete or generic profiles for one or more resources whose class is defined in the
class descriptor table.
v List the contents of the CDTINFO, DLFDATA, SESSION, SSIGNON, and STDATA segments in the
profiles.
v List the DOMAINDN, OPTIONS and LOCALREGISTRY information if the profile has an EIM segment.
v List the encryption keys used if the profile has a KERB segment.
v List the LDAPHOST address, BINDDN information and whether or not a BINDPW exists if the profile
has a PROXY segment.
v Perform a local refresh of generic general resource profiles.
RVARY
v
v
v
v
SEARCH
v Obtain a list of RACF profile names that meet the search criteria for a class of, resources, users, or
groups. These profile names can then be displayed on your terminal.
Profile names that contain a specific character string
Profiles for resources that have not been referenced for more than a specific number of days
Profiles that RACF recognizes as model profiles
Data set and general resource profiles that contain a level equal to or greater than the level you
specify
User and resource profiles that contain a security label that matches the security label you specify.
User and resource profiles that contain a security level that matches the security level that you
specify
User and resource profiles that contain an access category that matches the access category that
you specify.
User profiles that contain an OMVS UID equal to the UID you specify.
Group profiles that contain an OMVS GID equal to the GID you specify.
Profiles for tape volumes that contain only data sets with an expiration date that matches the
criteria you specify.
Profiles for data sets that reside on specific volumes (or VSAM data sets that are cataloged in
catalogs on specific volumes).
Profiles for tape data sets, non-VSAM DASD data sets, or VSAM data sets.
v Format the selected profile names with specific character strings into a series of commands or
messages and retain them in a CLIST data set.
v Create a CLIST of the RACF profile names that meet a search criteria for a class of resources.
SET
v
v
v
v
v
652
List information related to RACF remote sharing facility (RRSF) on the local node.
LIST the rrrrrrrr.aaaaaaaa value for the template version following the FMID/APAR value.
Specify the name of a member of the RACF parameter library to be processed by RRSF.
Set tracing on or off for specified operands.
Specify options for automatic command direction.
Command Functions
SETROPTS
SIGNOFF
STOP
TARGET
v
v
v
v
v
v
v
v
v
v
v
v
List the controls and operational characteristics of the specified target RRSF nodes.
Specify the name of the target RRSF node.
Request an operational state for connection to the target RRSF node.
Delete an RRSF node from the local node.
Specify a description of the target RRSF node.
Purge the workspace data sets managed by RRSF in the RACF subsystem address space.
Specify the protocol type for the transport mechanism to be used in communication between the two
RRSF nodes.
Specify the relationship between the target RRSF node and the node being configured.
Specify a prefix for the workspace data sets allocated by and used by RRSF for each target node.
Specify the characteristics of the workspace data sets associated with the node being defined to
RRSF.
Specify the name of a multisystem node.
Identify the main system in a multisystem RRSF node.
653
ADDGROUP
ADDUSER
with all operands, but for group-SPECIAL user only when user also has CLAUTH(USER)
ALTDSD
ALTGROUP
ALTUSER
with all operands except UAUDIT or NOUAUDIT. Also, you must have the SPECIAL attribute to use
the NOEXPIRED operand or to issue the NOCLAUTH operand for a class name that is not in the
class descriptor table (group-SPECIAL does not suffice).
CONNECT
DELDSD
DELGROUP
DELUSER
LISTDSD
LISTGRP
LISTUSER
PASSWORD
PERMIT
RALTER
RACDCERT
with all operands. You must have the SPECIAL attribute to issue the RACDCERT command
(group-SPECIAL does not suffice).
RACLINK
RDEFINE
RDELETE
REMOVE
RLIST
SEARCH
SETROPTS
with all operands except AUDIT, NOAUDIT, CMDVIOL, NOCMDVIOL, APPLAUDIT, NOAPPLAUDIT,
LOGOPTIONS, OPERAUDIT, NOOPERAUDIT, SAUDIT, NOSAUDIT, SECLABELAUDIT,
NOSECLABELAUDIT, SECLEVELAUDIT, and NOSECLEVELAUDIT, which require the AUDITOR
attribute. Users with the group-SPECIAL attribute can only issue REFRESH GENERIC and LIST.
This command applies to z/OS and OS/390 systems. However, you can issue this command on a VM system to
maintain a RACF database that is shared among z/OS, OS/390, and VM systems.
654
|
|
|
|
ALTDSD1
ALTUSER
LISTDSD1
LISTGRP
LISTUSER
RALTER
RLIST
SEARCH
SETROPTS
This command applies to z/OS and OS/390 systems. However, you can issue this command on a VM system to
maintain a RACF database that is shared among z/OS, OS/390, and VM systems.
LISTDSD
RLIST
SEARCH
SETROPTS
This command applies to z/OS and OS/390 systems. However, you can issue this command on a VM system to
maintain a RACF database that is shared among z/OS, OS/390, and VM systems.
3 5
RALTER ,
4 5
RDEFINE ,
with all operands except OPERATIONS, NOOPERATIONS, SPECIAL, NOSPECIAL, AUDITOR or NOAUDITOR
only with CLAUTH or NOCLAUTH
only with ADDVOL
with all operands (special rules apply to ADDMEM)
655
This command applies when you have the CLAUTH attribute of USER and you either are the owner of a group, have JOIN
authority in the default group specified in the command, or the profile is within the scope of a group in which you have the
group-SPECIAL attribute.
This command applies when you have the CLAUTH attribute for the class to be added or deleted, the class name is in the class
descriptor table (CDT), and either you are the owner of the users profile, or the profile is within the scope of a group in which
you have the group-SPECIAL attribute.
This command applies when you have the CLAUTH attribute of TAPEVOL and you also have sufficient authority to issue the
command.
These commands apply when you have the CLAUTH attribute for the specified class.
For ADDMEM, special rules apply, depending on access to individual resources. For more information, see the description of the
ADDMEM operand in z/OS Security Server RACF Command Language Reference.
Group Authority
If you have a group authority, you can issue the commands and operands shown in
Table 51.
Table 51. Commands and Operands You Can Issue If You Have a Group Authority
Group Authorities
Commands and Operands You Can Issue If You Have This Authority
USE
CREATE
CONNECT
JOIN
ADDSD1
ADDSD1,5
ALTUSER
CONNECT
LISTGRP
REMOVE
ADDGROUP2
ADDSD1,5
ADDUSER
ALTGROUP
656
ALTUSER
CONNECT
DELGROUP2
LISTGRP
REMOVE
Commands and Operands You Can Issue If You Have This Authority
This command applies only if you have the JOIN group authority in the default group specified in the ADDUSER
command and if you also have the CLAUTH(USER) attribute.
This command applies to current and new superior groups. You can have JOIN authority in one group and be
owner of or be connected with the group-SPECIAL attribute to another group.
This command applies to z/OS and OS/390 systems. However, you can issue this command on a VM system to
maintain a RACF database that is shared among z/OS, OS/390, and VM systems.
Access Authority
If you have an access authority, you can issue the commands and operands shown
in Table 52.
Table 52. Commands and Operands You Can Issue If You Have an Access Authority
Access Authorities
Commands and Operands You Can Issue If You Have This Authority
NONE
EXECUTE
None
READ
UPDATE
CONTROL
ALTER
LISTDSD1
RLIST
SEARCH
ALTDSD1,2
DELDSD1,2
LISTDSD
PERMIT
1,2
RALTER
RDELETE2
RLIST
This command applies to z/OS and OS/390 systems. However, you can issue this command on a VM system to
maintain a RACF database that is shared among z/OS, OS/390, and VM systems.
This command applies to ADDVOL operand only if you also have CLAUTH attribute for TAPEVOL.
657
Commands and Operands You Can Issue If You Are the Owner
ALTUSER1
DELUSER
LISTUSER
PASSWORD
RACLINK
ADDGROUP2
ADDUSER
ALTGROUP4
ALTUSER
CONNECT
DELGROUP5
LISTGRP
REMOVE
ALTDSD7
DELDSD
LISTDSD7
PERMIT
RALTER
RDELETE
RLIST
SEARCH
This command applies to CLAUTH or NOCLAUTH only if you have the CLAUTH attribute for the class to be
added or deleted, and the class name is in the class descriptor table (CDT).
This command applies to the default group specified and only if you have the CLAUTH attribute of USER.
This command applies to current and new superior groups. You can have JOIN authority in one group and be
owner of another group.
This command applies to the ADDVOL operand only when you also have CLAUTH attribute of TAPEVOL.
This command applies to z/OS and OS/390 systems. However, you can issue this command on a VM system to
maintain a RACF database that is shared among z/OS, OS/390, and VM systems.
Other Authorities
Table 54 on page 659 shows the commands and operands you can issue for
reasons not already covered previously.
658
LISTUSER
PASSWORD
None
None
LISTDSD
PERMIT
SEARCH
RVARY1
RESTART
SET
SIGNOFF
STOP
TARGET
Although no special authority is needed to issue this command, the system operator must supply the appropriate
RVARY password, as established by the SETROPTS command with the RVARYPW operand, to approve any
change in RACF status.
659
660
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
661
665
666
667
668
Description
userid
NAME('user-name')
DATA('installation-defined-data')
DFLTGRP(groupname)
OWNER(userid or groupname)
UACC(access-authority)
AUTHORITY(group-authority)
CLAUTH | NOCLAUTH
AUDITOR | NOAUDITOR
OPERATIONS | NOOPERATIONS
SPECIAL | NOSPECIAL
OIDCARD | NOOIDCARD
PASSWORD | NOPASSWORD
WHEN([DAYS(day-info)][TIME(time-info)])
ADDCATEGORY(category-name ...)
SECLABEL(security-label)
SECLEVEL(security-level)
ADSP | NOADSP
GRPACC | NOGRPACC
MODEL(dsname)
RESTRICTED | NORESTRICTED
661
Profiles
Table 55. User Profile Contents: ADDUSER Command (continued)
Operand of ADDUSER command
Description
CICS
OPCLASS(operator-class1,operator-class2,...)
OPIDENT(operator-id)
OPPRTY(operator-priority)
TIMEOUT(timeout-value)
XRFSOFF(FORCE | NOFORCE)
DCE
AUTOLOGIN(NO | YES)
DCENAME(user-principal-name)
HOMECELL(dce-cell-name)
HOMEUUID(home-cell-uuid)
UUID(universal-unique-identifier)
DFP
DATAAPPL(application-name)
DATACLAS(data-class-name)
MGMTCLAS(management-class-name)
STORCLAS(storage-class-name)
KERB
KERBNAME(local_principal_name)
ENCRYPT
([DES | NODES] [DES3 | NODES3] [DESD | NODESD])
MAXTKTLFE(max_ticket_life)
LANGUAGE
PRIMARY(language)
SECONDARY(language)
LNOTES
SNAME(short-name)
NDS
UNAME(user-name)
NETVIEW
CONSNAME(console-name)
CTL(GENERAL GLOBAL SPECIFIC)
DOMAINS(domain-names)
IC('commands')
MSGRECVR(NO YES)
662
Profiles
Table 55. User Profile Contents: ADDUSER Command (continued)
Operand of ADDUSER command
Description
NGMFADMN(NO YES)
OPCLASS(classes)
OMVS
ASSIZEMAX(address-space-size)
CPUTIMEMAX(cpu-time)
FILEPROCMAX(files-per-process)
HOME(initial-directory-name)
MEMLIMIT(non-shared-memory-size)
MMAPAREAMAX(memory-map-size)
PROCUSERMAX(processes-per-UID)
PROGRAM(program-name)
SHMEMMAX(shared-memory-size)
THREADSMAX(threads-per-process)
UID(user-identifier)
OPERPARM
ALTGRP(alternate-console-group)
AUTH(MASTER | ALL | INFO | any others)
AUTO(YES | NO)
CMDSYS(system-name | *)
DOM(NORMAL | ALL | NONE)
KEY(searching-key)
LEVEL(message-level)
LOGCMDRESP(SYSTEM | NO)
MFORM(message-format)
MIGID(YES | NO)
MONITOR(events)
MSCOPE(system-names | * | *ALL)
663
Profiles
Table 55. User Profile Contents: ADDUSER Command (continued)
Operand of ADDUSER command
Description
STORAGE(amount)
UD(YES | NO)
OVM
FSROOT(directory-name)
HOME(initial-directory-name)
PROGRAM(program-name)
UID(user-identifier)
PROXY
LDAPBIND(ldap_host)
LDAPHOST(ldap_url)
BINDDN(bind_distinguished_name)
BINDPW(bind_password)
TSO
ACCTNUM(account-number)
DEST(destination-id)
HOLDCLASS(hold-class)
JOBCLASS(job-class)
MAXSIZE(maximum-region-size)
MSGCLASS(message-class)
PROC(logon-procedure-name)
SECLABEL(security-label)
SIZE(default-region-size)
SYSOUTCLASS(sysout-class)
COMMAND
UNIT(unit-name)
USERDATA(user-data)
WORKATTR
WAACCNT(account-number)
WAADDRn (address-line)
WABLDG(building)
WADEPT(department)
664
Profiles
Table 55. User Profile Contents: ADDUSER Command (continued)
Operand of ADDUSER command
Description
WANAME(name)
WAROOM(room)
Description
ADD dataset-name
TRUST | NOTRUST
WITHLABEL(label-name)
PASSWORD(pkcs12-password)
ICSF
PCICC
MAP dataset-name
WITHLABEL
IDNFILTER
SDNFILTER
GENCERT(request-dataset-name)
SUBJECTSDN
Table 57. User Profile Contents: RACLINK Command
Operand of RACLINK command
Description
PEER(PWSYNC)
PEER(NOPWSYNC)
MANAGED
Description
groupname
OWNER(userid or groupname)
SUPGROUP(groupname)
665
Profiles
Table 58. Group Profile Contents: ADDGROUP Command (continued)
Operand of ADDGROUP command
Description
DATA('installation-defined-data')
MODEL(dsname)
TERMUACC | NOTERMUACC
UNIVERSAL
Installation-defined data
The name of a profile to be used as a model
The type of terminal authorization for the group
Universal group
DFP
DATAAPPL(application-name)
DATACLAS(data-class-name)
MGMTCLAS(management-class-name)
STORCLAS(storage-class-name)
OMVS
GID(group-identifier)
OVM
GID(group-identifier)
TME
ROLES(profile-name ...)
Description
userid...
GROUP(groupname)
OWNER(userid or groupname)
AUTHORITY(group-authority)
UACC[(access-authority)]
AUDITOR | NOAUDITOR
OPERATIONS | NOOPERATIONS
SPECIAL | NOSPECIAL
REVOKE[(date)]
RESUME[(date)]
ADSP | NOADSP
GRPACC | NOGRPACC
666
Profiles
Description
profile-name-1
/password
GENERIC | MODEL | TAPE
DATA('installation-defined-data')
OWNER(userid or groupname)
NOTIFY[(userid)]
UACC(access-authority)
AUDIT(access-attempts(audit-access-level)...)
FROM(profile-name-2)
FCLASS(profile-name-2-class)
FGENERIC
FVOLUME(profile-name-2-serial)
FILESEQ(number)
RETPD(nnnnn)
ADDCATEGORY(category-name ...)
SECLABEL(security-label)
SECLEVEL(security-level)
ERASE
LEVEL(nn)
NOSET | SET | SETONLY
UNIT(type)
VOLUME(volume-serial ...)
WARNING
DFP
RESOWNER(userid or groupname)
TME
ROLES(role-access-specification ...)
667
Profiles
Table 61. Data Set Profile Contents: Access Lists
Operand of PERMIT command
Description
profile-name-1
ACCESS(access-authority)
ID(name ...|*)
WHEN(APPCPORT(partner-luname ...|*))
WHEN(CONSOLE(console-id ...|*))
WHEN(JESINPUT(device-name ...|*))
WHEN(PROGRAM(program-name ...|*))
WHEN(SERVAUTH(SERVAUTH-profile-name ...|*))
WHEN(TERMINAL(terminal-id ...|*))
MAP(data-set-name)
ID(userid)
SDNFILTER(subjects-distinguished-name-filter)
IDNFILTER(issuers-distinguished-name-filter)
CRITERIA(criteria-profile-name-template)
WITHLABEL(label-name)
TRUST | NOTRUST
Description
Base segment information (DIGTNMAP class
only):
Specifies a certificate name filter.
Specifies the user ID associated with the certificate
name filter.
Specifies the significant portion of the subjects
X.509 distinguished name used in a certificate name
filter.
Specifies the significant portion of the issuers X.509
distinguished name used in a certificate name filter.
Indicates additional criteria used with MULTIID
certificate name filters.
Specifies the label of the certificate name filter.
Indicates the trust status of the certificate name
filter.
CERTDATA segment information (DIGTCERT
class only):
668
Profiles
Table 62. General Resource Profile Contents: RACDCERT Command (continued)
Operand of RACDCERT command
Description
ADD(data-set-name)
NOTRUST
TRUST
HIGHTRUST
GENCERT(request-dataset-name)
SUBJECTSDN
SIZE(key-size)
NOTBEFORE(DATE(yyyy-mm-dd) TIME(hh:mm:ss))
NOTAFTER(DATE(yyyy-mm-dd) TIME(hh:mm:ss))
WITHLABEL(label-name)
SIGNWITH(CERTAUTH LABEL(label-name))
SIGNWITH(SITE LABEL(label-name))
SIGNWITH(LABEL(label-name))
ALTNAME(DOMAIN(internet-domain-name))
ALTNAME(EMAIL(email-address))
ALTNAME(URI(universal-resource-identifier))
ADDRING(ring-name)
ICSF
PCICC
KEYUSAGE(HANDSHAKE)
KEYUSAGE(DATAENCRYPT)
KEYUSAGE(DOCSIGN)
KEYUSAGE(CERTSIGN)
ALTNAME(IP(numeric-ip-address))
Description
classname
profile-name-1
669
Profiles
Table 63. General Resource Profile Contents: RDEFINE Command (continued)
Operand of RDEFINE command
Description
ADDMEM(member ...)
APPLDATA('application-data')
DATA('installation-defined-data')
OWNER(userid or groupname)
NOTIFY[(userid)]
UACC(access-authority)
AUDIT(access-attempts[(audit-access-level)])
FROM(profile-name-2)
FCLASS(profile-name-2-class)
FGENERIC
FVOLUME(volume-serial)
ADDCATEGORY(category-name ...)
SECLABEL(seclabel-name)
SECLEVEL(seclevel-name)
LEVEL(nn)
SINGLEDSN
TVTOC
TIMEZONE({E | W} hh[.mm])
WHEN([DAYS(day-info)][TIME(time-info)])
WARNING
|
|
|
|
|
|
|
|
|
|
|
|
|
CDTINFO
CASE(UPPER | ASIS)
DEFAULTRC(0 | 4 | 8)
DEFAULTUACC
(ALTER | CONTROL | UPDATE | READ | NONE)
FIRST
(ALPHA,NUMERIC,NATIONAL,SPECIAL)
GENLIST(ALLOWED | DISALLOWED)
GROUP(grouping-class-name)
KEYQUALIFIERS(0 | nnn)
670
Profiles
Table 63. General Resource Profile Contents: RDEFINE Command (continued)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Description
MAXLENGTH(8 | nnn)
MAXLENX(nnn)
MEMBER(member-class-name)
OPERATIONS(YES | NO)
OTHER(ALPHA,NUMERIC,NATIONAL,SPECIAL)
POSIT(nnn)
PROFILESALLOWED(YES | NO)
RACLIST(ALLOWED | DISALLOWED | REQUIRED)
SECLABELSREQUIRED(YES | NO)
SIGNAL(YES | NO)
DLFDATA
RETAIN(YES | NO)
JOBNAMES(jobname-1 ...)
|
|
|
EIM
DOMAINDN
OPTIONS
KERBREGISTRY(registry_name)
LOCALREG(registry_name)
X509REGISTRY(registry_name)
KERB
KERBNAME(local_realm_name)
ENCRYPT
([DES | NODES] [DES3 | NODES3] [DESD | NODESD])
MINTKTLFE(min_ticket_life)
MAXTKTLFE(max_ticket_life)
DEFTKTLFE(def_ticket_life)
PASSWORD(password)
PROXY
LDAPHOST(ldap_url)
BINDDN(bind_distinguished_name)
The
The
The
The
671
Profiles
Table 63. General Resource Profile Contents: RDEFINE Command (continued)
Operand of RDEFINE command
Description
BINDPW(bind_password)
SESSION
CONVSEC
INTERVAL(n)
LOCK
SESSKEY(session-key)
SSIGNON
KEYENCRYPTED(key-value)
KEYMASKED(key-value)
STDATA
USER(userid | =MEMBER)
GROUP(groupname | =MEMBER)
PRIVILEGED(NO | YES)
TRACE(NO | YES)
TRUSTED(NO | YES)
SVFMR
PARMNAME(parm-name)
SCRIPTNAME(script-name)
TME
CHILDREN(profile-name ...)
GROUPS(groupname ...)
PARENT(profile-name ...)
RESOURCE(resource-access-specification ...)
ROLES(role-access-specification ...)
672
Profiles
Table 64. General Resource Profile Contents: Access Lists
Operand of PERMIT command
Description
profile-name-1
CLASS(profile-name-1-class)
ACCESS(access-authority)
ID(name ...|*)
WHEN(APPCPORT(partner-luname ...|*))
WHEN(CONSOLE(console-ID ...|*))
WHEN(JESINPUT(device-name ...|*))
WHEN(PROGRAM(program-name ...|*))
WHEN(SERVAUTH(SERVAUTH-profile-name ...|*))
WHEN(SYSID(system-ID ...|*))
WHEN(TERMINAL(terminal-ID ...|*))
673
Profiles
674
Usage notes . . . . . . . . . . . . . . . . . . . .
Buffer pool privileges . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . .
USE . . . . . . . . . . . . . . . . . . . . .
Collection privileges . . . . . . . . . . . . . . . . .
DB2 administrative authorities . . . . . . . . . . . . .
PACKADM . . . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . .
CREATE IN . . . . . . . . . . . . . . . . . .
Database privileges . . . . . . . . . . . . . . . . . .
DB2 administrative authority . . . . . . . . . . . . .
DBCTRL . . . . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . .
CREATETAB . . . . . . . . . . . . . . . . . .
CHANGE NAME QUALIFIER . . . . . . . . . . . .
CREATETS . . . . . . . . . . . . . . . . . . .
DISPLAYDB . . . . . . . . . . . . . . . . . .
DROP. . . . . . . . . . . . . . . . . . . . .
IMAGCOPY, MERGECOPY, MODIFY RECOVERY, QUIESCE
RECOVERDB, REPORT . . . . . . . . . . . . . .
REORG . . . . . . . . . . . . . . . . . . . .
REPAIR, RUN REPAIR UTILITY . . . . . . . . . . .
REPAIR DBD . . . . . . . . . . . . . . . . . .
RUN CHECK UTILITY, STATS . . . . . . . . . . . .
STARTDB . . . . . . . . . . . . . . . . . . .
STOPDB. . . . . . . . . . . . . . . . . . . .
TERM UTILITY . . . . . . . . . . . . . . . . .
TERM UTILITY ON DATABASE . . . . . . . . . . .
Java archive (JAR) privileges . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . .
USAGE . . . . . . . . . . . . . . . . . . . .
Package privileges . . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . .
BIND . . . . . . . . . . . . . . . . . . . . .
COMMENT ON . . . . . . . . . . . . . . . . .
COPY . . . . . . . . . . . . . . . . . . . . .
DROP. . . . . . . . . . . . . . . . . . . . .
EXECUTE . . . . . . . . . . . . . . . . . . .
All package privileges (PACKADM or SYSADM) . . . . .
All package privileges (PACKADM, SYSADM, or SYSCTRL)
Plan privileges . . . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . .
BIND . . . . . . . . . . . . . . . . . . . . .
COMMENT ON . . . . . . . . . . . . . . . . .
EXECUTE . . . . . . . . . . . . . . . . . . .
Schema privileges . . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . .
ALTERIN . . . . . . . . . . . . . . . . . . .
CHANGE NAME QUALIFIER . . . . . . . . . . . .
COMMENT ON . . . . . . . . . . . . . . . . .
CREATEIN . . . . . . . . . . . . . . . . . . .
Copyright IBM Corp. 1994, 2005
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
678
678
678
678
679
679
679
679
679
679
679
679
680
680
680
680
681
681
681
682
682
682
683
683
683
683
684
684
684
684
684
685
685
685
685
686
686
686
686
687
687
687
687
688
688
688
688
688
689
689
689
675
DB2 Privileges
DROPIN . . . . . . . . . . . . . . . . . . . . . .
Storage group privileges . . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . . . .
DROP, ALTER . . . . . . . . . . . . . . . . . . . .
USE . . . . . . . . . . . . . . . . . . . . . . .
Stored procedure privileges . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . . . .
DISPLAY . . . . . . . . . . . . . . . . . . . . .
EXECUTE . . . . . . . . . . . . . . . . . . . . .
START . . . . . . . . . . . . . . . . . . . . . .
STOP . . . . . . . . . . . . . . . . . . . . . . .
System privileges . . . . . . . . . . . . . . . . . . . .
DB2 administrative authorities . . . . . . . . . . . . . . .
SYSADM . . . . . . . . . . . . . . . . . . . . .
SYSCTRL . . . . . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . . . .
ALTER BUFFERPOOL . . . . . . . . . . . . . . . .
BINDADD . . . . . . . . . . . . . . . . . . . . .
BINDAGENT . . . . . . . . . . . . . . . . . . . .
CANCEL | START | STOP DDF, DISPLAY | START | STOP RLIMIT
CREATEALIAS . . . . . . . . . . . . . . . . . . .
CREATEDBA . . . . . . . . . . . . . . . . . . . .
CREATESG . . . . . . . . . . . . . . . . . . . .
CREATETMTAB . . . . . . . . . . . . . . . . . . .
DISPLAY, DISPLAY BUFFERPOOL . . . . . . . . . . . .
DISPLAY ARCHIVE . . . . . . . . . . . . . . . . . .
MONITOR1 . . . . . . . . . . . . . . . . . . . . .
MONITOR2 . . . . . . . . . . . . . . . . . . . . .
RECOVER BSDS . . . . . . . . . . . . . . . . . .
RECOVER INDOUBT . . . . . . . . . . . . . . . . .
SET ARCHIVE . . . . . . . . . . . . . . . . . . .
STOPALL . . . . . . . . . . . . . . . . . . . . .
STOSPACE UTILITY . . . . . . . . . . . . . . . . .
TRACE . . . . . . . . . . . . . . . . . . . . . .
USE ARCHIVE LOG . . . . . . . . . . . . . . . . .
Table privileges . . . . . . . . . . . . . . . . . . . . .
DB2 privileges. . . . . . . . . . . . . . . . . . . . .
ALTER . . . . . . . . . . . . . . . . . . . . . .
ALTER INDEX, DROP INDEX . . . . . . . . . . . . . .
CHANGE NAME QUALIFIER . . . . . . . . . . . . . .
COMMENT ON, COMMENT ON INDEX, DROP . . . . . . .
CREATE SYNONYM . . . . . . . . . . . . . . . . .
CREATE VIEW . . . . . . . . . . . . . . . . . . .
DELETE . . . . . . . . . . . . . . . . . . . . . .
DROP ALIAS . . . . . . . . . . . . . . . . . . . .
DROP SYNONYM . . . . . . . . . . . . . . . . . .
INDEX . . . . . . . . . . . . . . . . . . . . . .
INSERT . . . . . . . . . . . . . . . . . . . . . .
LOAD . . . . . . . . . . . . . . . . . . . . . . .
LOCK TABLE . . . . . . . . . . . . . . . . . . . .
REFERENCES . . . . . . . . . . . . . . . . . . .
RENAME TABLE. . . . . . . . . . . . . . . . . . .
SELECT . . . . . . . . . . . . . . . . . . . . . .
TRIGGER . . . . . . . . . . . . . . . . . . . . .
UPDATE . . . . . . . . . . . . . . . . . . . . . .
Any of the table privileges . . . . . . . . . . . . . . .
676
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
690
690
690
690
691
691
691
691
691
692
692
693
693
693
693
693
693
693
694
694
694
694
695
695
695
696
696
696
696
697
697
697
697
698
698
698
699
699
699
699
700
700
700
700
701
701
701
702
702
702
703
703
703
704
704
705
DB2 Privileges
Tablespace privileges . . . . . .
DB2 privileges. . . . . . . .
DROP, ALTER . . . . . . .
USE . . . . . . . . . .
User-defined distinct type privileges .
DB2 privileges. . . . . . . .
USAGE . . . . . . . . .
User-defined function privileges . .
DB2 privileges. . . . . . . .
DISPLAY . . . . . . . .
EXECUTE . . . . . . . .
START . . . . . . . . .
STOP . . . . . . . . . .
View privileges . . . . . . . .
DB2 privileges. . . . . . . .
COMMENT ON . . . . . .
DELETE . . . . . . . . .
DROP. . . . . . . . . .
INSERT . . . . . . . . .
REGENERATE VIEW . . . .
SELECT . . . . . . . . .
UPDATE . . . . . . . . .
Any table authority . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
705
705
705
706
706
706
706
706
706
706
707
707
708
708
708
708
708
709
709
709
709
710
710
This appendix includes information about the RACF authorization checking through
the RACF external security module for the following DB2 objects:
B
Buffer pools
C
Collections
D
Databases
E
User-defined distinct types
F
User-defined functions
J
Java archives (JARs)
K
Packages
M
Schemas
O
Stored procedures
P
Application plans
R
Tablespaces
S
Storage groups
T
Tables
U
Systems
V
Views
|
|
Restriction
This chapter contains information about the external security module for
installations using RACF with DB2 Version 7, or earlier.
|
|
|
Information about the external security module for installations using RACF
with DB2 for z/OS Version 8, and higher, is found in DB2 RACF Access
Control Module Guide, SC18-7433.
The sections that follow outline the series of authorization checks that occur in the
RACF external security module to determine if the requesting user is authorized to
use a particular DB2 privilege against a particular DB2 object type. If any
authorization check in the series is successful, the privilege is granted. For
Appendix D. RACF External Security Module: Authorization Checking
677
DB2 Privileges
examples of authorization processing in the RACF external security module, see
Authorization processing examples on page 439.
In order to perform authorization checks, the RACF external security module uses
the values passed with the following parameters to determine the DB2 object types
and privileges:
XAPLTYPE
XAPLPRIV
DB2 privilege
Restriction: The sections that follow show only the name of each
DB2 privilege passed with the XAPLPRIV parameter. The RACF
external security module uses a numeric XAPLPRIV value. See the
DB2 macro DSNXAPRV in prefix.SDSNMACS to find the numeric
value associated with each DB2 privilege name.
|
|
|
|
|
|
Usage notes
The following notes apply to each resource name format shown in each table of this
appendix.
1. The resource name formats shown in this appendix are applicable only if you
are in multiple-subsystem scope (&CLASSOPT 2) and are not using DB2 data
sharing.
2. If you are using DB2 data sharing in multiple-subsystem scope (&CLASSOPT 2),
substitute DB2-group-attachment for DB2-subsystem in each resource name
format shown in this appendix.
3. If you are using single-subsystem scope (&CLASSOPT 1), exclude DB2-subsystem
from each resource name format shown in this appendix.
|
|
|
|
|
|
|
|
|
|
DB2 privileges
USE
XAPLPRIV value: USEAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.buffer-pool-name.USE
MDSNBP or GDSNBP
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
678
DB2 Privileges
Collection privileges
Resources: Collections
Resource type: C
|
|
In class:
DB2-subsystem.collection-ID.PACKADM
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2 privileges
CREATE IN
XAPLPRIV value: CRTINAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.collection-ID.CREATEIN
MDSNCL or GDSNCL
DB2-subsystem.collection-ID.PACKADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
Database privileges
Resources: Databases
Resource type: D
In class:
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
679
DB2 Privileges
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2 privileges
CREATETAB
XAPLPRIV value: CRTTBAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.CREATETAB
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
CREATETS
XAPLPRIV value: CRTTSAUT
The user must have sufficient authority to:
680
In class:
DB2-subsystem.database-name.CREATETS
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2 Privileges
One of these resources:
|
|
In class:
DISPLAYDB
XAPLPRIV value: DSPDBAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.DISPLAYDB
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.DISPLAY
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DROP
XAPLPRIV value: DROPAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.DROP
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
In class:
DB2-subsystem.database-name.IMAGCOPY
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
681
DB2 Privileges
One of these resources:
|
|
In class:
RECOVERDB, REPORT
XAPLPRIV values: RECDBAUT, REPRTAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.RECOVERDB
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
REORG
XAPLPRIV value: REORGAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.REORG
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.database-name.REPAIR
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
682
DB2 Privileges
REPAIR DBD
XAPLPRIV value: RDBDAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.database-name.STATS
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
STARTDB
XAPLPRIV value: STARTAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.STARTDB
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
STOPDB
XAPLPRIV value: STOPAUT
The user must have sufficient authority to:
One of these resources:
In class:
DB2-subsystem.database-name.STOPDB
MDSNDB or GDSNDB
683
DB2 Privileges
|
|
In class:
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
TERM UTILITY
XAPLPRIV value: TERMAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2 privileges
USAGE
XAPLPRIV value: USAGEAUT
Does the user own the Java archive (JAR)?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
684
DB2 Privileges
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.schema-name.JAR-name.USAGE
MDSNJR or GDSNJR
DB2-subsystem.SYSADM
DSNADM
Package privileges
Resources: Packages
Resource type: K
DB2 privileges
BIND
XAPLPRIV value: BINDAUT
Does the user own the package?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
One of these resources:
In class:
DB2-subsystem.collection-ID.package-ID.BIND
MDSNPK or GDSNPK
DB2-subsystem.owner.BINDAGENT
MDSNSM or GDSNSM
DB2-subsystem.collection-ID.PACKADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
|
|
COMMENT ON
|
|
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
||
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
|
685
DB2 Privileges
COPY
|
|
In class:
DB2-subsystem.collection-ID.package-ID.COPY
MDSNPK or GDSNPK
DB2-subsystem.owner.BINDAGENT
MDSNSM or GDSNSM
DB2-subsystem.collection-ID.PACKADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DROP
XAPLPRIV value: DROPAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.collection-ID.PACKADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
EXECUTE
XAPLPRIV value: CHKEXEC
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.collection-ID.package-ID.EXECUTE
MDSNPK or GDSNPK
DB2-subsystem.collection-ID.PACKADM
DSNADM
DB2-subsystem.SYSADM
DSNADM
686
DB2 Privileges
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.collection-ID.PACKADM
DSNADM
DB2-subsystem.SYSADM
DSNADM
In class:
DB2-subsystem.PACKADM
DSNADM
DSNADM
|
|
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
Plan privileges
Resources: Application plans
Resource type: P
DB2 privileges
BIND
XAPLPRIV value: BINDAUT
Does the user own the plan?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLOWNQ parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.plan-name.BIND
MDSNPN or GDSNPN
DB2-subsystem.owner.BINDAGENT
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
687
DB2 Privileges
|
|
COMMENT ON
|
|
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLOWNQ parameter.
||
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
|
EXECUTE
|
|
In class:
DB2-subsystem.plan-name.EXECUTE
MDSNPN or GDSNPN
DB2-subsystem.SYSADM
DSNADM
Schema privileges
Resources: Schemas
Resource type: M
DB2 privileges
ALTERIN
XAPLPRIV value: ALTINAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the object?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
688
In class:
DB2-subsystem.schema-name.object-name.ALTERIN
MDSNSC or GDSNSC
DB2 Privileges
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
|
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
Notes:
1. No RACF audit record or ICH408I message is generated for a failure related to this
privilege. RACF will audit successes, if specified.
2. DB2-subsystem may not be required, or may be substituted by DB2-group-attachment, at
your DB2 installation. See Usage notes on page 678.
COMMENT ON
XAPLPRIV value: COMNTAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the object?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.schema-name.object-name.ALTERIN
MDSNSC or GDSNSC
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
CREATEIN
XAPLPRIV value: CREINAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOBJN parameter.
689
DB2 Privileges
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.schema-name.CREATEIN
MDSNSC or GDSNSC
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DROPIN
XAPLPRIV value: DRPINAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the object?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.schema-name.object-name.DROPIN
MDSNSC or GDSNSC
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2 privileges
DROP, ALTER
XAPLPRIV values: DROPAUT, ALTERAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
690
DB2 Privileges
USE
XAPLPRIV value: USEAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.storage-groupname.USE
MDSNSG or GDSNSG
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2 privileges
DISPLAY
XAPLPRIV value: DISPAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the stored procedure?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.procedure-name.DISPLAY
MDSNSP or GDSNSP
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
EXECUTE
|
|
|
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
691
DB2 Privileges
|
||
In class:
DB2-subsystem.schema-name.procedure-name.EXECUTE
MDSNSP or GDSNSP
DB2-subsystem.SYSADM
DSNADM
|
|
|
START
XAPLPRIV value: STRTAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the stored procedure?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
STOP
XAPLPRIV value: STPAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the stored procedure?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
692
DB2 Privileges
System privileges
Resources: Systems
Resource type: U
|
|
In class:
DB2-subsystem.SYSADM
DSNADM
SYSCTRL
XAPLPRIV value: SYSCAUTH
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2 privileges
ALTER BUFFERPOOL
XAPLPRIV value: CHKALTBP
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
BINDADD
XAPLPRIV value: BINDAAUT
The user must have sufficient authority to:
One of these resources:
In class:
DB2-subsystem.BINDADD
MDSNSM or GDSNSM
693
DB2 Privileges
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
BINDAGENT
XAPLPRIV value: BNDAGAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.owner.BINDAGENT
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
CREATEALIAS
XAPLPRIV value: CRTALAUT
The user must have sufficient authority to:
One of these resources:
In class:
Restriction: The CREATEALIAS check is done only when XAPLCRVW (bit 1 of XAPLFLG1)
is on.
|
|
DB2-subsystem.CREATEALIAS
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
CREATEDBA
XAPLPRIV value: CRTDBAUT
694
DB2 Privileges
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.CREATEDBA
MDSNSM or GDSNSM
DB2-subsystem.CREATEDBC
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
CREATESG
XAPLPRIV value: CRTSGAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.CREATESG
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
CREATETMTAB
XAPLPRIV value: CRTTMAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.CREATETMTAB
MDSNSM or GDSNSM
DB2-subsystem.CREATETAB
MDSNDB or GDSNDB
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.DISPLAY
MDSNSM or GDSNSM
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
695
DB2 Privileges
DISPLAY ARCHIVE
XAPLPRIV value: DARCHAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.DISPLAY
MDSNSM or GDSNSM
DB2-subsystem.ARCHIVE
MDSNSM or GDSNSM
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
MONITOR1
XAPLPRIV value: MON1AUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.MONITOR1
MDSNSM or GDSNSM
DB2-subsystem.MONITOR2
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
MONITOR2
XAPLPRIV value: MON2AUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.MONITOR2
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
RECOVER BSDS
XAPLPRIV value: CHKBSDS
The user must have sufficient authority to:
696
In class:
DB2-subsystem.BSDS
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2 Privileges
One of these resources:
|
|
In class:
RECOVER INDOUBT
XAPLPRIV value: CHKRECOV
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.RECOVER
MDSNSM or GDSNSM
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
SET ARCHIVE
XAPLPRIV value: SARCHAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.ARCHIVE
MDSNSM or GDSNSM
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
STOPALL
XAPLPRIV value: CHKSUBSY
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.STOPALL
MDSNSM or GDSNSM
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
STOSPACE UTILITY
XAPLPRIV value: STOAUT
697
DB2 Privileges
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.STOSPACE
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
TRACE
XAPLPRIV value: CHKTRACE
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.TRACE
MDSNSM or GDSNSM
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.ARCHIVE
MDSNSM or GDSNSM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
Table privileges
Resources: Tables
Resource type: T
|
|
|
|
698
DB2 Privileges
DB2 privileges
ALTER
XAPLPRIV value: ALTERAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.table-owner.table-name.ALTER
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
This check is bypassed for user tables.
DSNADM
DB2-subsystem.SYSADM
DSNADM
699
DB2 Privileges
|
|
|
|
In class:
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
CREATE SYNONYM
XAPLPRIV value: CRTSYAUT
There are no authorization checks (return code 4).
CREATE VIEW
XAPLPRIV value: CRTVUAUT
The user must have sufficient authority to:
One of these resources:
In class:
DB2-subsystem.SYSCTRL
This check is bypassed for user tables.
DSNADM
DB2-subsystem.SYSADM
DSNADM
Note: DBADM authority can be used to allow a user to create views. See CREATE VIEW
Privilege on page 432 for more information.
|
|
DB2-subsystem.DB2-database-name-1.DBADM
DB2-subsystem.DB2-database-name-2.DBADM
DSNADM
DSNADM
.
.
.
DB2-subsystem.DB2-database-name-n.DBADM
.
.
.
DSNADM
DELETE
XAPLPRIV value: DELETAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
700
DB2 Privileges
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.table-owner.table-name.DELETE
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
This check is bypassed for user tables.
DSNADM
DB2-subsystem.SYSADM
DSNADM
DROP ALIAS
XAPLPRIV value: DRPALAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DROP SYNONYM
XAPLPRIV value: DRPSYAUT
There are no authorization checks (return code 4).
INDEX
XAPLPRIV value: INDEXAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.table-owner.table-name.INDEX
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
701
DB2 Privileges
INSERT
XAPLPRIV value: INSRTAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.table-owner.table-name.INSERT
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
This check is bypassed for user tables.
DSNADM
DB2-subsystem.SYSADM
DSNADM
LOAD
XAPLPRIV value: LOADAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.LOAD
MDSNDB or GDSNDB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
LOCK TABLE
XAPLPRIV value: LOCKAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
702
In class:
DB2-subsystem.table-owner.table-name.SELECT
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2 Privileges
|
|
In class:
DB2-subsystem.SYSADM
DSNADM
REFERENCES
XAPLPRIV value: REFERAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.table-owner.table-name.REFERENCES
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.ALTER
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.column.REFERENCES
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
RENAME TABLE
XAPLPRIV value: RNTABAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.DBMAINT
DSNADM
DB2-subsystem.database-name.DBCTRL
DSNADM
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
SELECT
XAPLPRIV value: SELCTAUT
Does the user own the table?
703
DB2 Privileges
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.table-owner.table-name.SELECT
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
This check is bypassed for user tables.
DSNADM
DB2-subsystem.SYSADM
DSNADM
TRIGGER
XAPLPRIV value: TRIGAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.table-owner.table-name.TRIGGER
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.ALTER
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
This check is bypassed for user tables.
DSNADM
DB2-subsystem.SYSADM
DSNADM
UPDATE
XAPLPRIV value: UPDTEAUT
Does the user own the table?
If so, XAPLUPRM or XAPLUCHK must match the table name qualifier passed from
DB2.
If not, the user must have sufficient authority to:
704
In class:
DB2-subsystem.table-owner.table-name.UPDATE
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.column.UPDATE
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
This check is bypassed for user tables.
DSNADM
DB2 Privileges
|
|
In class:
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.table-owner.table-name.REFERENCES
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.ALTER
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.INDEX
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.SELECT
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.INSERT
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.DELETE
MDSNTB or GDSNTB
DB2-subsystem.table-owner.table-name.UPDATE
MDSNTB or GDSNTB
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
This check is bypassed for user tables.
DSNADM
DB2-subsystem.SYSADM
DSNADM
Tablespace privileges
Resources: Tablespaces
Resource type: R
DB2 privileges
DROP, ALTER
XAPLPRIV values: DROPAUT, ALTERAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
705
DB2 Privileges
USE
XAPLPRIV value: USEAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.database-name.tablespace-name.USE
MDSNTS or GDSNTS
DB2-subsystem.database-name.DBADM
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DB2 privileges
USAGE
XAPLPRIV value: USAGEAUT
Does the user own the user-defined distinct type?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.schema-name.type-name.USAGE
MDSNUT or GDSNUT
DB2-subsystem.SYSADM
DSNADM
DB2 privileges
DISPLAY
XAPLPRIV value: DISPAUT
Does the user match the schema name?
706
DB2 Privileges
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the user-defined function?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.schema-name.function-name.DISPLAY
MDSNUF or GDSNUF
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
EXECUTE
|
|
|
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
||
In class:
DB2-subsystem.schema-name.function-name.EXECUTE
MDSNUF or GDSNUF
DB2-subsystem.SYSADM
DSNADM
|
|
|
START
XAPLPRIV value: STRTAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the user-defined function?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
One of these resources:
In class:
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
707
DB2 Privileges
|
|
In class:
DB2-subsystem.SYSADM
DSNADM
STOP
XAPLPRIV value: STPAUT
Does the user match the schema name?
If so, XAPLUPRM or XAPLUCHK must match the schema name passed from DB2
by the XAPLOWNQ parameter.
If not, does the user own the user-defined function?
If so, XAPLUPRM or XAPLUCHK must match the owner name passed from DB2 by
the XAPLREL1 parameter.
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSOPR
DSNADM
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
View privileges
Resources: Views
Resource type: V
DB2 privileges
COMMENT ON
XAPLPRIV value: COMNTAUT
Does the user own the view? (If so, XAPLUPRM or XAPLUCHK must match the
view name passed from DB2 by the XAPLOWNQ parameter.)
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
DELETE
XAPLPRIV value: DELETAUT
708
DB2 Privileges
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.view-owner.view-name.DELETE
MDSNTB or GDSNTB
DB2-subsystem.SYSADM
DSNADM
DROP
XAPLPRIV value: DROPAUT
Does the user own the view? (If so, XAPLUPRM or XAPLUCHK must match the
view name passed from DB2 by the XAPLOWNQ parameter.)
If not, the user must have sufficient authority to:
|
|
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
INSERT
XAPLPRIV value: INSRTAUT
The user must have sufficient authority to:
One of these resources:
In class:
DB2-subsystem.view-owner.view-name.INSERT
MDSNTB or GDSNTB
DB2-subsystem.SYSADM
DSNADM
|
|
|
|
REGENERATE VIEW
|
|
Does the user own the view? (If so, XAPLUPRM or XAPLUCHK must match the
view name passed from DB2 by the XAPLOWNQ parameter.)
||
In class:
DB2-subsystem.SYSCTRL
DSNADM
DB2-subsystem.SYSADM
DSNADM
|
|
|
SELECT
709
DB2 Privileges
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.view-owner.view-name.SELECT
MDSNTB or GDSNTB
DB2-subsystem.SYSADM
DSNADM
UPDATE
XAPLPRIV value: UPDTEAUT
The user must have sufficient authority to:
|
|
In class:
DB2-subsystem.view-owner.view-name.UPDATE
MDSNTB or GDSNTB
DB2-subsystem.view-owner.view-name.column-name.UPDATE
MDSNTB or GDSNTB
DB2-subsystem.SYSADM
DSNADM
|
|
In class:
DB2-subsystem.view-owner.view-name.SELECT
MDSNTB or GDSNTB
DB2-subsystem.view-owner.view-name.INSERT
MDSNTB or GDSNTB
DB2-subsystem.view-owner.view-name.UPDATE
MDSNTB or GDSNTB
DB2-subsystem.view-owner.view-name.DELETE
MDSNTB or GDSNTB
DB2-subsystem.SYSCTRL
This check is bypassed when bit 7 of XAPLFLG1 is on.
DSNADM
DB2-subsystem.SYSADM
DSNADM
710
Specifying a UACC of NONE for the SYS1.* profile protects any system data sets
that are added to the system by new products. If new system data sets need a
UACC higher than NONE or a SECLABEL of SYSLOW, you can create more
specific profiles for them.
You should also create specific profiles for particular data sets (or groups of data
sets, such as SYS1.DUMPxx data sets), using the information in Table 65.
For any data set that is listed with a UACC of READ or higher, you should consider
creating an entry in the global access checking table. For more information, see
Setting Up the Global Access Checking Table on page 206.
For system data sets that are listed in the table with a UACC higher than NONE,
you might prefer to specify UACC(NONE) and create an access list entry of
ID(*) ACCESS(access-authority). This entry prevents restricted users and users
who are not defined to RACF from accessing the data sets.
Restricted users enter the system with a user ID that is defined with the
RESTRICTED attribute, and may be shared by many users. Restricted users are
prevented from gaining access to protected resources through the global access
checking table, UACC, or the ID(*) entry on the access list. User IDs defined with
the RESTRICTED attribute must be specifically authorized with sufficient authority
on the access list of any protected resource they must access. Therefore, to allow
restricted users to access any data set listed with UACC of READ or higher in
Table 65, each user ID with the RESTRICTED attribute must be specifically
authorized at the level of access indicated by the UACC value.
Table 65. UACC Values for System Data Sets
Data set
UACC
Master catalog
READ
User catalogs
UPDATE
NONE
Comments
711
UACC
NONE
READ
NONE
Load libraries
READ
NONE
NONE
NONE
NONE
RMF
712
data sets
NONE
Comments
NONE
NONE
NONE
SYS1.AMACLIB
READ
SYS1.AMODGEN
READ
SYS1.ASAMPLIB
READ
SYS1.BRODCAST
READ
SYS1.CMDLIB
READ
SYS1.DAE
NONE
SYS1.DUMPxx
NONE
SYS1.HELP
READ
SYS1.IMAGELIB
NONE
SYS1.JESPARM
NONE
SYS1.JES3LIB
READ
SYS1.LINKLIB
READ
SYS1.LOGREC
NONE
SYS1.LPALIB
READ
SYS1.MACLIB
READ
SYS1.MANx
NONE
SYS1.MIGLIB
READ
SYS1.MODGEN
READ
SYS1.NUCLEUS
READ
SYS1.OVERLIB
READ
UACC
Comments
SYS1.PARMLIB
READ
SYS1.PROCLIB
READ
SYS1.RACF
NONE
SYS1.SAMPLIB
READ
SYS1.STGINDEX
NONE
SYS1.SVCLIB
NONE
SYS1.TELCMLIB
READ
SYS1.UADS
NONE
SYS1.VTOCIX.___
NONE
SYS1.VVDS.___
NONE
SYS1.VTAMLIB
READ
SYS1.VTAMLST
NONE
NONE
NONE
713
714
.
.
.
.
.
.
.
.
.
715
717
718
719
719
720
725
730
732
. 733
735
. 735
. 736
. 737
.
.
.
.
737
738
738
739
.
.
.
.
740
740
740
741
This appendix explains how to debug the profile definitions in the RACF database
and the current RACF options. It also discusses RACF authorization checking and
refresh timing.
This appendix describes how to debug problems with your profile definitions. It is
designed to help you determine how your current RACF options and profiles work
for you. For example, if users have access to resources that they should not have,
or if users do not have access to resources that they should have, this section
might be helpful in determining how to correct the problem.
Note: If you have a problem that you suspect is caused by RACF, and not by your
use of RACF, see z/OS Security Server RACF Diagnosis Guide for
information on correcting the problem.
715
Debugging
Note: List the profile you believe should have given access. If it contains an *,
%, or &, make sure it is also followed by a G. If you do not have the G, it
is not generic and would not be granting any access.
If the ICH408I message indicates that access was denied because of a revoked
user ID, you may want to resume that user ID. Check if the user ID is associated
with the started procedure. If there was a user ID associated with the started
procedure, this started procedure could not have begun successfully. After you
resume the user ID, you must restart the started procedure or re-IPL.
If the ICH408I message indicates that access was denied because of a profile,
check the profile listing to make sure the user or job should have access. You
should check not only the UACC and access lists, but the security classification
of the resource profile and the user. Also, please note that installation exits (both
RACF exits and certain exits in products that call RACF, such as JES) can affect
a users access to resources. To check the users access to the resource, ask
the user who had the problem to list the profile protecting the resource.
For data sets, the user can issue the LISTDSD command.
For general resources, the user can issue the RLIST command.
In the listing, have the user check the YOUR ACCESS field.
If the user cannot issue the LIST command, do it yourself. In the listing supplied
by RACF, the following fields can, by themselves, deny access to a user:
The security level or security category, or both
The security label
The standard access list (ID and ACCESS)
The universal access authority (UACC)
If the profile listing indicates that the user or job should have access, and the
profile is in a class for which SETROPTS RACLIST processing or SETROPTS
GENLIST processing is in effect, make sure that any in-storage profiles are
refreshed by doing the following:
If the resource is protected by a generic profile in a class that is not
RACLISTed or GENLISTed, ask the user to log off and log on again, or
resubmit the job. This refreshes the users copy of the profile.
Issue the SETROPTS GENERIC(classname) REFRESH or SETROPTS
RACLIST(classname) REFRESH command again.
For information about SETROPTS REFRESH processing on shared systems,
see Refreshing Shared Systems (REFRESH Option) on page 132.
You can use audit records to gather information that you would not otherwise
have. In particular, you can request that audit records be generated for all
accesses to protected resources, or for only failed accesses. You can also
request that audit records be kept for a particular user. With the auditing in effect,
you can use the RACF report writer to view the access requests associated with
the access requests.
Note: In some cases (such as some resources in the OPERCMDS class), a
RACROUTE request from a resource manager can include a log string,
which is a string of characters to be placed in the SMF record if the
access is audited. The log string can be useful in determining what kind of
action the user was taking. For example, the log string might include the
exact operator command, as the operator issued it.
716
Debugging
717
Debugging
- For data sets and mini-disks, the high-level qualifier
- The standard access list
- The conditional access list
- UACC
- WARNING
If list-of-groups processing is in effect on your system, check to see if a group
of which the user is a member is in the access list. Check both the standard
access list and the conditional access list. Also, note that installation exits
(both RACF exits and certain exits in products that call RACF, such as JES)
can affect a users access to resources.
v If your analysis of the protecting profile shows that the user should not have
access, continue with the following checks.
v If the SETROPTS RACLIST processing or SETROPTS GENLIST processing is in
effect, make sure that any in-storage profiles are refreshed.
If the resource is protected by a generic profile in a class that is not
RACLISTed or GENLISTed, ask the user to log off and log on again, or
resubmit the job. This refreshes the users copy of the profile.
Issue the SETROPTS GENERIC(classname) REFRESH or SETROPTS
RACLIST(classname) REFRESH command again.
For information about SETROPTS REFRESH processing on shared systems,
see Refreshing Shared Systems (REFRESH Option) on page 132.
v You can use audit records to gather information that you would not otherwise
have. In particular, you can request that audit records be generated for all
accesses to protected resources, or for only successful accesses. You can also
request that audit records be kept for a particular user. With the auditing in effect,
you can use the RACF report writer to view the access requests associated with
the access requests.
Note: In some cases (such as some resources in the OPERCMDS class), a
RACROUTE request from a resource manager can include a log string,
which is a string of characters to be placed in the SMF record if the
access is audited. The log string can be useful in determining what kind of
action the user was taking. For example, the log string might include the
exact operator command, as the operator issued it.
If the user is logged on, the system displays a message indicating that a job with
the letters TSU in it is executing.
v If the user is logged on and has not yet opened the data set or a data set
protected by the same generic profile (for example, by browsing or editing).
If the user is logged on and has opened the data set, and you change his access,
two situations could occur:
v If the profile is a discrete profile, the users access changes after closing the data
set.
718
Debugging
v If the profile is a generic profile, the users access changes after one of the
following occurs:
The user issues the LISTDSD command as follows:
LISTDSD DATASET(dataset-protected-by-the-profile) GENERIC
This places a fresh copy of the profile in the users address space.
A SETROPTS GENERIC(DATASET) REFRESH is issued on the system the
user is logged on to or from another system in the RACF sysplex data sharing
group, if RACF is enabled for sysplex communication.
The user references more than four data sets with different high-level
qualifiers, and the data sets are protected by generic profiles.
The user logs off and then logs back on.
9. If the RACHECK macro is issued instead of RACROUTE, authorization processing begins at Step 6 on page 720.
Appendix F. Debugging Problems in the RACF Database
719
Debugging
For the DATASET class, the default return code is the not protected return
code, unless the SETROPTS PROTECTALL(FAILURES) option is in effect, in
which case the default return code is the not authorized return code.
If the not protected return code is issued, the resource manager then either fails
or allows the request. Most resource managers allow the request.
RACF issues a message indicating that the resource is not protected.
Notes:
1. SMF log records or messages may be generated, depending on the options in
effect and whether RACF granted or denied access to the resource.
2. When checking authorization for a directed command, RACF uses the
authorization of the target user ID, not the issuing user ID.
2.
|
|
|
|
|
3.
4.
5.
6.
Note: Before master scheduler initialization (MSI), this is the ICHRTX01 exit
routine. After master scheduler initialization (MSI), this is the ICHRTX00
exit routine.
If the entry for the class in the RACF router table has NONE specified, RACF
returns the not protected return code. This also occurs if the caller specified
the REQSTOR and SUBSYS operands on the RACROUTE macro, did not
also specify DECOUPL=YES or give the REQSTOR and SUBSYS information
in the RACF router table entry.
If RACF is not active, RACF returns the not protected return code.
For general resource classes, if the class of the resource is not active, RACF
returns the not protected return code.
If the RACF class must be RACLISTed, as specified in the class descriptor
table (CDT), but is not currently RACLISTed, RACF returns the not protected
return code.
If the user requesting access is trusted or privileged, RACF grants the
request. See the following:
v If the user has the trusted attribute, RACF grants the request (unless the
CSA or PRIVATE operand was specified on the authorization request). Such
requests can be audited only by using the LOGOPTIONS operand on the
SETROPTS command (which audits access requests issued by all users).
v If the user has the privileged attribute, RACF grants the request (unless the
CSA or PRIVATE operand was specified on the authorization request). Such
requests cannot be audited.
7. RACF invokes the naming convention table if:
v The naming convention routine exists
v The resource being checked is a CLASS data set
720
Debugging
8.
9.
10.
11.
12.
13.
721
Debugging
a. RACF compares the security level (SECLEVEL) in the user profile with the
security level in the resource profile. If the resource has a higher security
level than the user, or if the user has no security level, RACF denies the
request.
For a terminal session, RACF uses the lower of the users SECLEVEL and
the terminals SECLEVEL when authorizing access to a resource. For
example, if the user has a SECLEVEL of 100 and the terminal has a
SECLEVEL of 50, RACF uses the terminals SECLEVEL during
authorization checking. Thus, in this case, the user cannot access, through
the terminal, any resource with a SECLEVEL greater than 50. (If the
terminal is not defined to RACF or is defined without a SECLEVEL, RACF
uses the users SECLEVEL to determine the resources that can be
accessed.)
If the security level check passes, authorization checking continues with
the following check.
b. RACF compares the list of security categories in the user profile with the
list of security categories in the resource profile. If the resource profile
contains a security category that is not in the users profile, RACF denies
the request.
Unlike the security level check, RACF uses only the users security
category list for a terminal session.
If both checks succeed, RACF continues authorization checking with Step 16.
16. If users attempt to access their own resources, RACF grants the request. For
example:
v For tape and DASD data sets, if the user ID of the requesting user is the
high-level qualifier of the data set name, RACF grants the request.
v For spool data sets, if the JESSPOOL class is active, RACF compares the
user ID and node of the requester with the user ID and node of the creator
of the spool data set (using the security token). If the user IDs match, RACF
grants the request.
17. RACF checks the users access authority in the standard access list. If the
user is in the list and if the specified access authority is sufficient to allow
access, RACF grants the request. If the user is in the list and if the specified
access authority is less than the requested access, RACF continues
processing at Step 22 on page 723 (conditional access list checking). This
prevents access based on ID(*), UACC, or the OPERATIONS attribute.
This could happen if, for example, user JOE requests UPDATE access, and
the standard access list includes ID(JOE) ACCESS(READ).
18. RACF determines whether the user has access to the resource because the
user is a member of a group and the group is on the standard access list.
Which group is used depends on whether list-of-groups processing is in effect.
(List-of-groups processing is in effect if the SETROPTS command has been
issued with the GRPLIST operand.) RACF determines which group to use
according to the following rules:
v If list-of-groups processing is not in effect, RACF uses only the users
current connect group.
v If list-of-groups processing is in effect, RACF finds all of the groups to which
the user is connected that are also in the access list. Of these groups,
RACF uses the group that has the highest access authority to the resource.
(For example, assume that a user is a member of groups A, B, and C. If
722
Debugging
group A has NONE access authority, group B has READ access authority,
and group C has UPDATE access authority, RACF uses group C to
determine the users access.)
If the highest access authority is sufficient to allow the requested access,
RACF grants the request. If the highest group that was found in the list does
not have the requested authority, RACF continues processing at Step 22
(conditional access list checking). This prevents access based on ID(*),
UACC, or the OPERATIONS attribute.
19. If a user ID of * is found on the standard access list, the current user is
defined to RACF without the RESTRICTED attribute, and the access authority
granted to * is:
v Sufficient to allow the requested access, RACF grants the request.
v Not sufficient to allow the requested access, RACF continues processing at
Step 21 (OPERATIONS attribute checking).
20. If the universal access authority (UACC) for the resource provides sufficient
access authority and the requesting user is not defined with the RESTRICTED
attribute, RACF grants the request.
21. If the requesting user has the OPERATIONS attribute (or group-OPERATIONS
if the resource is within the scope of that group) and OPERATIONS access is
allowed for the class, RACF grants the request.
22. RACF checks the users access authority in the conditional access list
specified with WHEN(TERMINAL), WHEN(CONSOLE), WHEN(APPCPORT),
WHEN(JESINPUT) or WHEN(SERVAUTH). If the user is in the list, if the user
meets the specified condition (such as logged on at the specified terminal),
and if the specified access authority is sufficient to allow access, RACF grants
the request. If the user is in the list with insufficient access authority, RACF
authorization processing continues at Step 25 on page 724.
23. RACF determines whether the user has access to the resource because the
user is a member of a group that meets a condition specified on the
conditional access list specified with WHEN(TERMINAL), WHEN(CONSOLE),
WHEN(APPCPORT), WHEN(JESINPUT) or WHEN(SERVAUTH). Which group
is used depends on whether list-of-groups processing is in effect.
(List-of-groups processing is in effect if the SETROPTS command has been
issued with the GRPLIST operand). RACF determines which group to use
according to the following rules:
v If list-of-groups processing is not in effect, RACF uses only the users
current connect group.
v If list-of-groups processing is in effect, RACF finds all of the groups to which
the user is connected that are also in the access list. Of these groups,
RACF uses the group that has the highest access authority to the resource.
(For example, assume that a user is a member of groups A and B. If A has
READ access authority and B has UPDATE access authority, RACF uses
group B to determine the users access.)
If the group to be used according to the preceding rules has sufficient access
authority to allow the requested access, RACF authorization processing
continues at Step 25 on page 724. If none of the users groups has sufficient
authority, RACF does not grant the request, and continues with the next step.
24. If a user ID of * is found on the conditional access list specified with
WHEN(TERMINAL), WHEN(CONSOLE), WHEN(APPCPORT),
WHEN(JESINPUT) or WHEN(SERVAUTH), and if the current user is defined to
RACF without the RESTRICTED attribute, and if the current user meets the
723
Debugging
specified condition (such as logged on at the specified terminal), and the
access authority granted to * is sufficient to allow the requested access, RACF
grants the request.
25. RACF checks the users access authority in the conditional access list
specified with WHEN(PROGRAM). If the user is in the list, if the user meets
the specified condition (such as running the specified program), and if the
specified access authority is sufficient to allow access, RACF grants the
request.
26.
27.
28.
29.
|
|
|
|
|
|
|
|
724
Note: For DASD data sets, if program control is active and a controlled
program is executing, RACF performs authorization checking for
program access to data sets. If the user/program combination is in the
conditional access list with sufficient authority to allow access to the
data sets, RACF grants the request. If the user/program combination is
in the conditional access list with insufficient authority, RACF denies the
request. For more information, see Authorization checking for access
control to data sets on page 326.
RACF determines whether the user has access to the resource because the
user is a member of a group that meets a condition specified on the
conditional access list (such as running a specified program). Which group is
used depends on whether list-of-groups processing is in effect. (List-of-groups
processing is in effect if the SETROPTS command has been issued with the
GRPLIST operand.) RACF determines which group to use according to the
following rules:
v If list-of-groups processing is not in effect, RACF uses only the users
current connect group.
v If list-of-groups processing is in effect, RACF finds all of the groups to which
the user is connected that are also in the access list. Of these groups,
RACF uses the group that has the highest access authority to the resource.
(For example, assume that a user is a member of groups A and B. If A has
READ access authority and B has UPDATE access authority, RACF uses
group B to determine the users access.)
If the group to be used according to the preceding rules has sufficient access
authority to allow the requested access, RACF grants the request. If the group
is specified in the list with insufficient access authority, RACF denies the
request.
If a user ID of * is found on the conditional access list specified with
WHEN(PROGRAM), and if the current user is defined to RACF without the
RESTRICTED attribute, and if the current user meets the specified condition
(such as logged on at the specified terminal or running the specified program),
and the access authority granted to * is sufficient to allow the requested
access, RACF grants the request.
If the WARNING flag is ON in the profile (set using the WARNING operand on
the ADDSD, ALTDSD, RDEFINE, or RALTER command), RACF grants the
request.
If SETROPTS CATDSNS(FAILURES) is in effect, RACF denies the request
unless at least one of the following is true:
v The data set is newly created in this job, or is a system temporary data set.
v The data set is on tape, and the request is for UPDATE access.
v The data set is protected by a discrete profile.
v The data set is cataloged in the master catalog.
v The data set is cataloged in a STEPCAT and the user has READ access to
FACILITY resource ICHUSERCAT.
Debugging
|
|
|
|
|
|
|
|
Note: If the user gains access through having the SPECIAL attribute and
none of the prior conditions were true, RACF issues a warning
message and creates an SMF record as though
CATDSNS(WARNING) were in effect.
30. The postprocessing exit (ICHRCX02) can grant or deny the request.
31. For the DATASET class, if no profile is found and the SETROPTS
PROTECTALL(FAILURES) option is in effect, RACF denies the request. If no
profile is found and the SETROPTS PROTECTALL(WARNING) option is in
effect, RACF grants the request.
Callers
pre-RACROUTE
exit
(if it exists)
RACROUTE
call
Callers
post-RACROUTE
exit
(if it exists)
Figure 67. Process Flow of Callers of RACF for RACROUTE REQUEST=AUTH Requests
Note: For information about exits that affect RACROUTE calls, see the
documentation for the calling product.
725
Debugging
Numbered
Steps
RACROUTE
1
Deny
Pass
Not protected
Pass
Requested function
has failed.
No RACF decision
Call to RACF router
RC from RACF
Return to Caller
Figure 68. Process Flow of SAF Router for RACROUTE REQUEST=AUTH Requests
726
Requested function
has completed successfully.
Debugging
Numbered
Steps
From SAF
Yes. No RACF decision
RACF is active?
Yes
No RACF decision
RACF class is active?
Yes
No RACF decision
Yes
Control passes to
RACROUTE REQUEST=AUTH
processing
RC from REQUEST=AUTH
Return to SAF Router
727
Debugging
Numbered
Steps
Privileged or trusted
Pass
No
7
Pass
10
Deny
Denied if MLQUIET is on
and user does not meet
certain requirements.
No
11
Pass
(continued in
next part of figure)
728
Debugging
12
Pass
No
13
No
Profile found?
Default RC of class
Yes
SECLABEL Check
14
Deny
or
15
SECLEVEL/CATEGORY
Okay
or not active
Pass
16
17
18
19
20
Pass
Pass
Insufficient
access
21
22
23
24
25
26
27
28
WARNING indicator on
Deny
Pass
Pass
Pass
Pass
(continued in
next part of figure)
(continued in
next part of figure)
729
Debugging
Deny
29
Deny
30
PROTECTALL(FAILURES)
31
Deny
Pass
730
Debugging
2. If the system (kernel) is the caller, then access is failed if either of the following
conditions occurs:
v The request includes execute authority for a file and execute authority
cannot be granted. In this condition, none of the permissions bits grant
execute access, and, if an ACL is present and the FSSEC class is active, no
ACL entry grants execute access.
v Security label authorization checking fails. In this condition, the SECLABEL
class is active, the object being accessed is a directory, the directorys
SECLABEL is not SYSMULTI, and the CRED contains a SECLABEL.
Otherwise, access is granted.
3. If the SECLABEL class is not active, then go to Step 14.
4. If the user has the TRUSTED or PRIVILEGED attribute, then access is granted
automatically unless the user is executing a file. If the user is executing a file,
access is denied only if none of the permissions bits grant execute access,
and, if an ACL is present and the FSSEC class is active, no ACL entry grants
execute access. Otherwise, access is granted.
5. If the user has the RACF AUDITOR attribute, and has read or search access
for a directory is requested, access is granted.
6. If SETROPTS MLFSOBJ is active and the file does not have a security label,
the request is failed.
7. If SETROPTS MLS is active, and the user has a security label but the file does
not, and write access is explicitly requested but the user is not in write-down
mode, then the request is failed.
8. If the file has a security label but the user does not, then the request is failed.
9. If the users security label is equivalent to the security label of the file (this
condition is also satisfied if either security label is SYSMULTI), then continue
at Step 15.
10. If ANY access is requested, then two security label dominance checks
(RACROUTE REQUEST=DIRAUTH) are performed: one for READ and one for
WRITE. If either succeeds, then continue at Step 15. Otherwise, the request is
failed.
11. If the user is requesting write access along with read or search/execute
access, then a READWRITE dominance check is performed. If it succeeds,
then continue at Step 15. Otherwise, the request is failed.
12. If the user is requesting only read or search/execute access, then a READ
dominance check is performed. If it succeeds, then continue at Step 15.
Otherwise, the request is failed.
13. If the user is requesting only write access, then a WRITE dominance check is
performed. If it succeeds, then continue at Step 15. Otherwise, the request is
failed.
14. If the user has the RACF AUDITOR attribute, and read or search access for a
directory is requested, access is granted.
15. If the user has UID(0), then access is granted automatically unless the user is
executing a file. If the user is executing a file, access is denied only if none of
the permissions bits grant execute access, and, if an ACL is present and the
FSSEC class is active, no ACL entry grants execute access. Otherwise,
access is granted.
16. If the UID matches the file owner UID, the files owner permission bits are
checked. If the owner bits allow the requested access, then access is
granted. Otherwise, go to Step 26 on page 732.
731
Debugging
17. If the FSSEC class is active, and an ACL exists, and there is an ACL entry for
the requesting UID, then the permission bits of that ACL entry are checked. If
the ACL entry allows the requested access, then access is granted. Otherwise,
go to Step 25.
18. If the GID matches the file owner GID, the files group permission bits are
checked. If the group bits allow the requested access, then access is
granted.
19. If the FSSEC class is active, and an ACL exists, and there is an ACL entry for
the requesting GID, then the permission bits of that ACL entry are checked. If
the ACL entry allows the requested access, then access is granted. If not, then
the next ACL entry is checked until there are no more entries.
20. If any of the users supplemental GIDs match the file owner GID, the files
group permission bits are checked. If the group bits allow the requested
access, then access is granted.
21. If the FSSEC class is active, and an ACL exists, and there is an ACL entry for
any of the users supplemental GIDs, then the permission bits of that ACL
entry are checked. If the ACL entry allows the requested access, then access
is granted. If not, then the next ACL entry is checked until there are no more
entries.
22. If at least one matching ACL entry was found for the GID, or any of the
supplemental GIDs, then processing continues with Step 25. If the GID, or any
of the supplemental GIDs, matched the file owner GID, then processing
continues with Step 26. Otherwise (neither the GID nor any of the
supplemental GIDs matched either the file owner GID or an ACL entry),
processing continues with the next step.
23. If the requesting user has the RESTRICTED attribute, and the UNIXPRIV class
is active and RACLISTed, and the RESTRICTED.FILESYS.ACCESS resource
is protected by a profile in the UNIXPRIV class, and the user does not have at
least READ access, then go to Step 26.
24. The files other permission bits are checked. If the other bits allow the
requested access, then access is granted. Otherwise, go to Step 26.
25. If the UNIXPRIV class is active and RACLISTed, and if the
SUPERUSER.FILESYS.ACLOVERRIDE resource is protected by a profile in
the UNIXPRIV class, then the user must have the correct access level as
documented for the ck_access (IRRSKA00) callable service in z/OS Security
Server RACF Callable Services. If the profile exists, it determines whether file
access is granted or denied.
26. If the UNIXPRIV class is active and RACLISTed, and if the
SUPERUSER.FILESYS resource is protected by a profile in the UNIXPRIV
class, then the user must have the correct access level as documented for the
ck_access (IRRSKA00) callable service in z/OS Security Server RACF Callable
Services. If the profile exists, it determines whether file access is granted or
denied.
27. Access is denied.
28. The SAF callable services router exit (IRRSXT00) can grant or deny access
after RACF authorization processing occurs.
732
Debugging
user is permitted use of the terminal. RACF performs this authorization checking
during REQUEST=VERIFY processing at the same time as it performs user
identification and verification.
RACF performs terminal authorization checking in the following sequence:
1. If your installation has activated the SECLABEL class, RACF performs security
label authorization checking. For a complete description, see Security Label
Authorization Checking on page 736. If security label authorization checking
succeeds, RACF authorization checking continues with the next step.
2. If the requesting user has at least READ access authority to the terminal, RACF
processing continues at Step 5. If the users access authority is NONE, RACF
denies use of the terminal and stops terminal authorization checking.
3. If the requesting users current connect group (or, if you activate list-of-groups
checking, one of the users other connect groups) has at least READ access
authority to the terminal, RACF processing continues at Step 5. If the groups
access authority is NONE, RACF denies use of the terminal and stops terminal
authorization checking.
4. If the profile has a universal access authority (UACC) of at least READ and your
installation has not specified NOTERMUACC for the users current connect
group, RACF processing continues at Step 5. Otherwise, RACF denies use of
the terminal and stops terminal authorization checking.
Note: For defined terminals, you can specify the universal access authority
(UACC) with the RDEFINE or RALTER command. For undefined
terminals, you can specify the universal access authority with the
TERMUACC operand of the SETROPTS command.
For more information, see Limiting Specific Groups of Users to Specific
Terminals on page 237.
5. If your installation authorizes the use of the terminal on this particular day and
time, RACF grants access to the terminal. (You can specify the terminal time
and day-of-week restrictions with the RDEFINE and RALTER commands.)
RACF also checks whether your installation has authorized the user to access
the system on this particular day and time. (You can specify the user time and
day-of-week restrictions with the ADDUSER and ALTUSER commands.)
Notes:
1. The REQUEST=AUTH and REQUEST=VERIFY preprocessing and
postprocessing exit routines are available during terminal authorization
checking.
2. Global access checking is not available during terminal authorization checking
performed by REQUEST=VERIFY.
3. Profiles in the GTERMINL class are ignored unless SETROPTS RACLIST
processing is in effect.
733
Debugging
identification and verification. For RACF to perform this authorization checking, your
installation must activate the appropriate class, as follows:
v For JES or MCS consoles, activate the CONSOLE class.
v For JES input devices, activate the JESINPUT class.
v For APPC partner LUs, activate the APPCPORT class.
v For IP addresses, activate the SERVAUTH class.
The resource must be protected by a profile in the appropriate class. If no profile
exists for the resource, RACF fails the request.
Notes:
1. If the resource is a terminal, console, partner LU, JES writer, or IP address,
RACF compares the security level of the user with the security level of the
resource. If the resource has a higher security level than the user, RACF denies
the request. For a terminal session, the security level that RACF uses for the
user is the lower of the users SECLEVEL and the terminals SECLEVEL. Thus,
if the terminal has a SECLEVEL of 50 and the user has a SECLEVEL of 100,
the user cannot access through that terminal any data that has a SECLEVEL of
over 50.
2. RACF compares the list of security categories in the users profile with the list of
security categories in the resources profile. If RACF finds any security category
in the resource profile that is not in the users profile, RACF denies the request.
If RACF does not deny the request, RACF continues with authorization
processing. If there are no categories in the resource profile, RACF continues
with authorization processing.
The rest of this section uses the term device authorization checking to refer to the
authorization checking done for any of the above resources.
RACF performs device authorization checking in the following sequence:
1. If your installation has activated the SECLABEL class, RACF performs security
label authorization checking. For a complete description, see Security Label
Authorization Checking on page 736. If security label authorization checking
succeeds, RACF authorization checking continues with the next step.
2. If the requesting user has at least READ access authority to the device, RACF
grants the request with no further processing. If the users access authority is
NONE, RACF denies use of the device and stops device authorization checking.
If the requesting user is not in the access list, device authorization checking
continues with the next step.
3. If the requesting users current connect group (or, if you activate list-of-groups
checking, one of the users other connect groups) has at least READ access
authority to the device, RACF grants the request with no further processing. If
the groups access authority is NONE, RACF denies use of the device and
stops device authorization checking. If the group is not in the access list, device
authorization checking continues with the next step.
4. If the profile has a universal access authority (UACC) of at least READ, RACF
grants the request with no further processing. Otherwise, RACF denies use of
the device and stops device authorization checking.
Notes:
a. The TERMUACC operand of the SETROPTS command has no effect on
consoles or JES input devices.
b. You cannot specify time or day-of-week restrictions for consoles or JES
input devices. (You can specify user time and day-of-week restrictions with
the ADDUSER and ALTUSER commands.)
734
Debugging
Notes:
1. The REQUEST=AUTH and REQUEST=VERIFY preprocessing and
postprocessing exit routines are available during device authorization checking.
2. Global access checking is not available during device authorization checking
performed by REQUEST=VERIFY.
735
Debugging
3. See Chapter 16, RACF and Information Management System (IMS), on page
455 for more information on how to protect IMS with RACF.
4. See CICS RACF Security Guide for information on how to protect CICS with
RACF.
736
Debugging
normal MAC
The security label of the user must dominate the security label of the
resource in order for the user to be granted access to the resource.
This is the default attribute in the class descriptor table and is in
effect when neither RVRSMAC nor EQUALMAC is defined as an
attribute.
reverse MAC
The security label of the resource must dominate the security label
of the user in order for the user to be granted access to the
resource. This is defined by the RVRSMAC attribute in the class
descriptor table.
equal MAC
The security label of the user and the security label of the resource
must be equivalent in order for the user to be granted access to the
resource. This is defined by the EQUALMAC attribute in the class
descriptor table.
The MAC authorization types described in Table 66 are used for the following levels
of authorization request for resource access. (See Security Labels on page 96 for
descriptions and examples of each requested access level.)
v Read-only
v Read-write
v Write-only
The security label relationships for each MAC authorization type are applied
differently depending on the setting of the SETROPTS MLS option. See
Authorization Summary for SETROPTS MLS(FAILURES) and MLS(WARNINGS)
and Authorization Summary for SETROPTS NOMLS on page 738.
737
Debugging
Table 67. Security label authorization checking when SECLABEL class is active and either
SETROPTS MLS(FAILURES) or MLS(WARNING) is in effect
Requested access
level
Normal MAC
Reverse MAC
Equal MAC
Read-only
User dominant
Resource dominant
Equivalent
Equivalent
Equivalent
Read-write
Write-only
Equivalent
Resource dominant
Unpredictable
Equivalent
Notes:
1
z/OS does not support write-only requests for data sets or tape volumes. All write-only
requests are tested as both read-only and write-only requests. Therefore, the security
labels must be equivalent.
2
Users can not write to a resource that has a lower security label than the users current
security label. This inability to write-down is enforced when SETROPTS
MLS(FAILURES) is in effect to ensure that a user does not declassify data.
3
The test for write-only is not supported for classes defined with the reverse MAC
attribute.
Normal MAC
Reverse MAC
Equal MAC
User dominant2
Resource dominant
Equivalent
Resource dominant
Equivalent
User dominant
User dominant or
resource dominant
Unpredictable
Equivalent
Notes:
1
z/OS does not support write-only requests for data sets or tape volumes. All write-only
requests are tested as both read-only and write-only requests. Therefore, the security
labels must be equivalent.
2
If SETROPTS MLS(WARNING) is active instead of NOMLS in these cases, an ICH408I
warning message is written to the security console.
3
The test for write-only is not supported for classes defined with the reverse MAC
attribute.
738
Debugging
Attention: Do not issue the SETROPTS MLACTIVE(FAILURES) command unless
you have assigned appropriate security labels to users and to the resources that
they must access. To recover from such a situation, logon as a user with the
SPECIAL attribute, specifying SYSHIGH as the current security label. Then either
assign security labels, or issue SETROPTS NOMLACTIVE. If you turn on
MLACTIVE and do not correctly define all profiles that need security labels, IPL
failures or other serious problems can occur. Therefore, it is recommended that you:
v Back up your RACF database with a database that you know you can IPL to.
v Define new system profiles (including classes such as DATASET, TERMINAL,
TAPEVOL, APPL or any other that has SLBLREQ=YES in the class descriptor
table) and ensure it has the correct security label.
v Turn MLACTIVE on in WARNING mode.
v Watch out for relevant warning messages.
Table 69. Effects of MLACTIVE Settings on Security Label Authorization
Missing user
security label
(resource security
label is present)
Missing resource
security label (user
security label is
present)
Fail1
Fail
Fail1
Fail
Fail
Pass
Pass
Fail1
Pass
Pass1
Fail
Pass
Pass
Fail
Pass
Pass
Environment
Note: 1 In these cases, the user has a missing security label while SETROPTS MLACTIVE(FAILURES) is in effect
because the user logged in without a security label before SETROPTS MLACTIVE(FAILURES) was activated.
Authorization requests are passed or failed according to the entries in Table 69. If such a user attempts to log on to
the system while SETROPTS MLACTIVE(FAILURES) was in effect, the user is not allowed to log on unless the user
has access to the SYSLOW security label. Users who have access to SYSLOW at logon time when
MLACTIVE(FAILURES) is active will be assigned and run with SYSLOW.
739
Debugging
MLS
(FAILURES)
MLACTIVE
(FAILURES)
MLQUIET
Effect
Inactive
Off
Off
Off
Active
Off
Off
Off
Active
On
Off
Off
Active
On
On
Off
Active
Off
On
Off
Active
Either
Either
On1
Note:
740
Debugging
v If the user is authorized to enter the system, RACF returns a successful return
code (return code 0) to the application. The application then allows the request to
complete.
v If the user is not authorized to enter the system, RACF returns an unauthorized
return code (other than 0) to the application. In general, the application then fails
the request.
Notes:
1. The REQUEST=VERIFY and REQUEST=VERIFYX preprocessing and
postprocessing exit routines are available during verification processing.
2. RACF authorization checks can be requested by RACF or the application (for
example, to determine if a user is authorized to use a particular terminal).
REQUEST=AUTH preprocessing and postprocessing exits are available during
this authorization processing.
3. SMF log records or messages can be generated. (Failures are always recorded.
Successes can be recorded if the application requests it on the
REQUEST=VERIFY request).
741
Debugging
v REQUEST=VERIFY processing might do some RACF authorization checks for
the user. Also, the caller of RACF, or initial EXECs or procedures that are
invoked automatically might require RACF authorization checking.
See Table 71 to see which resource classes could be checked from various types
of sessions.
v Check if an installation exit is causing the problem. Candidates include:
The SAF exits
Exits in the caller of RACF, such as JES or TSO
The REQUEST=VERIFY exits
Table 71. Resource Classes Checked for Logon/Job Initialization Requests
Type of session
TSO logons
CICS signons
IMS signons
Batch jobs
Inbound SYSOUT
742
Appendix G. Accessibility
Accessibility features help a user who has a physical disability, such as restricted
mobility or limited vision, to use software products successfully. The major
accessibility features in z/OS enable users to:
v Use assistive technologies such as screen readers and screen magnifier
software
v Operate specific or equivalent features using only the keyboard
v Customize display attributes such as color, contrast, and font size
z/OS information
z/OS information is accessible using screen readers with the BookServer/Library
Server versions of z/OS books in the Internet library at:
www.ibm.com/servers/eserver/zseries/zos/bkserv/
743
744
Notices
This information was developed for products and services offered in the USA. IBM
may not offer the products, services, or features discussed in this document in other
countries. Consult your local IBM representative for information on the products and
services currently available in your area. Any reference to an IBM product, program,
or service is not intended to state or imply that only that IBM product, program, or
service may be used. Any functionally equivalent product, program, or service that
does not infringe any IBM intellectual property right may be used instead. However,
it is the users responsibility to evaluate and verify the operation of any non-IBM
product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you any
license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
USA
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions, therefore, this statement may not apply to
you.
This information could include technical inaccuracies or typographical errors.
Changes are periodically made to the information herein; these changes will be
incorporated in new editions of the publication. IBM may make improvements and/or
changes in the product(s) and/or the program(s) described in this publication at any
time without notice.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those
Web sites. The materials at those Web sites are not part of the materials for this
IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes
appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of
enabling: (i) the exchange of information between independently created programs
Copyright IBM Corp. 1994, 2005
745
and other programs (including this one) and (ii) the mutual use of the information
which has been exchanged, should contact:
IBM Corporation
Mail Station P300
2455 South Road
Poughkeepsie, NY 12601-5400
USA
Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
The licensed program described in this information and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement, or any equivalent agreement
between us.
This information contains examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples include the
names of individuals, companies, brands, and products. All of these names are
fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which
illustrates programming techniques on various operating platforms. You may copy,
modify, and distribute these sample programs in any form without payment to IBM,
for the purposes of developing, using, marketing or distributing application programs
conforming to the application programming interface for the operating platform for
which the sample programs are written. These examples have not been thoroughly
tested under all conditions. IBM, therefore, cannot guarantee or imply reliability,
serviceability, or function of these programs. You may copy, modify, and distribute
these sample programs in any form without payment to IBM for the purposes of
developing, using, marketing, or distributing application programs conforming to
IBMs application programming interfaces.
If you are viewing this information softcopy, the photographs and color illustrations
may not appear.
This product contains code licensed from RSA Data Security Incorporated.
Trademarks
The following terms are trademarks of the IBM Corporation in the United States, or
other countries, or both:
BookManager
CICS
CICS/ESA
746
CICSPlex
DB2
DB2 Universal Database
DFSMSdfp
DFSMSdss
DFSMS/MVS
DFSORT
Eserver
Hiperbatch
IBM
IBMLink
IMS
IMS/ESA
Infoprint
Language Environment
Library Reader
Lotus
Lotus Notes
MQSeries
MVS
MVS/ESA
NetView
OS/390
Parallel Sysplex
Print Services Facility
QMF
RACF
Redbooks
Resource Link
RMF
S/390
SecureWay
System/390
SystemView
Tivoli
TME
VM/ESA
VTAM
WebSphere
World Registry
z/OS
z/OS.e
z/VM
zSeries
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in
the United States, other countries, or both.
Microsoft and Windows are trademarks of Microsoft Corporation in the United
States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other
countries.
Other company, product, and service names may be trademarks or service marks
of others.
Notices
747
748
RACF Glossary
This glossary defines technical terms and
abbreviations used in RACF documentation. If you
do not find the term you are looking for, refer to
the index of the appropriate RACF publication or
view IBM Glossary of Computing Terms, available
from: http://www.ibm.com/ibm/terminology.
Sequence of entries
For purposes of clarity and consistency of style,
this glossary arranges the entries alphabetically on
a letter-by-letter basis, which means:
v Only the letters of the alphabet are used to
determine sequence, and
v Special characters and spaces between words
are ignored.
Organization of entries
Each entry consists of:
v A single-word term,
v A multiple-word term,
v An abbreviation for a term, or
v An acronym for a term.
This entry is followed by a commentary, which
includes one or more items (definitions or
references) and is organized as follows:
1. An item number, if the commentary contains
two or more items.
2. A usage label, indicating the area of
application of the term, for example, In
programming, or In TCP/IP. Absence of a
usage label implies that the term is generally
applicable to IBM, or to data processing.
3. A descriptive phrase, stating the basic
meaning of the term. The descriptive phrase is
assumed to be preceded by the term is
defined as.... The part of speech being
defined is indicated by the opening words of
the descriptive phrase: To ... indicates a
verb, and Pertaining to ... indicates a
modifier. Any other wording indicates a noun
or noun phrase.
4. Annotative sentences, providing additional or
explanatory information.
5. References, pointing to other entries or items
in the dictionary.
References
The following cross-references are used in this
glossary:
v Contrast with: This refers to a term that has
an opposed or substantively different meaning.
v See: This refers the reader to (a) a related
term, (b) a term that is the expanded form of an
abbreviation or acronym, or (c) a synonym or
more preferred term.
v Synonym for: This indicates that the term has
the same meaning as a preferred term, which is
defined in its proper place in the glossary.
v Synonymous with: This is a reference from a
defined term to all other terms that have the
same meaning.
v Obsolete term for: This indicates that the term
should not be used and refers the reader to the
preferred term.
Selection of terms
A term is the word or group of words being
defined. In this glossary, the singular form of the
noun and the infinitive form of the verb are the
terms most often selected to be defined. If the
term has an acronym or abbreviation, it is given in
parentheses immediately following the term. The
abbreviations definition serves as a pointer to the
term it abbreviates, and the acronyms definition
serves as a pointer to the term it represents.
A
access. The ability to use a protected resource.
access authority. (1) The privileges granted to a
particular user or group when accessing a protected
resource (such as the ability to read or to update a data
set). For resources protected by RACF profiles, the
access authorities are NONE, EXECUTE, READ,
UPDATE, CONTROL, and ALTER. These authorities are
hierarchical, with READ also granting EXECUTE,
UPDATE granting READ, and so forth. (2) RACF also
has access authorities of READ, WRITE, and
EXECUTE (or SEARCH) when dealing with files and
directories in the HFS. Note that these authorities are
not hierarchical, and HFS files are not protected by
RACF profiles, although they do have access
authorities.
access ACL. An ACL that is used to provide protection
for a file system object.
749
Glossary
access control. In computer security, ensuring that
the resources of a computer system can be accessed
only by authorized users in authorized ways.
750
Glossary
services unless otherwise stated. Note, however, that
other RACF functions can also perform authorization
checking as a part of their processing. For example,
RACROUTE REQUEST=VERIFY can also check a
users authority to use a terminal or application.
automatic command direction. An RRSF function
that enables RACF to automatically direct certain
commands to one or more remote nodes after running
the commands on the issuing node. Commands can be
automatically directed based on who issued the
command, the command name, or the profile class
related to the command. Profiles in the RRSFDATA
class control to which nodes commands are
automatically directed. See automatic direction of
application updates, automatic password direction, and
command direction.
automatic data set protection (ADSP). A system
function, enabled by the SETROPTS ADSP specification
and the assignment of the ADSP attribute to a user with
ADDUSER or ALTUSER, that causes all permanent
data sets created by the user to be automatically
defined to RACF with a discrete RACF profile.
automatic direction. See automatic command
direction, automatic password direction, and automatic
direction of application updates.
automatic direction of application updates. An
RRSF function that automatically directs ICHEINTY and
RACROUTE macros that update the RACF database to
one or more remote systems. Profiles in the RRSFDATA
class control which macros are automatically directed,
and to which nodes. See automatic command direction
and automatic password direction.
automatic password direction. An RRSF function
that extends password synchronization and automatic
command direction to cause RACF to automatically
change the password for a user ID on one or more
remote nodes after the password for that user ID is
changed on the local node. Profiles in the RRSFDATA
class control for which users and nodes passwords are
automatically directed. See password synchronization,
automatic command direction, and automatic direction
of application updates.
automatic profile. A tape volume profile that RACF
creates when a RACF-defined user protects a tape data
set. When the last data set on the volume is deleted,
RACF automatically deletes the tape volume profile.
Contrast with nonautomatic profile.
B
backup data set. A data set in the backup RACF
database. For each data set in the primary RACF
database, an installation should define a corresponding
backup data set. See backup RACF database.
C
cache structure. A coupling facility structure that
contains data accessed by systems in a sysplex.
callable service. In z/OS UNIX, a request by an active
process for a service. Synonymous with syscall.
category. See security category.
CDMF. See Commercial Data Masking Facility.
CDT. See class descriptor table.
certificate. See digital certificate.
certificate authority. An organization that issues
digital certificates. The certificate authority authenticates
the certificate owners identity and the services that the
owner is authorized to use, issues new certificates,
renews existing certificates, and revokes certificates
belonging to users who are no longer authorized to use
them.
certificate-authority certificate. A type of certificate
managed by RACF. See digital certificate.
certificate name filter. A general resource profile
created by the RACDCERT MAP command that maps
multiple user IDs to a digital certificate in order to
simplify administration of certificates, conserve storage
space in the RACF database, maintain accountability, or
maintain access control granularity.
CICS. See Customer Information Control System.
RACF Glossary
751
Glossary
class. A collection of RACF-defined entities (users,
groups, and resources) with similar characteristics.
Classes are defined in the class descriptor table (CDT),
except for the USER, GROUP, and DATASET classes.
class authority (CLAUTH). An attribute enabling a
user to define RACF profiles in a class defined in the
class descriptor table. A user can have class authorities
to zero or more classes.
|
|
|
|
|
|
|
752
D
DASDVOL authority. A preferred alternative to
assigning the OPERATIONS or group-OPERATIONS
attribute, DASDVOL authority allows you to authorize
operations personnel to access only those volumes that
they must maintain. Using DASDVOL authority is also
more efficient for functions such as volume dumping,
Glossary
because only one authorization check for the volume
needs to be issued, instead of individual requests for
each data set on the volume. Note that modern data
management software (such as DFSMSdss) does not
require DASDVOL authority. Contrast with
OPERATIONS attribute, and group-OPERATIONS
attribute.
Data Lookaside Facility (DLF). A facility that
processes DLF objects. A DLF object contains data from
a single data set managed by Hiperbatch. The user (an
application program) is connected to the DLF object,
and the connected user can then access the data in the
object through normal QSAM or VSAM macro
instructions.
data security. The protection of data from intentional
or unintentional unauthorized disclosure, modification, or
destruction.
data security monitor (DSMON). A RACF auditing
tool that produces reports enabling an installation to
verify its basic system integrity and data security
controls.
data set profile. A profile that provides RACF
protection for one or more data sets. The information in
the profile can include the data set profile name, profile
owner, universal access authority, access list, and other
data. See discrete profile and generic profile.
data sharing group, RACF. A collection of one or
more instances of RACF in a sysplex that have been
identified to XCF and assigned to the group defined for
RACF sysplex data sharing. RACF joins group
IRRXCF00 when enabled for sysplex communication.
data sharing mode. An operational RACF mode that
is available when RACF is enabled for sysplex
communication. Data sharing mode requires installation
of coupling facility hardware.
DB2 administrative authority. A set of privileges,
often covering a related set of objects, and often
including privileges that are not explicit, have no name,
and cannot be specifically granted. For example, the
ability to terminate any utility job is included in the
SYSOPR authority.
DB2 explicit privilege. A privilege that has a name,
and is held as the result of an SQL GRANT statement.
DCE. See Distributed Computing Environment.
default ACL. An ACL that is specifically associated
with a directory, and which gets inherited by an object
created within the directory.
default group. The group specified in a user profile
that provides a default current connect group for the
user. See current connect group.
753
Glossary
that defines the first. This also means that the first does
not dominate the second and the second does not
dominate the first. See dominate.
|
|
|
|
|
|
|
|
|
754
Glossary
performance than an AUTH request. The FASTAUTH
request replaces the FRACHECK function. See
authorization checking.
G
GDG. See generation data group.
general resource. Any resource, other than an MVS
data set, that is defined in the class descriptor table
RACF Glossary
755
Glossary
in-storage profiles created by SETROPTS RACLIST are
shared. Contrast with locally RACLISTed profiles.
group. A collection of RACF-defined users who can
share access authorities for protected resources.
group-ADSP attribute. A group-related user attribute
similar to the ADSP attribute for a user, but assigned by
using the CONNECT command to restrict its effect to
those cases where the user creates data sets with that
group as the high level qualifier of the data set name (or
as determined by the naming convention table or exit).
group-AUDITOR attribute. A group-related user
attribute similar to the AUDITOR attribute for a user, but
assigned by using the CONNECT command to restrict
the users authority to resources that are within the
scope of the group. Contrast with AUDITOR attribute.
group authority. An authority specifying which
functions a user can perform in a group. The group
authorities are USE, CREATE, CONNECT, and JOIN.
group data set. A RACF-protected data set in which
either the high-level qualifier of the data set name or the
qualifier supplied by an installation-naming convention
table or exit routine is a RACF group name.
group-GRPACC attribute. A group-related user
attribute similar to the GRPACC attribute for a user, but
assigned by using the CONNECT command to restrict
its effect to the specific group. Contrast with GRPACC
attribute.
group ID. Obsolete term for group name.
group identifier (GID). A number between 0 and
2 147 483 647 that identifies a group of users to z/OS
UNIX. The GID is associated with a RACF group name
when it is specified in the OMVS segment of the group
profile. See real GID. Contrast with effective group
identifier (effective GID).
group name. A string of 18 characters that identifies
a group to RACF. The first character must be A through
Z, # (X'7B'), $ (X'5B'), or @ (X'7C'). The rest can be A
through Z, #, $, @, or 0 through 9.
group-OPERATIONS attribute. (1) A group-related
user attribute similar to the OPERATIONS attribute for a
user, but assigned by using the CONNECT command to
restrict its effect to those resources that are within the
scope of the group. (2) If a person needs to perform
maintenance activities on DASD volumes, it is more
efficient (for RACF processing) and better (for limiting
the resources the person can access) to give the
person authority to those volumes using the PERMIT
command than to assign the person the OPERATIONS
or group-OPERATIONS attribute. Contrast with
DASDVOL authority and OPERATIONS attribute.
H
HFS. See hierarchical file system.
hierarchical file system (HFS). The file system for
z/OS UNIX that organizes data in a tree-like structure of
directories.
I
ICB. See inventory control block.
ICL. See Issued certificate list (ICL).
ICHRIN03. See started procedures table.
inheritance. The act of automatically associating an
ACL with a newly created object without requiring
administrative action.
issued certificate list (ICL). PKI Services database
containing the history of issued certificates.
756
Glossary
interprocess communication facilities (IPC). IPC
facilities are services that allow different processes to
communicate. Message passing (using message
queues), semaphore sets, and shared memory services
are forms of interprocess communication facilities.
inventory control block (ICB). The first block in a
RACF database. The ICB contains a general description
of the database and, for the master primary data set,
holds the RACF global options specified by
SETROPTS.
IPC. See interprocess communication facilities.
|
|
|
|
K
kernel. The part of z/OS UNIX that provides support
for such services as UNIX I/O, process management,
and general UNIX functionality.
kernel address space. The address space in which
the z/OS UNIX kernel runs. See kernel.
key. In cryptography, a sequence of symbols that is
used with a cryptographic algorithm for encrypting or
decrypting data. See private key and public key.
key ring. A named collection of certificates for a
specific user or server application used to determine the
trustworthiness of a client or peer entity.
L
label. A usable handle for a certificate.
LDAP. See lightweight directory access protocol.
lightweight access directory protocol (LDAP).
Similar to directory access protocol (DAP), but simpler
to use and has a programming interface; LDAP is
composed of entries identified by their distinguished
names.
link pack area (LPA). An area of virtual storage
containing reenterable routines from system libraries
that are loaded at IPL time and can be used
concurrently by all tasks in the system. The LPA
presence in main storage saves loading time.
LIST request. The issuing of the RACROUTE macro
with REQUEST=LIST specified. A LIST request builds
in-storage profiles for a RACF general resource class.
The LIST request replaces the RACLIST function.
M
MAC. See mandatory access control.
main system. The system on a multisystem RRSF
node that is designated to receive most of the RRSF
communications sent to the node.
RACF Glossary
757
Glossary
managed user ID association. A user ID association
in which one of the associated user IDs is a managing
user ID, and the other is a managed user ID. The
managing user ID can run allowed RACF commands
under the authority of the managed user ID. The
managed user ID cannot run commands under the
authority of the managing user ID. A managed user ID
association does not allow password synchronization
between the associated user IDs. Contrast with peer
user ID association.
mandatory access control (MAC). A means of
restricting access to objects on the basis of the
sensitivity (as represented by a label) of the information
contained in the objects and the formal authorization
(clearance) of subjects to access information of such
sensitivity.
mask. A technique to provide protection against casual
viewing of a password that has been defined or altered,
when an encryption function is not available.
master primary data set. The first data set activated
in the primary RACF database.
MCS. See multiple console support.
MCS console. A non-SNA device defined to MVS that
is locally attached to an MVS system and is used to
enter commands and receive messages.
member. A user belonging to a group.
member profile. A profile that defines a member and
security level for that member.
member system. Any one of the MVS system images
in a multisystem RRSF node.
model ACL. See default ACL.
modeling. See profile modeling.
multilevel security. A security policy that allows the
classification of data and users based on a system of
hierarchical security levels (for example: unclassified,
secret, top secret) combined with a system of
non-hierarchical security categories (for example:
Project A, Project B, Project C). The system imposes
mandatory access controls restricting which users can
access data based on a comparison of the classification
of the users and the data.
multiple console support (MCS). The operator
interface in an MVS system.
multiple-subsystem scope. A RACF classification
model used in conjunction with the RACF external
security module to construct DB2 resource names.
Default for the highest-level qualifier is the DB2
subsystem or group name.
multisystem node. See multisystem RRSF node.
758
N
NCSC. National Computer Security Center. The part of
the U.S. Department of Defense that determines
defense and security criteria.
network-qualified name. An identifier for a partner LU
in the form netid.luname, where netid is a 18 character
network identifier and luname is a 18 character LU
name.
node. See RRSF node.
nonautomatic profile. A tape volume profile that
RACF creates when an RDEFINE command is issued
or when tape data set protection is not active. A tape
volume profile created in this manner is called a
nonautomatic profile because RACF never deletes the
profile except in response to the RDELETE command.
Contrast with automatic profile.
non-data sharing mode. One of two normal modes of
operation when RACF is enabled for sysplex
communication and is the mode in which RACF
communicates information using sysplex facilities to
other instances of RACF, but does not make use of the
coupling facility in doing so.
O
OpenExtensions VM. A feature of VM systems that
provides a set of UNIX-based programming interfaces,
such as shells and utilities, in support of selected
POSIX and X/OPEN portability guide (XPG) standards.
OPERATIONS attribute. A user attribute that grants
the equivalent of ALTER access to all data sets unless
the user or one of the users connect groups appears
explicitly in the access list of a data sets profile. If a
user needs to perform maintenance activities on DASD
volumes, granting DASDVOL authority to those volumes
using the PERMIT command is preferred over assigning
the OPERATIONS or group-OPERATIONS attribute.
Note that most modern DASD maintenance programs
Glossary
do not require the OPERATIONS attribute. Contrast with
DASDVOL authority and group-OPERATIONS attribute.
P
PADS. See program access to data sets (PADS).
partner logical unit (partner LU). A logical unit that
typically resides on a remote system. Often
synonymous with remote logical unit (remote LU).
Contrast with local logical unit (local LU), which resides
on the local system. When both the local and partner
LUs reside on the same system, the LU through which
communication is initiated is the local LU, and the LU
through which communication is received is the partner
LU.
partner transaction program (partner TP). A
transaction program that resides on a remote system.
Contrast with local transaction program (local TP),
which typically resides on the local system.
PassTicket. An alternative to the RACF password that
permits workstations and client machines to
communicate with the host. It allows a user to gain
|
|
|
|
|
|
RACF Glossary
759
Glossary
POSIX. (Portable Operating System Interface For
Computer Environments) An IEEE standard for
computer operating systems.
760
R
RACDEF request. The DEFINE function replaces the
RACDEF function. See DEFINE request.
RACF. See Resource Access Control Facility.
|
|
|
|
|
|
|
|
|
|
Glossary
without RACF, a user cannot access a RACF-indicated
data set until the indicator is turned off. For VSAM data
sets, the indicator is in the catalog entry. For non-VSAM
data sets, the indicator is in the data set control block
(DSCB). For data sets on tape, the indicator is in the
RACF tape volume profile of the volume that contains
the data set.
RACF manager. The routines within RACF that
provide access to the RACF database. Contrast with
RACF storage manager.
RACF Glossary
761
Glossary
RACF is included in the Security Server and is also
available as a separate program for the MVS and VM
environments.
S
SAF. See System Authorization Facility.
secured signon. A RACF function providing an
alternative to the RACF password and also providing
enhanced security across a network.
security. See data security.
security category. A non-hierarchical grouping of
sensitive information used to control access to data.
security classification. The use of security
categories, a security level, or both, to impose additional
access controls on sensitive resources. An alternative
way to provide security classifications is to use security
labels.
security label. An installation-defined name that
corresponds to a specific RACF security level with a set
of zero or more security categories. This is equivalent to
the NCSC term sensitivity label.
security level. An installation-defined name that
corresponds to a numerical security level; the higher the
number, the higher the security level.
Security Server. A licensed feature of z/OS that is
comprised of Resource Access Control Facility (RACF),
DCE Security Server, z/OS LDAP Server, z/OS Firewall
Technologies, Open Cryptographic Enhanced Plug-Ins
(OCEP), and Network Authentication Service.
security token. A collection of identifying and security
information that represents data to be accessed, a user,
or a job. This contains a user ID, group name, security
label, node of origin, and other information.
segment. A portion of a profile. The format of each
segment is defined by a template.
SETROPTS RACLISTed profiles. See globally
RACLISTed profiles.
SFS. See Shared File System.
762
Glossary
shared file system (SFS). On VM/ESA, a part of CMS
that lets users organize their files into groups known as
directories and selectively share those files and
directories with other users.
|
|
|
|
|
RACF Glossary
763
Glossary
supervisor. The part of a control program that
coordinates the use of resources and maintains the flow
of processing unit operations. Synonym for supervisory
routine.
supervisor state. A state during which a processing
unit can execute input/output and other privileged
instructions. Contrast with problem state.
supervisory routine. A routine, usually part of an
operating system, that controls the execution of other
routines and regulates the flow of work in a data
processing system. Synonymous with supervisor.
|
|
|
|
764
T
tape volume set. The collection of tape volumes on
which a multivolume data set resides. A volume set is
represented in one RACF profile.
tape volume table of contents (TVTOC). Information
about a tape data set that RACF stores in the tape
volume profile for the volume on which the data set
resides. The TVTOC includes the data set name, data
set sequence number, creation date, and an indicator
as to whether a discrete tape data set profile exists.
target node. An RRSF node that a given RRSF node
is logically connected to, as a result of a TARGET
command. See local node and remote node.
target user ID. The target half of a source user ID and
target user ID pair that has an established user ID
association between them. For command direction, the
target user ID is the user ID specified on the AT or
ONLYAT keyword, and is the user ID under whose
authority the command is run on the specified node. For
password synchronization, the target user ID is the user
ID whose password RACF automatically updates when
the password for the source user ID is changed.
Contrast with source user ID.
task. A basic unit of work to be performed or a
process and the procedures that run the process.
template. Contains mappings of the profiles on the
RACF database.
TOKENBLD request. The issuing of the RACROUTE
macro with REQUEST=TOKENBLD specified. A
TOKENBLD request builds a UTOKEN.
TOKENMAP request. The issuing of the RACROUTE
macro with REQUEST=TOKENMAP specified. A
TOKENMAP request maps a token in either internal or
external format, allowing a caller to access individual
fields within the UTOKEN.
TOKENXTR request. The issuing of the RACROUTE
macro with REQUEST=TOKENXTR specified. A
TOKENXTR request extracts a UTOKEN from the
current address space, task or a caller-specified ACEE.
TP. See transaction program.
tranquility. Keeping the security classification of a
resource constant while it is in use; keeping the security
classification of a user constant while active.
transaction program (TP). A program that processes
transactions in an SNA network.
TVTOC. See tape volume table of contents.
Glossary
U
UACC. See universal access authority.
UADS. See user attribute data set.
universal access authority (UACC). The default
access authority that applies to a resource if the user or
group is not specifically permitted access to the
resource, unless the user is restricted. The universal
access authority can be any of the access authorities.
universal group. A user group defined using the
UNIVERSAL operand of the ADDGROUP command.
Universal groups are expected to have a large number
of members and are unlikely to be deleted. Group
profiles for universal groups do not contain complete
membership information, and the LISTGRP command is
not recommended to list members. Using the output of
the database unload utility (IRRDBU00) is the best way
to list members of a universal group.
user. A person who requires the services of a
computing system.
user attribute. The extraordinary privileges,
restrictions, and processing environments assigned to a
user. The user attributes are SPECIAL, AUDITOR,
CLAUTH, OPERATIONS, GRPACC, ADSP, and
REVOKE.
user attribute data set (UADS). In TSO, a partitioned
data set with a member for each authorized user. Each
member contains the appropriate passwords, user
identifications, account numbers, LOGON procedure
names, and user characteristics that define the user.
user certificate. A type of certificate managed by
RACF. See digital certificate.
user data set. A data set defined to RACF in which
either the high-level qualifier of the data set name or the
qualifier supplied by an installation exit routine is a
RACF user ID.
user ID. A RACF user ID. A string of 18 alphanumeric
characters that uniquely identifies a RACF user,
procedure, or batch job to the system. For TSO users,
the user ID cannot exceed 7 characters and must begin
with an alphabetic, #, $, or @ character. The user ID is
defined by a user profile in the RACF database and is
used as the name of the profile.
V
verification. See user identification and verification.
VERIFY request. The issuing of the RACROUTE
macro with REQUEST=VERIFY specified. A VERIFY
request is used to verify the authority of a user to enter
work into the system. The VERIFY request replaces the
RACINIT function.
VERIFYX request. The issuing of the RACROUTE
macro with REQUEST=VERIFYX specified. A VERIFYX
request verifies a user and builds a UTOKEN, and
handles the propagation of submitter ID.
765
Glossary
W
workspace data sets. VSAM data sets used by RACF
for queuing requests sent to and received from target
nodes in an RRSF environment.
write-down mode. The setting of an address space at
which it can create output data at a lower security label
than the current security label of the address space on
a system where write-down is normally disallowed
because the RACF MLS(FAILURES) option is in effect.
write-down privilege. The ability of users to set their
address spaces to write-down mode in which they are
able to write data to an object with a lower security label
than the users current security label on a system where
write-down is normally disallowed because the RACF
MLS(FAILURES) option is in effect.
X
X.500. ITU/ISO 9594 standard for an open system
directory information tree; includes protocols for access
and security.
Z
z/OS. A program licensed by IBM that not only
includes and integrates functions previously provided by
many IBM software products, including the MVS
operating system, but also:
1. Is an open, secure operating system for IBM
enterprise servers
2. Complies with industry standards
3. Is based on the new 64-bit z/Architecture
4. Supports technology advances in networking server
capability, parallel processing, and object-oriented
programming
z/OS UNIX group identifier (GID). See group
identifier (GID).
z/OS UNIX System Services (z/OS UNIX). The set of
functions provided by the shells, utilities, kernel, file
system, debugger, Language Environment, and other
elements of the z/OS operating system that allows
users to write and run application programs that
conform to UNIX standards.
z/OS UNIX user identifier (UID). See user identifier
(UID).
766
Index
Special characters
_POSIX_CHOWN_RESTRICTED constant 547
??????? UACC 564
???????? user ID 498
$SUBMIT.userid profile (FACILITY class)
migrating to SURROGAT profiles 472
* (asterisk)
generic character in profile names
specifying 156, 200
on the ID operand of the PERMIT command
authorization checking 723, 724
contrasted with UACC 9, 163, 346
specifying 9, 163
** (double asterisk)
generic character in profile names
specifying 156, 200
suggested replacement for %* in general resource
profile names 201
**SYSUT data set
reserved name 157
**SYSUT high-level qualifier
protect-all 120
% (percent sign)
generic character in profile names
specifying 156, 200
%*
in general resource profile names 201
&;
generic character in general resource profile names
specifying 200
&&TEMP data set
reserved name 157
&CHAROPT 423
&CLASSMNT 423
&CLASSOPT 423
&RACGPID
comparison with GRPACC attribute 211
global access checking 209
&RACLNDE
and PROPCNTL profiles 473
creating 480
recommended for JESJOBS profiles 479
recommended for NODES profiles 484
&RACLNDE profile
checked when JES2 reloads offloaded data 507
creating 499
description 228, 499
&RACLNDE variable
recommended for JESSPOOL profiles 502
&RACUID
field-level access checking 214
global access checking 209
using with USER.OMVS profiles 68
&SUSER value
on ADDMEM operand in NODES class
check of submitting user ID and node 493
description 475
Copyright IBM Corp. 1994, 2005
Numerics
3480 tape drives with IDRC feature
and IEC.TAPERING profile in FACILITY class
3490 tape drives
and IEC.TAPERING profile in FACILITY class
4-digit device
using 254
188
188
A
ACBs
controlling who can open 274
access
to DB2 objects
controlling 420
access attempts
logging 4
access authority
description 8
for applications 735
for consoles 240
for DASD data sets 169
for tape volume profiles 179
granting or denying for general resource class 204
required by IBM support personnel 347
required for terminals 732
responsibility for assigning 3
summary of authorities and commands 657
TSO resources 526
using started procedures 143
access control lists (ACLs)
for z/OS UNIX data 549
access list
assigning access authorities for consoles 240
assigning access authorities for DASD data
sets 169
authority of a user not in for data set 162
authority of a user not in for general resource 204
conditional
data set profiles 162
general resource profiles 205
controlling access to data sets on tape volume 180
creating for DFP field-level access checking 523
creating for field-level access checking 214
creating for IMS physical terminals 463
example of command to create entry for tape
volume 181
767
768
administrative authorities
DB2 427
DSNADM class 428
administrative control
allowed by RACF 9
administrative group
defining 50
ADMINISTRATOR option
DFDSS commands 174
ADSP (automatic data set protection) attribute
bypassing system-wide 122
description of 18, 78
limitation on assigning 84
planning for the use of 38
to protect data set with discrete profile 155
when protecting tape data sets 178
when RACF is deactivated 531
advanced program-to-program communication
See APPC
AGN (application group name)
defining for IMS 464
AIMS class
description 643
use 458
ALCSAUTH class
description 639
algorithm, masking
secured signon application key 245
algorithms, Network Authentication Service key
encryption 606
aliases
DB2
special considerations 434
ALLOCATE command (TSO)
to protect data set with discrete profile 155
using the PROTECT operand on 168
using the SECMODEL operand on 168
allocation of devices
controlling with DEVICES profiles 253
ALTER access authority
as related to RACF commands 657
for general resources 205
for RACF-protected tape volume labels 191
to a tape volume 187
ALTER INDEX privilege 432
ALTUSER command
description 62
NOPASSWORD option 87
RESTRICTED option 88
APPC (advanced program-to-program
communication) 276
protecting with RACF 276
APPC application
defining PTKTDATA profiles 243
APPC transaction program
protecting with APPCTP profiles 277
WORKATTR segments 71
APPCLU class
activating for VTAM LU 6.2 bind 232
conversation security options 278
defining for VTAM LU 6.2 bind 231
278
associations (continued)
user ID (continued)
defining for other users 394
defining for your user ID 394
deleting 395
listing 395
managed 394
AT operand
controlling use of 268
AT option 396
attribute
ADSP (automatic data set protection)
bypassing system-wide 122
description of 18, 78
limitation on assigning 84
assigning user or group 16
AUDITOR
description of 18, 74
listing users with 85
suggestions for assigning 84
checking users group-related 112
CLAUTH (class authority)
description of 18, 77
definition of user and group 7
group-AUDITOR
description of 18, 75
scope of authority 80
group-OPERATIONS
compared to DASDVOL authority 76
compared to DFDSS authorization 77, 174
description of 18, 76
scope of authority 80
group-SPECIAL
description of 17, 74
illustration of scope of authority 83
scope of authority 80
GRPACC (group access)
description of 18, 78
OPERATIONS
compared to DASDVOL authority 76
compared to DFDSS authorization 77, 174
description of 18, 75
listing users with 85
suggestions for assigning 84
RESTRICTED 18
description of 79
REVOKE
description of 78
listing users with 85
scope of control of group-level 16
SPECIAL
description of 17, 74
listing users with 85
suggestions for assigning 84
summary 653
UNIVERSAL, for groups 54
user 73
assigning at the group level 79
verifying
with DSMON reports 85
Index
769
AUDIT operand
using for general resource profiles 197
audit record
debugging your security arrangements 716, 718
audit trail
establishing capabilities for IMS 459
auditing
message traffic 276
messages sent with TSO SEND, LISTBC, or
TPUT 276
unknown operator command 265
auditing information
authority to display 74
auditor
defining
example 338
duties of 12
responsibilities during implementation planning 36
AUDITOR attribute
as related to RACF commands 654
description of 18, 74
listing users with 85
suggestions for assigning 84
authentication
of passwords
exit routines for 25
authentication, user ID
brief description 740
authority
checking after restarting a job 345
DASDVOL
compared to DFDSS authorization 174
DASDVOL and DFDSS authorization 174
definition of group 7
delegation to group authority 58
EXECUTE
restriction on dumps 252
limits at the group level 80
of auditor 74
of CLAUTH (class authority) user 77
of OPERATIONS user 75
of profile owner to access data set 155
of started procedure to access resources 143
of user with group-level attribute 79
of users and groups to use terminals 237
OPERATIONS and DASDVOL 76
OPERATIONS and DFDSS authorization 77, 174
required to access terminals 732
required to create a data set 153
required to issue RACF commands 649
required to open a nonlabeled tape 191
required to perform catalog operations on a protected
VSAM catalog 172
required to refresh global access checking lists 132
required to refresh in-storage lists 131
required to run DSMON program 74
requirements for tape labels 191
requirements for TAPEVOL and TAPEDSN
options 187
scope of for user with group-level attributes 80
structure at group level 82
770
authority (continued)
summary 649
summary of authorities and commands 653
to access a general resource 204
to access applications 735
to access consoles 240
to access DASD data sets 169
to access data set when not in access list 162
to access protected tape data sets 175
to access protected tape volumes 176
to access tape volume profiles 179
to assign or revoke the ADSP attribute 79
to assign the GRPACC attribute 78
to assign the RESTRICTED attribute 79
to create profiles 22
to modify generic profiles 161
to modify or delete profiles 22
to revoke a user from system 78
to work with profiles through attributes at group
level 80
to write to a tape data set or tape volume 185
when owning a RACF group 57
when owning a user profile 73
authority checking
by RACF external security module 422
DB2
for all packages in a collection 434
authority for TSO user
protecting 526
authorization
DB2, native
deferring to 437
authorization checking
bypassing for general resource classes 115
CICS transactions 735
description 3
for a tape data set 179
for access to protected consoles 733
for access to protected IP addresses 733
for access to protected JES input devices 733
for access to protected terminals 732
for DB2 resources 677
for fields in a RACF profile 213, 529
for multivolume tape data sets 189
for protected SMS classes 520
for RACF-protected resources 719
for security labels 736
for TSO resources 529
IMS transactions 735
RACF external security module 437
FASTAUTH return code translation 438
reason codes 438
return codes 438
repeating when restarting a job 345
SAF router exits 720
specifying for general resource classes 115
using exits to performing additional 25
authorization processing
RACF external security module
examples 439
B
backup RACF database 349
base name profile
access list in GDG 167
base segment
group profile 52
user profile 63
BASIC attribute for programs
defining 323
overview 321
BASIC program security mode
maintaining a clean environment 309
migrating to ENHANCED mode 311
more complex controls 310
program control by SMFID 308
program control for SERVAUTH 319
simple program protection 306
using execute control 310
using program access to data sets (PADS) 314
batch job
authority to access a data set 162
defining PTKTDATA profiles 243
preventing security exposures for 346
preventing unauthorized users from running 470
user identification with USER operand 347
batch message processing region for IMS 465
batch monitor
running jobs under execution batch monitor 470
batch user
assigning user ID to 41
BCICSPCT class
description 642
benefits of using RACF groups 55
bind profile, LDAP 623
bind, password on
RACF support for 231
BLKUPD command
overview 27
block update command 27
BLP
See bypass label processing (BLP)
BPX.DEFAULT.USER profile 541
BPXPRMxx
setting user limits 536
BTAM terminal
defining name for 235
bypass label processing (BLP)
authorizing with FACILITY profile 190
bypass password protection
DSMON report 342
use by callers of RACF 345
bypassing
ADSP attribute 122
authorization checking for general resource
classes 115
password protection 21
password protection of tape data sets 175
password protection of tape volumes 176
protection of data sets when DASDVOL class is
active 173
RACF protection of a system data set during system
access 172
write-enable protection for tapes 188
bypassing PassTicket replay protection 248
C
CACHECLS class
description 639
callable services, authorizing applications that
invoke 611
CANCEL command (TSO)
controlling job cancellation 480
cancelling jobs
controlling 480
capturing output
of RACF TSO commands 397
produced by password synchronization 392
capturing the output of RACF commands 29
catalog
assigning access authority to 171
master catalog
global access checking table entries 211
protecting 172
protecting with FACILITY profiles 172
user catalog
global access checking table entries 211
CATDSNS operand
SETROPTS command 120
categories
maintaining in an RRSF environment 98
CBIND class
description 639
CCA (common cryptographic architecture) 246
Index
771
CCICSCMD class
description 642
CDT class
description 639
CDTINFO segment
user profile
FIELD profile names 215
certificate authorities 556
certificate name filters 569
checking process 465
CHOWN.UNRESTRICTED profile 547
CICS
brief description and cross-reference 279
general resource classes 642
using with RACF 279
CICS application
defining a PTKTDATA profile 243
CICS segment
description 19
field-level access checking 213
user profile
contents of 65
FIELD profile names 215
CICS signon table
deleting user entry 92
CICS transaction
authorization checking 735
CIMS class
description 643
use 458
class
defining
overview 21
class authority attribute
See CLAUTH attribute
class descriptor table
See CDT
class descriptor table (CDT)
adding installation-defined classes
details 286
overview 21
obtaining security report 342
supplied classes for z/OS and OS/390 systems 639
supplied classes for z/VM and VM systems 646
class descriptor table report
from DSMON 342
class name
list of supplied general resource classes 639, 646
class names
for DB2 objects 423
CLASSACT operand
SETROPTS command 115
CLASSACT(*) operand
SETROPTS command
recommendations 109, 115
classes
DCE
DCEUUIDS 449
KEYSMSTR 284
DCEUUIDS 449
activating 449
772
classes (continued)
DCEUUIDS (continued)
defining 449
DSNADM
and DB2 administrative authorities 428
installation-defined
DB2 430
KEYSMSTR
activating 286
defining 285
RRSFDATA
controlling access to RACLINK command 267
controlling access to RRSF functions 266
controlling automatic direction 269
controlling password synchronization 267
controlling use of AT operand 268
controlling use of RACLINK DEFINE
operand 267
controlling use of RACLINK PWSYNC
operand 267
STARTED 144
and STDATA segment 145
setting up 144
STARTED profile names 145
UNIXMAP
profiles for 545
z/OS UNIX considerations 543
z/OS UNIX event auditing
DIRACC 115
DIRSRCH 115
FSOBJ 115
FSSEC 115
IPCOBJ 115
PROCACT 115
PROCESS 115
classifying
data 95
users 95
classroom courses, RACF xxiv
CLAUTH (class authority) attribute
as related to RACF commands 655
assigning for TAPEVOL class 178
delegating 77
description of 18, 77
example for JESSPOOL class 503
FACILITY class 219
with JOIN group authority 58
clean environment 309
client/server environment
secured signon 240
CLIST
creating user IDs with 73
command authorization
in an MCS sysplex 261
command direction 395
AT option 396
on local node 396
on remote node 397
ONLYAT option 399
commands
AT operand
controlling use of 268
automatic direction 399
controlling automatic direction of 269
ONLYAT operand
controlling use of 268
output capturing 397
RACDCERT
controlling access to 559
RACLINK 392
controlling access to 267
controlling use of DEFINE operand 267
controlling use of PWSYNC operand 267
START 145
summary 649
common cryptographic architecture
See CCA
communications device
controlling allocation with DEVICES profiles 253
COMPATMODE operand
SETROPTS command 137
conditional access
CONSOLE class 162, 205
OPERCMDS class 206, 266
conditional access list
data set profiles 162
during authorization checking 723, 724
general resource profiles 205
CONNECT command
using to specify attributes at the group level 79
connect group
specifying on TSO LOGON command 531
using current connect group checking 113
CONNECT group authority
as related to RACF commands 656
description 58
connect profile
contents summary 666
console
access authorities for 240
conditional access 162, 205
creating a RACF user profile for 265
protecting 239
protecting with SECLABEL profiles 240
RACF authorization checking for 733
CONSOLE class
activating 240
and SECLABEL class 240
authorization checking 734
conditional access 162, 205
description 639
LOGON 507
protecting MCS consoles 239
SETROPTS RACLIST processing 240
UACC authorities 240
CONSOLE command (TSO)
and OPERPARM segment 68
console, extended MCS
OPERPARM segment in user profiles 68
773
D
DAC
See discretionary access control
DADSM scratch function
DASDVOL authority 173
DASD data set
access authorities for 169
activating or deactivating erase-on-scratch
processing 125
DFP-managed
preventing access to 120
erasing of scratched 171
multivolume considerations 168
protecting 20, 150, 169
protecting with discrete profile 155
protecting with discrete profile through ADSP
attribute 78
protecting with the PROTECT operand on TSO
ALLOCATE command 168
protecting with the SECMODEL parameter on TSO
ALLOCATE command 168
scratching when protected with discrete profile 156
DASD volume
authority 173
DASDVOL and DFDSS authorization 174
OPERATIONS and DASDVOL authority 76
OPERATIONS and DFDSS authorization 77, 174
RACF authorization checking for 720
requirements for RACF databases 348
DASDVOL class
alternatives
DFDSS authorization 174
bypassing protection of individual data sets 173
compared to OPERATIONS attribute 76, 174
description 639
OPERATIONS attribute allows access 75
recording statistics for 118
relation to GDASDVOL class 222
data
classifying 95
data blocks
number of resident 350
data control group
defining 51
774
DB2 (continued)
authorization
RACF support for 421
AUTOBIND requests 435
creating a DB2 table space for IRRDBU00
output 363
creating DB2 tables for IRRDBU00 output 364
creating optimization statistics for the DB2
database 366
creating the DB2 indexes for IRRDBU00 output DB2
performance 364
data
converting to RACF profiles 445
data sharing 430
database for IRRDBU00 output 363
DB2 utility statements required to delete the group
records 366
deferring to
example of 442
deleting the IRRDBU00 data from the DB2
database 366
denying access to object
example of 441
general resource classes 642
GRANT ALL 434
installation-defined classes 430
loading the DB2 tables for IRRDBU00 output 365
native authorization
deferring to 437
object names 426
objects
class names 423
controlling access to 420
names with blank characters 434
names with special characters 434
protecting 420, 423
providing security for 420
types 425
parameter lists
EXPL 421
XAPL 421
parameters
XAPLDIAG 433
privilege names 427
privileges 432
ALTER INDEX 432
any schema 433
any table 433
CREATE VIEW 432
CREATETMTAB 432
DROP INDEX 432
of ownership, implicit 431
REFERENCES 433
UPDATE 433
PUBLIC* user ID
special considerations 431
reorganizing the unloaded RACF data in the DB2
database 366
resource names 426, 429
resources
authorization checking 677
Index
775
DB2 (continued)
resources (continued)
local 434
remote 434
SQL utility statements
creating indexes for IRRDBU00 output 365
for creating a table for IRRDBU00 output 364
SQL utility statements defining a table space for
IRRDBU00 output 363
table columns
REFERENCE authorization 433
UPDATE authorization 433
table names provided in SYS1.SAMPLIB 366
using with IRRDBU00 output 363
using with RACF 279
utility statements required to load the tables with
IRRDBU00 output 365
WITH GRANT option 434
DB2 load utility
sample statements for IRRDBU00 output 362
DB2 queries
sample statements for IRRDBU00 output 362
DBSYNC EXEC 417
DCE
administering 449
cross linking 447
DCEUUIDS class 449
general resource classes 643
interoperation with RACF 447
KEYSMSTR class 284
RACF support for 447
single signon support 450
DCE segment
field-level access checking 213
user profile
contents of 65
FIELD profile names 215
DCICSDCT class
description 642
DD statements (JCL)
parameters related to RACF 344
ddname
for IRRDBU00 input data sets 354
deactivating
SETROPTS GENLIST processing 127
SETROPTS RACLIST processing 129
unused user ID 111
deadlocks
avoiding 252
debugging
problems with profile definitions 715
default group
assigning a user to 7
connecting a user to 79
default NJE user ID
ownership of SYSOUT based on NODES
profiles 491
specifying with SETROPTS command 498
default user IDs
concepts 497
description 497
776
DEFER mode
logging access attempts when operating in 5
DEFINE operands
RACLINK command
controlling use of 267
defining
general resources
summary of steps 196
groups 15
groups and users 50
IMS as a RACF user 456
IMS transactions 462
profiles for field-level access checking of DFP
segment 521
RACF group
summary of steps 59
resources with CLAUTH authority 77
rules for defining data set profiles 151
tape volume without a TVTOC 180
tape volumes to RACF 176
tape volumes with a TVTOC 178
user IDs 72
users 15
summary of steps 89
users to RACF using ICF 90
delegating
administration 93
helpdesk functions 219
ownership of FACILITY profiles 219
deleting
groups
summary of steps 60
DELMEM operand
RALTER command
for global access checking table 210
dependent region
as user of IMS control regions 465
controlling access to IMS control region
resources 463
initializing 465
DES (data encryption standard) algorithm
encrypting session keys 232
replacing 142
DES, DESD, DES3 encryption, Network Authentication
Service keys 606
Device Support Facilities (ICKDSF)
DASDVOL authority 174
DEVICES class
activating 255, 512
controlling access to printers 511
controlling device allocation 253
defining profiles 512
description 639
example 255
SETROPTS RACLIST processing 255
UACC authorities 255, 511
DFDSS (Data Facility Data Set Services)
and OPERATIONS attribute 75
authorized storage administration 77, 174
authorizing with FACILITY profiles 174
compared to OPERATIONS attribute 77, 174
Index
777
displaying
auditing information 74
information from RACF profiles 29
user IDs or group names in RACF database 26
DLF (data lookaside facility)
controlling access to DLF objects 256
DLF installation exit 257
DLF object
protecting with DLFCLASS profiles 181, 256
DLFCLASS class
activating 258
defining profiles 257
description 640
DLFDATA segment 256
example 258
FIELD profile names 216
granting access to profiles 258
protecting DLF objects 256
SETROPTS RACLIST processing 258
UACC authorities 257
DLFDATA segment
DLFCLASS profile
contents 256
FIELD profile names 216
field-level access checking 213
documents, licensed xxv
DPAGELBL parameter
on OUTPUT statement in JCL 345
DROP INDEX privilege 432
DSMON (data security monitor)
AUDITOR attribute 74
authorized caller table report 342
class descriptor table report 342
global access checking table report 343
group tree report 80, 342
list of reports produced 341
program properties table (PPT) report 342
protecting with PROGRAM profiles 28, 74
RACF exits report 342
selected data sets report 343
selected user attribute report 343
selected user attribute summary report 343
started procedures table report 343
system report 341
using 28, 341
verifying
user attributes 85
DSNADM class
and DB2 administrative authorities 428
description 642
DSNAME parameter
on DD statement in JCL 344
DSNDEXPL 421
DSNDXAPL 421
DSNR class
description 642
dumped jobs
protecting 507
dumps
non-RACF methods for controlling access to
program 253
778
dumps (continued)
protecting with data set profiles 251
protecting with FACILITY profiles 251
restriction on
with EXECUTE authority 252
dynamic started procedures table 144
and STARTED class 144
E
EARLYVERIFY operand
SETROPTS command 471
ECICSDCT class
description 642
EDIT command (TSO)
using 347
EGN operand
SETROPTS command 109
EIM (enterprise identity mapping) 621
EJBROLE class
description 643
elapsed time checking
IMS 463
encoding
definition of 142
encrypting
APPCLU session key 232
secured signon application key 246
encryption, Network Authentication Service keys 606
end-user function 616
enhanced generic naming
DATASET class
activating or deactivating 121
when installing RACF for the first time 109
ENHANCED program security mode
maintaining a clean environment 309
migrating from BASIC mode 311
overview 320
program control by SMFID 308
program control for SERVAUTH 319
simple program protection 306
using execute control 321
using program access to data sets (PADS) 320
ENHANCED-WARNING program security mode 311
enterprise identity mapping (EIM) 621
Enterprise Java Beans
general resource classes 643
enveloping, passwords 627
erase-on-scratch processing
activating or deactivating system-wide 125
controlling 171
errors
secured signon function
preventing 249
event notification for LDAP user changes 624
events
z/OS UNIX auditing 115
EXECs
DBSYNC 417
EXECUTE authority
restriction on dumps 252
execute-controlled library
example of setting up 331
in ENHANCED program security mode 321
processing 327
execution batch monitor
running jobs under 470
exit routine
list of all defined 342
REQUEST=LIST exit
resource group profiles 224
using to tailor RACF 24
exit routines
password authentication 25
exits
DB2 access control authorization 421
EXPDT operand of JCL statement
to specify security retention period for data set
EXPL 421
EXPORT
accesses required 617
extended MCS console
OPERPARM segment in user profiles 68
extending a private key 583
external writer
access to JESSPOOL profiles 501
access to spool data sets 501
F
FACILITY class
activating (first profile) 218
activating (LLA-managed data sets) 256
activating (NJE node) 510
activating (operator commands) 513
activating (program dumps) 252
activating (RJE workstation) 510
activating (vector facility) 250
authorizing DFDSS administration 174
bypass label processing for tapes 190
CLAUTH attribute 219
delegating profile ownership 219
description 640, 646
ICHBLP profile 190
ICHUNCAT.dataset-name 725
ICHUNCAT.dataset-name profile 121
ICHUSERCAT profile 121
IEAABD.DMPAKEY profile 251
IEAABD.DMPAUTH profile 251
IEAVECTOR profile 250
IEC.TAPERING profile 188
IRR.DIGTCERT 62, 559
IRR.LISTUSER 219
IRR.PASSWORD.RESET 220
planning profiles 218
protecting catalogs 172
protecting LLA-managed data sets 255
protecting NJE nodes 509
protecting program dumps 251
protecting RJE workstations 509
protecting vector facilities 250
SETROPTS RACLIST processing 218, 252
186
779
G
GCICSTRN class
description 642
description as resource group class 222
GCPSMOBJ class
description 642
GCSFKEYS class
description 640
description as resource group class 222
protecting ICSF keys 279
SETROPTS RACLIST processing 279
GDASDVOL class
description 640
description as resource group class 222
OPERATIONS attribute allows access 75
GDG (generation data group)
defining generic resource profile
with enhanced generic naming active 166
protecting GDG data sets 166
security retention period processing for 186
GDSNBP class
description 642
GDSNCL class
description 642
GDSNDB class
description 642
GDSNJR class
description 642
GDSNPK class
description 642
GDSNPN class
description 642
GDSNSC class
description 642
GDSNSG class
description 643
GDSNSM class
description 643
GDSNSP class
description 643
GDSNSQ class
description 643
780
GDSNTB class
description 643
GDSNTS class
description 643
GDSNUF class
description 643
GDSNUT class
description 643
GEJBROLE class
description 643
GENCERT
accesses required 618
general resource
overview of RACF protection 38
protecting 195
using profile modeling when protecting 39
general resource class 642
activating for IMS 458
activating or deactivating 115
bypassing recording of statistics 118
default for IMS 457
defining
overview 21
for protecting SMS classes 515
generic profile checking 202
ineligible for global access checking 212
product use of
CICS 642
DB2 642
DCE 643
DFSMSdfp 645
Enterprise Java Beans 643
IMS 643
Infoprint Server 644
Information/Management 644
LFS/ESA 644
License Manager 644
Lotus Notes for z/OS 644
MQSeries 644
NetView 644
Novell Directory Services for OS/390 644
SMS 645
Tivoli 645
Tivoli Service Desk 644
TSO 645
z/OS Security Server Network Authentication
Service 645
z/OS UNIX 645
recording statistics for 118
security classification of 23, 95
supplied 639, 646
to protect TSO resources 526
general resource classes
for DB2 objects 423
general resource profile
authority granted through group-level attributes 80
authority of CLAUTH user to define 77
authority of OPERATIONS user over 75
conditional access list 205
contents summary 668
default UACC for 204
GIMS class
activating 223
description 643
description as resource group class 222
use 458
GINFOMAN class
description 644
description as resource group class 222
global access checking
activating or deactivating 118
creating table entries 207
defining an entry for the vector facility 251
during authorization checking 721
protecting frequently accessed system data
sets 173
refreshing in-storage checking lists 132
special considerations 212
using during failsoft processing 347
global access checking table
entries for JESNEWS 505, 506
entries for STORCLAS and MGMTCLASS
profiles 517
listing 212
performance benefits 198
global access checking table report
from DSMON 343
GLOBAL class
description 640, 646
relation to GMBR class 222
GLOBAL operand
SETROPTS command 118, 212
use of 212
GLOBAL=YES option 260
GMBR class
description 640, 646
relation to GLOBAL class 222
GMQADMIN class
description 644
GMQNLIST class
description 644
GMQPROC class
description 644
GMQQUEUE class
description 644
GRANT ALL
DB2 command 434
graphics device
controlling allocation with DEVICES profiles 253
group
as owner of data set profile 155
as owner of resource profile 22
assigning as owner of RACF profile 57
attributes 7
authority 7
authority structure 82
authority to access data set when not in access
list 162
authority to access general resource when not in
access list 204
authorizing to access resources 7
benefits of using RACF groups 55
Index
781
group (continued)
defining 50
summary of steps 59
defining for users with no common access
requirements 52
defining to RACF 15, 50
definition 6
deleting
summary of steps 60
determining the owner of 342
large 54
listing all connections for a user 362
maximum number of users in 50
naming conventions for 55
ownership of a RACF 57
RACF commands for administration 16
rationale for using 41
relationships of users within 42
scope of a 16
specifying group terminal option 59
summary of group-related user attributes 653
UNIVERSAL attribute 54
user attributes at group level 79
using &RACGPID for global access checking 209
using a dummy to protect data sets 154
group access attribute
See GRPACC attribute
group administrator
creating group for 50
delegating responsibility to 58
limits of authority of at the group level 80
role of 12
group already defined in RACF
SYS1 (highest group in RACF structure) 15
group authority
assigning to user 18
checking during list-of-groups checking 112
during authorization checking 722, 723, 724
suggestions for assigning 58
summary of authorities and commands 656
types 57
group class
defining
overview 21
group data set
allowing access to using GRPACC attribute 78
controlling creation of 153
global access checking table entries using
&RACGPID 211
protecting 153
user with GRPACC attribute 18
GROUP IDENT field
on TSO/E logon panel 530
group identifiers (GIDs) 534
group members
listing all 362
group name
as high-level qualifier for data set 153
associating started procedure names with 143
displaying from RACF database 26
selecting 41
782
GSDSF class
description 640
description as resource group class
GTERMINL class
activating 223
description 640, 646
description as resource group class
example 222
protecting several terminals 236
222
222
H
hardware configuration definition (HCD) program
device numbers 254
unit names for devices 254
Hardware Configuration Definition (HCD) program
JES printer definitions 511
unit names for devices 254
HCD
See Hardware Configuration Definition program
HCICSFCT class
description 642
description as resource group class 222
hierarchical file system
See HFS
hierarchical file system (HFS)
GRPLIST option 113
protecting data 549
hierarchical storage manager
See HSM
high-level qualifier
during authorization checking
for data sets 722
of data set profile name 151
requirements for prefix 123
HIGHTRUST option 613
HIMS class
description 643
use 458
Hiperbatch
creating DLFCLASS profiles for 256
HISTORY suboperand
PASSWORD operand
SETROPTS command 111
holding group
defining 51
limit on number of users 51
hostIdMappings extension 612
HSM (hierarchical storage manager)
considerations for tape data sets 188
I
IBMUSER user ID
description 336
logging on as 336
revoking 338
ICETOOL, DFSORT 357
ICF (Information Center Facility)
using to define users to RACF
90
Index
783
ILMADMIN class
description 644
implementing RACF
checklist for team 46
preparing plan 37
implicit ownership, associated DB2 privileges 431
IMS (Information Management System)
audit trail capabilities 459
controlling access to control regions 461
controlling access to IMS transactions 461
controlling access to physical terminals 463
controlling dependent region access to control region
resources 463
databases
controlling access 456
defining as a RACF user 456
dependent region initialization
authorization checking 464
general resource classes 643
libraries
protecting 456
RACF overview 455
RACF support for 455, 466
system data set
controlling access 456
system generation considerations 457
using RACF for a sign on 459
IMS application
defining a PTKTDATA profile 243
IMS control region
protecting with APPL profiles 461
IMS security maintenance utility (SMU)
enforcing sign on for all IMS users 460
IMS transaction
authorization checking 735
IMSCTRL macro (IMS)
controlling access to IMS resources 457
IMSID value 461
RCLASS value 464
IMSJOBS DD name 464, 465
in-storage profile
activating 126
RACGLIST class 259
refreshing generic profile lists 131
saving 259
SETROPTS GENLIST processing for 126
SETROPTS options 126
SETROPTS RACLIST processing for 128
using during failsoft processing 347
INACTIVE operand
SETROPTS command 111
inbound work
authorizing with NODES profiles 483, 500
INFOMAN class
description 644
relation to GINFOMAN class 222
Infoprint Server
general resource class 644
Information Management System
See IMS
784
Information/Management
general resource classes 644
initACEE callable service 556
controlling the use 611
passing additional criteria 578
initialization
RACF external security module 436
initialization statements
protecting JES resources 468
INITSTATS operand
SETROPTS command 118
input sources
defining nodes as local sources 499
installation exit
IKJEFF53 478
using to tailor RACF 24
installation exits
password authentication 25
installation security plan 468
installation-defined class
defining
overview 21
description as resource group class 222
Integrated Cryptographic Service Facility
See ICSF
Integrated Cryptographic Service Facility (ICSF)
and digital certificates 582
brief description and cross-reference 279
private keys, suppression of information during RRSF
propagation 273
interprocess communication objects, restricting
access 139
interval
for changing passwords 110
INTERVAL suboperand
PASSWORD operand
SETROPTS command 110
introduction
security administration 2
invalid user IDs
listing in data set access lists 362
IODEVICE statement (MVSCP) 254
IP address
conditional access to SERVAUTH class 206
RACF authorization checking for 733
IP address control with SERVAUTH resources 319
IPCOBJ class
description 645
z/OS UNIX event auditing 115
IRR.DIGTCERT.function 559
IRR.DIGTCERT.ADD 560, 597, 612, 618
IRR.DIGTCERT.ADDRING 560, 598
IRR.DIGTCERT.ALTER 560, 567
IRR.DIGTCERT.ALTMAP 560
IRR.DIGTCERT.CONNECT 560, 598
IRR.DIGTCERT.DELETE 560, 612
IRR.DIGTCERT.DELMAP 560
IRR.DIGTCERT.DELRING 560
IRR.DIGTCERT.EXPORT 560, 617
IRR.DIGTCERT.GENCERT 560, 616, 618
IRR.DIGTCERT.GENRENEW 618
IRR.DIGTCERT.GENREQ 560
IRR.DIGTCERT.LIST 559, 560, 563
IRR.DIGTCERT.LISTMAP 560
IRR.DIGTCERT.LISTRING 560
IRR.DIGTCERT.MAP 560
IRR.DIGTCERT.REKEY 560
IRR.DIGTCERT.REMOVE 560
IRR.DIGTCERT.REQCERT 618
IRR.DIGTCERT.REQRENEW 618
IRR.DIGTCERT.REVOKE 618
IRR.DIGTCERT.ROLLOVER 560
IRR.DIGTCERT.VERIFY 618
IRR.HOST.host-name 613
IRR.LISTUSER 219
IRR.PASSWORD.RESET 220
IRR.RCACHESERV.cachename 615
IRR.RPKISERV.PKIADMIN 618
IRR.RPROXYSERV 619
IRR.RTICKETSERV resource 620
IRR@XACS 421
IRRACEE class 334
IRRADU00 utility
logging 5
overview 27
irrcerta user ID 583
IRRDBU00 utility
allowable parameters
LOCKINPUT 355
NOLOCKINPUT 355
UNLOCKINPUT 356
and RACGLIST profiles 353
checking category profiles in the SECDATA
class 98
creating a DB2 database 363
creating a DB2 table space 363
creating optimization statistics for the DB2
database 366
creating the DB2 indexes 364
creating the DB2 tables 364
DB2 table names 366
DB2 utility statements
for deleting group records 366
for loading tables 365
deleting data from the DB2 database 366
description 352
diagnostic capability 352
example 355
executing
input data set specification 354
listing universal group members 353
loading the DB2 tables 365
OMVS segment of user profile 353
operational considerations 353
overview 26
performance considerations 352
QMF form 370
record types 366
reorganizing the unloaded RACF data in the DB2
database 366
report output 371
reports using RACFICE 359
Index
785
J
JAVA class
description 643
JCICSJCT class
description 642
JCL (job control language)
parameters related to RACF 344
PROTECT parameter in JCL 188
PROTECT parameter on DD statement 168
replacing password with PassTicket 243
restricting the use of //DD DATA statement 346
SECMODEL parameter on DD statement 168
tape data sets 188
JES (job entry subsystem)
See also JES2, JES3
activating or deactivating options for 120
password print suppression 344
RACF support for 468
restricting use of JES3 operator commands 345
security 468
STARTED class 469
started procedures table (ICHRIN03) 469
working with RACF 469
JES commands
operator
protecting with OPERCMDS profiles 261
JES input device
allowing access depending on JES input
device 162, 206
protecting with JESINPUT profiles 481
RACF authorization checking for 733
JESINPUT class
activating 482
authorization checking 734
description 640
protecting JES input devices 481
protecting NJE nodes 510
protecting RJE workstations 510
specifying with WHEN operand on PERMIT
command 162, 206
spool reload 507
UACC authorities 482
JESJOBS class
activating 480
and &RACLNDE profile 228
description 640
finding profiles whose names include a particular
user ID 92
protecting job cancellation 480
protecting job names 478
protecting job submission 478
protecting spool reload 507
RACF variable example 227
JESNEWS data set
and SECLABEL class 505
protecting with JESSPOOL profile 504, 506
protecting with OPERCMDS profiles 504
JESSPOOL class
activating 500
and &RACLNDE profile 228
and SETROPTS GENERICOWNER 114
786
K
KCICSJCT class
description 642
KERB segment
user profile
contents of 66
Kerberos principal name
KERBLINK class
description 645
453
L
LABEL parameter (JCL DD statement)
parameters related to RACF 344
LAN (local area network)
secured signon 241
LAN File Services/ESA
See LFS/ESA
LAN File Services/ESA (LFS/ESA)
See LFS/ESA (LAN File Services/ESA)
LANGUAGE operand
SETROPTS command 126
LANGUAGE segment
field-level access checking 213
user profile
contents of 66
FIELD profile names 216
large groups 54
large profile size considerations 205
LDAP server
defining an LDAP bind profile 623
event notification 624
user change notification 624
LDAP Server
BIND password 284
LDAPBIND profile 623
LFS/ESA (LAN File Services/ESA)
general resource class 644
protecting file services with LFSCLASS profiles
LFSCLASS class
activating 234
defining profiles 234
description 644
protecting LFS/ESA file services 234
library lookaside (LLA) security 255
library, IMS
protecting 456
License Manager
general resource class 644
licensed documents xxv
234
787
M
MAC
See mandatory access control
MAIN attribute for programs
defining 323
overview 321
managed
user ID associations
defining 394
mandatory access control (MAC)
definition 11
mapping
GIDs
and VLF 543
UIDs
and VLF 543
mapping profiles
for UIDs and GIDs 545
masking
secured signon application key 245
master scheduler initialization (MSI) 720
matching schema names 422
maximum field length unloaded by IRRDBU00 353
maximum number of users per group 50
maximum security for secured signon application
keys 246
maximum VTAM session interval length 134
MCICSPPT class
description 642
MCS
See multiple console support
MCS console
protecting 239
protecting with CONSOLE profiles 239
MCSOPER macro
and OPERPARM segment 68
MDSNBP class
description 643
MDSNCL class
description 643
MDSNDB class
description 643
MDSNJR class
description 643
MDSNPK class
description 643
MDSNPN class
description 643
MDSNSC class
description 643
MDSNSG class
description 643
788
MDSNSM class
description 643
MDSNSP class
description 643
MDSNSQ class
description 643
MDSNTB class
description 643
MDSNTS class
description 643
MDSNUF class
description 643
MDSNUT class
description 643
member class
defining
overview 21
SETROPTS RACLIST processing 225
merged profiles, size considerations 205
message
password expiration 111
putting real data set names into 123
unauthorized access attempt 5
warning
rationale for using 40
message processing
password synchronization 391
message processing region
application resource security for IMS 466
message processing region for IMS 465
message retrieval tool, LookAt xxiv
message traffic
auditing 276
controlling 273
MGMTCLAS class
description 645
protecting SMS management classes 515
SETROPTS RACLIST processing 517
MGMTCLAS parameter (JCL DD statement)
parameters related to RACF 344
migration
converting from LEVEL to SECLEVEL 98
defining JES
as a started procedure 469
with the trusted attribute 469
of existing user IDs to RACF 73
protecting existing data 38
surrogate users 472
MIMS class
description 644
MLACTIVE operand
SETROPTS command 137
relationship to SECLABEL class 740
security labels and tapes 181
MLFSOBJ operand
SETROPTS command 139
MLIPCOBJ operand
SETROPTS command 139
MLNAMES operand
SETROPTS command 140
MLQUIET operand
SETROPTS command 136
relationship to SECLABEL class 740
MLS operand
SETROPTS command 136
relationship to SECLABEL class 740
MLS(FAILURES) option
SETROPTS command
security labels and tapes 181
MLSTABLE operand
SETROPTS command 135
mode
local 390
remote 390
model data set profile
for GDG data sets 167
system-wide processing options 122
ways to use 39, 163
model general resource profile
ways to use 39
MODEL operand
ADDGROUP command 164
ADDSD command 163
for group data sets 165
ADDUSER command 163
ALTGROUP command 164
ALTUSER command 163
SETROPTS command 122
for GDG data sets 167
for group data sets 165
for user data sets 164
modeling certificate name filters 577
MODIFY LLA command
controlling the use of 255
MQADMIN class
description 644
MQCMDS class
description 644
MQCONN class
description 644
MQNLIST class
description 644
MQPROC class
description 644
MQQUEUE class
description 644
MQSeries
general resource classes 644
MULTIID option of RACDCERT MAP command 578
multilevel security
and SMESSAGE class 274
enforcing fully 137
enforcing partially (compatibility mode) 137
multiple console support
sysplex
command authorization in 261
multiple profiles
for resource groups
resolving conflicts 224
multisystem node 389
N
name
defining for group 55
defining for user 72
name filters, certificate 569
name qualifier
&RACUID and &RACGPID for global access
checking 209
name-hiding, with security labels 140
naming convention table
See also ICHCNV00 module
erasing sensitive temporary data sets 172
protecting temporary data sets with protect-all
naming conventions
conforming or not conforming to 152
for data set profiles 151
for group 55
for user 72
making use of existing 42
table-driven for data sets 151
ways to enforce for data sets 151
national language
users preferred primary and secondary
languages 66
NCICSPPT class
description 642
NDS segment
user profile
contents of 67
FIELD profile names 216
NDS segment, USER profile 280
NDSLINK class 281
and IRRRID00 utility processing 374
Index
120
789
790
nodes
local
command direction 396
remote
command direction 397
treating some network nodes as local nodes 499
NODES class
activating 499, 513
and RACFVARS class 490
and RACFVARS profiles 485
authorizing inbound work (JES) 483, 500
checking 475
controlling commands from NJE nodes 512
description 640
finding profiles whose names include a particular
user ID 92
profiles with RUSER as second qualifier 512
protecting spool reload 507
relation to NODMBR class 222
SETROPTS RACLIST processing 499
NODES profiles
description 483
understanding 483
nodes, RRSF 389
local 389
local mode 390
multisystem 389
remote 389
remote mode 390
single-system 389
NODMBR class
description 640
relation to NODES class 222
NOEXPIRED operand 220
NOGLOBAL operand
SETROPTS command 211
NOHISTORY suboperand
PASSWORD operand
SETROPTS command 111
non-VSAM data set
multivolume considerations 168
nonautomatic TAPEVOL profile 184
NONE access authority
as related to RACF commands 657
for general resources 205
nonstandard naming conventions
changing with the naming convention table 151
NOOIDCARD operand 87
NOPADCHK option, with program access to data sets
(PADS) 318
NOPASSWORD operand 87
NORESTRICTED operand 88
NOSTATISTICS operand
SETROPTS command 118
NOTELINK class 281
and IRRRID00 utility processing 374
description 644
NOTERMUACC operand
for group terminal option 59, 237
Notices 745
notification, LDAP user changes 624
567
O
object names
DB2 426
object types
DB2 425
offloading spool (JES2 only) 506
OIDCARD (operator identification card)
storing information in the RACF database 142
using as a password 3
OIMS class
description 644
use 458
OMVS segment
description 19, 20
field-level access checking 213
group profile
contents of 53
FIELD profile names 216
list-of-groups checking 113
in GROUP profiles
using default segment 541
in USER profiles
using default segment 541
protecting with FIELD profiles 53, 68
user profile
contents of 68
FIELD profile names 216
IRRDBU00 utility 353
ONLYAT operand
controlling use of 268
ONLYAT option 399
operands
AT
controlling use of 268
DEFINE
controlling use of on RACLINK command 267
ONLYAT
controlling use of 268
PWSYNC
controlling use of on RACLINK command 267
operating RACF
considerations for administrators 333
OPERATIONS attribute
alternatives
DASDVOL authority 76
DFDSS authorization 77, 174
as related to RACF commands 655
comparison to DASDVOL authority 174
delegating 77
description of 18, 75
during authorization checking 723
listing users with 85
scratching temporary data sets when TEMPDSN
class is active 234
791
output parameters
DB2
XAPLDIAG 433
OUTPUT statement (JCL)
parameters related to RACF 345
overriding
default UACC for a data set profile 162
default UACC for general resource 204
overriding SUPERUSER.FILESYS authority 551
overwriting
a tape data set or tape volume 185
authority to overwrite a tape data set 187
OVM segment
description 19, 20
field-level access checking 213
group profile
contents of 54
FIELD profile names 217
user profile
contents of 69
FIELD profile names 217
owner
GENERICOWNER operand on SETROPTS
command 114
ownerless profile 334
ownership
of data set profile 155
of RACF group 57
of RACF profile 9
of RACF user profile 73
resource profile 22
scope of authority 80
various concepts of 23
ownership structure
establishing for your installation 41
P
PADCHK option, with program access to data sets
(PADS) 318
PADS
See program access to data sets
parameter lists
EXPL 421
XAPL 421
parameters
DB2
XAPLDIAG 433
partner LU
protecting conversations with APPL profiles 278
partner LU name device
conditional access to APPCPORT class 162, 206
conditional access to SERVAUTH class 162
PassTicket
See also secured signon
applications that generate 247
bypassing PassTicket replay protection 248
definition 241
enabling 249
generating 247
protecting with PTKTDATA profiles 241
792
PassTicket (continued)
time range 247
validating 247
verifying
the environment 249
password
activating or deactivating monitoring options 110
alternative to 241
automatic direction 416
bypassing protection 342, 345
change interval 110
checking after restarting a job 345
consecutive incorrect passwords to revoke user
ID 111
controlling access to RACF passwords 345
delegating authority to reset 220
encryption of RACF user 142
for RVARY command processing 113
maintaining for password-protected data sets 189
NOPASSWORD option 87
number of previous passwords to be saved 111
preventing revocation of user IDs 87
preventing unauthorized disclosure of on IMS 465
print suppression by JES 344
processing exit 25
rationale for using 2
replacing with PassTicket in JCL 243
resetting
using IRR.PASSWORD.RESET authority 220
specifying on TSO LOGON command 531
syntax rules 109
validating 247
warning message for password expiration 111
password authentication
exit routines for 25
password authentication exits 25
password enveloping 627
PASSWORD field
on TSO/E logon panel 530
password on bind
RACF support for 231
PASSWORD operand
SETROPTS command 109
PASSWORD parameter
on JOB statement in JCL 344
consideration for inbound NJE jobs 486
consideration for surrogate job submission 471
password protection
bypassing 21, 342
utilizing or bypassing for tape data sets 175
utilizing or bypassing for tape volumes 176
password rules
ISPF panel for 14
password synchronization 391
controlling 267
defining
for other users 394
for your user ID 394
message processing 391
output capturing 392
password-protected data set 166
Index
793
products, IBM
using with RACF
CICS 279
profile
connect
contents summary 666
coordinating updates 333
data set
contents summary 667
description of discrete and generic 20
description of group 52
description of user 62
general resource
contents summary 668
group
contents of 19
contents summary 665
group ownership of a 57
IRR.DIGTCERT.ADD 618
IRR.DIGTCERT.EXPORT 617
IRR.DIGTCERT.GENCERT 618
IRR.DIGTCERT.GENRENEW 618
IRR.DIGTCERT.REQCERT 618
IRR.DIGTCERT.REQRENEW 618
IRR.DIGTCERT.REVOKE 618
IRR.DIGTCERT.VERIFY 618
IRR.RPKISERV.PKIADMIN 618
listing information from RACF 29
owning a data set 155
owning a group 57
recording statistics in 28
rules for defining data set 151
searching for 31
secured signon 241
size considerations 205
types of RACF 9
user
contents of 19
contents summary 661
profile modeling
automatic 163
ways to use 39
profile name
for PTKTDATA class 242
high-level qualifier of data set 151
rules for specifying
with enhanced generic naming active 156, 200
profile ownership
delegating for FACILITY class 219
profiles
database
synchronizing 417
in RRSFDATA class
controlling automatic direction 269
mapping
for UIDs and GIDs 545
PWSYNC
controlling password synchronization 267
RACF
migrating DB2 data to 445
794
profiles (continued)
UNIXMAP class
for UIDs and GIDs 545
USER
using default OMVS segment 541
program
conditional access to SERVAUTH class 206
program access to data sets (PADS)
choosing PADCHK or NOPADCHK option 318
examples 329
in BASIC program security mode 314
in ENHANCED program security mode 320
PROGRAM class
description 640
examples 329
protecting DSMON 28, 74
relation to PMBR class 222
specifying with WHEN operand on PERMIT
command 206
program control
activating or deactivating 134
by system identifier (SMFID)
example of setting up 331
overview 308
during authorization checking 724
ENHANCED program security mode 320
example of command to activate 331
examples 329
informational messages 324
IP addresses, protecting with 319
maintaining a clean environment 309
migrating from BASIC to ENHANCED mode 311
overview 303
program security modes 305
protecting program libraries 313
SERVAUTH resources, protecting with 319
using MAIN or BASIC attributes 321
program dump
protecting with data set profiles 251
protecting with EXECUTE authority 252
protecting with FACILITY profiles 251
using non-RACF methods to control access to 253
program library
defining data set profile to protect 331
examples of protecting 329
protecting, overview 313
program properties table
See PPT
program properties table report
from DSMON 342
program security modes
overview 305
program-accessed data set 162
programs
protecting 303
sample
IRR@XACS 421
using with RACF
DB2 279
propagation
across a network 478
propagation (continued)
across nodes
in NJE network 498
controlling a user ID 473, 490
definition 477
in an NJE environment 490
PROPCNTL profiles 473
support for JES user identification 346
PROPCNTL class
activating 473
and &RACLNDE variable 473
and RACF variables 490
controlling user ID propagation 473
description 641
SETROPTS RACLIST processing 473
PROTECT parameter (JCL DD statement)
for a new data set 185
parameters related to RACF 344
planning for the use of 38
protecting non-VSAM data sets 168
protecting tape volumes and tape data sets 189
tape data sets 188
to protect data set with discrete profile 155
when protecting tape data sets 178
protect-all processing
activating or deactivating 119
PROTECTALL operand
SETROPTS command 119, 161
with generic profile checking 161
PROTECTED user attribute 87
protected user IDs
and IMS 456, 461, 464
and JES batch jobs 474
and started procedures 143
description 87
with z/OS UNIX 536
protecting
a multivolume tape data set 177
all data sets 119
batch user IDs 474
cataloged tape data set 177
catalogs 172
consoles 239
DASD data sets 169
data on tape 174
data sets 20, 150
data sets that have single-qualifier data set
names 152
data sets with a dummy group name 154
data sets with discrete profiles 155
data sets with discrete profiles through ADSP
attribute 78
data sets with generic profiles 156
DFP-managed temporary data sets 234
duplicate-named data sets residing on different
volumes 167
existing data on tape 177
file system resources in the z/OS UNIX
environment 549
GDG data sets 166
general resources 195
protecting (continued)
group data sets 153
group terminals 59
HFS files 549
IMS libraries 456
IMS user IDs 464
JES batch user IDs 474
LLA-managed data sets 255
multivolume data sets with discrete profiles 168
Network Authentication Service resources 603
new data on tape 178
non-VSAM data sets using JCL PROTECT
parameter 168
non-VSAM data sets using the JCL SECMODEL
parameter 168
programs 303
RACF database 349
started procedure user IDs 143
tape volumes 178
terminals 235
TSO resources 526
uncataloged tape data set 177
user IDs 87
vector facility 250
z/OS UNIX user IDs 536
PROXY segment
user profile 70
PSF (Print Services Facility)
general resource class 641
PSF for OS/390 (Print Services Facility)
protecting services with PSFMPL profiles 275
PSF.DPAGELBL resource 275
PSFMPL class
description 641, 646
OPERATIONS attribute allows access 75
protecting PSF functions 275
PTKTDATA class
activating 241
APPC application profile name 243
application names 245
CICS application profile name 243
defining profiles 241
description 641, 646
example of defining a profile 247
FIELD profile names 217
HTTP Server 245
IMS application profile name 243
MVS batch job profile name 243
profile names 242
protecting PassTickets 241
SETROPTS RACLIST processing 241
TSO profile name 244
VM profile name 245
PTKTVAL class
description 645, 646
PUBLIC* user ID
DB2
special considerations 431
publications
on CD-ROM xxiii, xxiv
softcopy xxiii, xxiv
Index
795
PWSYNC operand
RACLINK command
controlling use of 267
PWSYNC profile
in RRSFDATA class 267
Q
QCICSPSB class
description 642
QIMS class
description 644
use 458
QMF form 370
R
R_admin callable service 614
R_cacheserv callable service
controlling the use 615
R_datalib callable service 556
controlling the use 615
R_dceruid callable service
controlling the use 616
R_PKIServ
end-user functions 616
R_PKIServ callable service
controlling the use 616
R_proxyserv callable service
controlling the use 619
R_ticketserv callable service 619
RACDBULD
member of SYS1.SAMPLIB 362
RACDBUQR
member of SYS1.SAMPLIB 362
RACDBUTB
member of SYS1.SAMPLIB 362
RACDCERT command
administering digital certificates 557
controlling access to 559
LISTMAP option 572
MULTIID option 578
NOTRUST option 567
TRUST option 567
RACDEF macro
See RACROUTE REQUEST=DEFINE macro
RACF
and z/OS UNIX 533
authorization checking
for DB2 resources 677
classroom courses xxiv
database unload utility (IRRDBU00) 352
publications
on CD-ROM xxiii, xxiv
softcopy xxiii, xxiv
remove ID utility (IRRRID00) 372
support for DB2 authorization 421
using with other programs
DB2 279
RACF administration
classroom courses xxiv
796
RACF commands
attributes and authorities required 653
effecting a VLF cache flush 334
for group administration 16
for user administration 15
logging attempts to issue 4
operator
protecting with OPERCMDS profiles 262
summary of 649
to display information from RACF profiles 29
to search for RACF profile names 31
using 13
using exits to perform additional authorization
checking 25
RACF database
backup RACF database 349
considerations for 348
coordinating profile updates 333
multiple data sets 349
multiple IMS control regions sharing a 457
protecting secured signon application keys 245
protection of 349
sample DDL statements 362
sharing 350
sharing among z/OS, OS/390, and VM systems 13
sharing data using RRSF 350
switching to alternate 349
RACF database cross-reference utility
See IRRUT100 utility
RACF database unload utility
See IRRDBU00 utility
RACF exits report
from DSMON 342
RACF external security module 421
administering 436
allowing access to DB2 object
example of 439, 440, 443, 444
authority checking 422
authorization checking 437
FASTAUTH return code translation 438
for DB2 resources 677
reason codes 438
return codes 438
authorization processing
examples 439
configuring 421
deferring to DB2
example of 442
denying access to DB2 object
example of 441
initialization 436
migrating to 422
reason codes 437
removing 437
return codes 437
RACF implementation
organizing 35
RACF indication
for data sets 155
RACF naming convention table
See ICHCNV00 module
RACF options
listing system-wide
example 336
selecting 24
selecting system-wide with SETROPTS
command 108
using 108
RACF profile
description 9
listing information from 29
logging attempts to modify 4
recording statistics in 28
searching for 31
RACF protection
activating or deactivating for general resource
class 115
bypassing during system access of system data
sets 172
enforcing during system access of system data
sets 173
need for 2
tailoring 24
RACF report writer
debugging your security arrangements 716, 718
performance 5
stabilization 5, 28
using 4
RACF security topics
classroom courses xxiv
RACF TSO commands
compared to ISPF panels 13
RACF variable
&RACLNDE profile 228
and PROPCNTL class 490
defining with RACFVARS profiles 226
example 227
using 227
using in profile names 226
RACF-indicated data set
definition of 155
RACFDB2 utility 445
RACFEVNT class
description 641
RACFICE procedure 357
RACFVARS class
&RACLNDE profile 499
activating 227, 499
analyzing profiles from SEARCH 33
and NODES class 490
and NODES profiles 485
and PROPCNTL class 490
choosing 199
defining RACF variables 226
description 646
local nodes 499
relation to RVARSMBR class 222
SETROPTS RACLIST processing 227, 499
UACC authorities 226
using 227
RACGLIST class
and IRRDBU00 353
797
798
REQCERT
accesses required 618
REQRENEW
accesses required 618
REQUEST=AUTH preprocessing exit
during failsoft processing 348
to prevent access to resources 347
REQUEST=DEFINE preprocessing installation exit
during failsoft processing 348
overriding normal RACF authorization 153
REQUEST=FASTAUTH
for authorization checking to IMS transaction 458
when IMS issues 462
REQUEST=LIST
listing programs authorized to issue 342
REQUEST=LIST exit
resource group profiles 224
REQUEST=VERIFY
listing programs authorized to issue 342
REQUEST=VERIFY exits
problems 742
REQUEST=VERIFY processing
brief description 740
REQUEST=VERIFY statistics
bypassing collection of 117
requirements
encryption
secured signon function 246
resetting passwords
delegating authority for 220
RESGROUP operand
RLIST command 223
residual IDs
using IRRRID00 utility to find 377
resource
deciding what to protect 37
protecting 20
rules for naming profiles
with enhanced generic naming active 156, 200
resource access authority
summary of authorities and commands 657
resource class
belonging to an IMS control region 457
defining
overview 21
resource group class
defining
overview 21
SETROPTS RACLIST processing 225
resource group profiles
choosing 199
description 221
IMS transactions 462
resource groups
rules for multiple profiles
default 224
user exits 224
resource member class
defining
overview 21
resource names
DB2 426, 429
resource profile
ownership 22
resources
DB2
authorization checking 677
local 434
remote 434
RESOWNER field
compared to OWNER field 23
DFP segment of data set profile 519
restored jobs
protecting 507
RESTRICTED attribute
description of 18, 79
RESTRICTED operand 88
RESTRICTED user attribute 88
restricted user IDs
description 88
RESTRICTED.FILESYS.ACCESS profile 550
restricting
access to SVC dumps containing passwords 346
use of //DD DATA statement 346
user IDs 88
users access to resources 79
RESUME operand
ALTUSER command 112
CONNECT command 56
to activate a previously revoked user ID 111
RETAIN field
DLFCLASS profile 257
retiring a private key 585
RETPD operand
to specify security retention period for data sets 186
return codes
from the RACF external security module 437
RACF external security module
authorization checking 438
translation
FASTAUTH 438
REVERIFY value
APPLDATA field
RDEFINE command 463
reverse MAC (mandatory access checking)
for outbound work 500
REVOKE
accesses required 618
REVOKE attribute
description of 18, 78
listing users with 85
REVOKE operand
CONNECT command 56
REVOKE suboperand
PASSWORD operand
SETROPTS command 111
revoked user ID
using the RESUME operand to activate a 111
revoking
IBMUSER user ID 338
preventing 87
revoking (continued)
the ADSP attribute 79
unused user ID 111
user ID based on consecutive incorrect
passwords 111
users access to system 78
users access to the system 91
REXX RACVAR function package
determining current security label 105
RJE consoles
protecting 507, 508
RJE workstation
protecting with FACILITY profiles 509
protecting with JESINPUT profiles 510
RJP consoles
protecting 508
RJP workstation
protecting with FACILITY profiles 509
RLIST command
to list information in TVTOC of tape volume
profile 182
RLIST DIGTCERT 564
RMTOPS class
description 645
RODMMGR class
description 645
ROLE class
description 645
rollover of private key 585
routines
sample
IRR@XACS 421
RRSF (RACF remote sharing facility) 388
creating user IDs 73
introduction 350
local mode 390
local node 389
multisystem node 389
nodes 389
remote mode 390
remote node 389
security categories
maintaining in an RRSF environment 98
single-system node 389
suppression of private-key information
propagation 273
RRSFDATA class
controlling
access to RACLINK command 267
access to RRSF functions 266
password synchronization 267
use of AT operand 268
use of RACLINK DEFINE operand 267
use of RACLINK PWSYNC operand 267
controlling automatic direction
of commands 269
of passwords 271, 272
description 641
RSCS node
control of inbound jobs or data 482
Index
799
rules
establishing password syntax 109
ISPF panel 14
for data set qualifiers 157
for defining data set profiles 151
for defining generic profiles
with enhanced generic naming active 156, 200
for generic data set profiles 157
for generic profile checking of data sets 158
for generic profile checking of general
resources 202
for high-level qualifiers of a data set name 158
for naming groups 55
for naming users 72
for protecting group data sets 153
for protecting user data sets 152
resolving multiple profiles
default 224
user exits 224
RUSER qualifier
in NODES profiles 484, 512
RVARSMBR class
description 641, 646
relation to RACFVARS class 222
RVARY command
protection 265
setting password for processing 113
RVARYPW operand
SETROPTS command 113
S
SAF (system authorization facility)
handling of JES RACROUTE macro calls 469
ICHRTX00 router exit routine 720
ICHRTX01 router exit routine 720
propagation of security information
across a network 478
from incoming jobs 471, 477
router exits
description 720
diagram of RACF router 727
diagram of SAF router 725
problems 742
user token 721
z/OS UNIX services 549
SAF callable services, authorizing applications that
invoke 611
sample
ISPF panel 15
QMF form 370
report from IRRDBU00 output 371
SAVE command
requirements for issuing 347
SCDMBR class
description 641, 646
relation to SECDATA class 222
schema names 422
SCICSTST class
description 642
800
scope of a group
description 16
resources that are within 80
using the group tree report to show 342
scratch function
DASDVOL authority 173
SCRATCH function
to scratch data sets on a volume 173
scratch pool volume
definition 178
predefining for tape data sets 184
scratching temporary data sets
when TEMPDSN class is active 234
SDSF (System Display and Search Facility)
general resource class 641
protecting panels with OPERCMDS profiles 261
WRITER profiles 511
SDSF class
description 641
relation to GSDSF class 222
SEARCH CLASS(DIGTCERT) 565
SEARCH command
and RACFVARS profiles 33
example to identify cataloged group data sets 60
example to identify cataloged user data sets 92
to find all data sets with expired security retention
period 185
with CLIST option
to maintain security categories in an RRSF
environment 98
searching
for RACF profile names 31
SECDATA class
assigning security categories to users 85
assigning security levels to users 85
description 641, 646
relation to SCDMBR class 222
SECLABEL class
and CONSOLE class 240
and JESNEWS 505
and PSF for OS/390 275
and SMESSAGE class 274
and spool offload 506
and surrogate job submission 472
and TSO SEND command 529
and WRITER class 500
assigning security labels to users 85
authorization checking 736
description 641, 646
planning considerations 104
protecting consoles 240
protecting terminals 238
RACSLUNK label 486
relationship to SETROPTS MLS, MLACTIVE, and
MLQUIET settings 740
SETROPTS options for 135
tape volume considerations 181
SECLABEL field
on TSO/E logon panel 530
TSO segment of user profile 101
SECLABEL parameter
on JOB statement in JCL 344
SECLABELCONTROL operand
SETROPTS command 135
SECLBYSYSTEM operand
SETROPTS command 140
SECLJ qualifier
on NODES profiles 484
SECLMBR class
description 641
SECLS qualifier
on NODES profiles 484
SECMODEL parameter
on DD statement in JCL 344
SECMODEL parameter in JCL
protecting non-VSAM data sets 168
secondary language
installation defaults 126
secured signon application key
and RACF database 245
defining 241
encrypting 246
masking 245
protecting 245
secured signon function
See also passticket
activating the PTKTDATA class 241
changing profiles 242
defining profiles 241
example of defining a profile 247
in a shared environment 246
overview 240
problem prevention 249
protecting keys 245
verifying
the environment 249
security
for DB2 objects 420
security administration
delegating 93
introduction 2
security administrator
limits of authority of at the group level 80
responsibilities during implementation planning 36
role of 12
tools to manage the RACF database 25
tools to monitor and control RACF 25
security category
assigning to users 85
assigning with SECDATA profiles 85
definition 8
deleting UNKNOWN categories 98
during authorization checking 722
how RACF uses 23, 95
maintaining categories in an RRSF environment 98
tape volume 181
understanding 97
security classification of users and data
activating or deactivating 133
definition 8
during authorization checking 721
Index
801
segment
APPCLU profile 217, 232
CDTINFO segment
FIELD profile names 215
CICS segment
contents 65
conversation security options 278
FIELD profile names 215
field-level access checking 529
DCE segment
contents 65
FIELD profile names 215
DFP segment
contents 53, 66
DFSMS storage administrator 59
FIELD profile names 216
field-level access checking 520, 523
overriding default values 519
RACF processing 520
SMS-managed data sets 518, 519
DLFCLASS profile 216, 256
DLFDATA segment
contents 256
FIELD profile names 216
group profile
contents of 52
KERB segment
contents 66
LANGUAGE segment
contents 66
FIELD profile names 216
LNOTES segment
contents 67
FIELD profile names 216
NDS segment
contents 67
FIELD profile names 216
NETVIEW segment
contents 67
FIELD profile names 216
OMVS segment
contents 53, 68
FIELD profile names 216
IRRDBU00 utility 353
list-of-groups checking 113
OPERPARM segment
contents 68
FIELD profile names 216
OVM segment
contents 54, 69
FIELD profile names 217
profile modeling 39
PROXY segment 70
PTKTDATA profile 217
SESSION segment
contents 232
FIELD profile names 217
SSIGNON segment
FIELD profile names 217
STARTED profile 217
802
segment (continued)
STDATA segment
FIELD profile names 217
SVFMR segment
FIELD profile names 217
TME segment
contents 54
FIELD profile names 217
TSO segment
contents 70
controlling access to fields in 214
example 90
FIELD profile names 218
SECLABEL field 101
user profile
contents 63
WORKATTR segment
contents 71
FIELD profile names 218
segments
STDATA 145
selected data sets report
from DSMON 343
selected user attribute report
from DSMON 343
selected user attribute summary report
from DSMON 343
SEND command (TSO)
and SECLABEL class 529
controlling with SMESSAGE profiles 529
sending messages
TSO SEND command
controlling with SMESSAGE profiles 529
SERVAUTH class 613
authorization checking 734
conditional access 162, 206
description 641
SERVER class
description 641
session interval, VTAM
maximum 134
SESSION segment
APPCLU profile
contents 232
conversation security options 278
FIELD profile names 217
field-level access checking 213
maximum VTAM session interval 134
password 134
SESSIONINTERVAL operand
SETROPTS command 134
SESSKEY value for APPCLU class profiles 232
SETROPTS command 260
EARLYVERIFY operand 471
GENLIST operand 126
hints for selected options 108
in-storage profiles 126
RACLIST operand 126
specifying system-wide RACF options with 108
SETROPTS GENLIST processing
activating or deactivating 126
803
804
summary (continued)
deleting users 91
of RACF authorities 649
of RACF commands 649
superuser authority 536
SUPERUSER.FILESYS authority, overriding 551
SUPERUSER.FILESYS.ACLOVERRIDE profile 551
SURROGAT class
activating 473
authorizing surrogate users 472
controlling TSO SUBMIT command 346
defining profiles 472
description 641
migrating from $SUBMIT.userid FACILITY-class
profiles 472
RACF variable example 229, 230
setting up surrogate users 471, 481
started task 473
UACC authorities 472
surrogate job submission
across NJE networks 486
and SECLABEL class 472
authorizing 471, 481
surrogate user
authorizing 481
authorizing with SURROGAT profiles 471, 472
SVC dump
restricting access to dumps containing
passwords 346
SVFMR segment
general resource profile
FIELD profile names 217
SWITCH suboperand
RVARYPW operand (SETROPTS command) 113
switching
to alternate RACF databases 349
synchronization
of database profiles
establishing 417
SYS1.HELP data set
global access checking table entries for
SYS1.HELP 210
SYS1.PARMLIB data set
CONSOLxx member 239
SMFPRMxx member 243, 244
SYS1.SAMPLIB
RACDBULD member 362
RACDBUQR member 362
RACDBUTB member 362
SYS1.UADS data set
converting with RACONVRT EXEC 71, 73
deleting user entry 92
maintaining for certain users 71, 525
SYSAREA parameter
on OUTPUT statement in JCL 345
SYSIN data sets
protecting 500, 501
protecting with JESSPOOL profiles 500, 504
SYSLOG data sets
protecting with JESSPOOL profile 506
SYSMVIEW class
description 641
SYSOUT data sets
authorizing NJE 491
protecting 500, 501
protecting with JESSPOOL profiles 500, 504
RACSLUNK security label 486
SYSOUT requests
&SUSER value 475
how verified 475
SYSOUT spool reload
JESINPUT profiles 507
sysplex
MCS
command authorization in 261
sysplex communication
data sharing option 652
sysplex data sharing option
parameters 355
performance 352
system authorization facility
See SAF
system data set
controlling access 456
IMS system 456
protecting 172
security labels 711
System Display and Search Facility
See SDSF
System Display and Search Facility (SDSF)
See SDSF (System Display and Search Facility)
system generation, IMS
considerations 457
system identifier (SMFID)
using for program control
example of setting up 331
system key
DSMON report 342
system management facility
See SMF
system operators
creating user IDs 73
system programmer
responsibilities during implementation planning 36
system report
from DSMON 341
system resources
checking the status of 341
system security
administering 12
checking by using DSMON reports 341
decentralizing administration 12
system-wide RACF options
activating or deactivating using SETROPTS
command 108
T
table space for DB2
creating 363
Index
805
tables
dynamic started procedures
and STARTED class 144
started procedures
creating 146
dynamic 144
tape data set
activating or deactivating protection for 174
activating protection for 123
authority to access a protected 175
authorization requirements for TAPEVOL and
TAPEDSN options 187
authorizing access to data set on tape volume with a
TVTOC 179
checking the security retention period 185
command to protect an existing
example 177
creating discrete tape volume profile 155
deleting RACF protection 185
description of TVTOC 182
DFP-managed
preventing access to 120
example of command to create generic profile
for 179
failsoft processing for 348
HSM considerations 188
maximum number of TVTOC entries 182
maximum number of volumes 178, 183
multivolume considerations 169
predefining tape volume profiles for 184
PROTECT parameter in JCL 188
protecting 20, 150
protecting a cataloged 177
protecting an existing 177
protecting an uncataloged 177
protecting multivolume 177
protecting new 178
protecting with discrete profile through ADSP
attribute 78
protecting with PROTECT parameter in JCL 189
protection for nonlabeled (NL) tapes 191
protection with nonstandard labels (NSL) 191
protection with TAPEVOL and TAPEDSN
options 175
providing password protection for 189
RACF processing for a multivolume 189
specifying DISP=DELETE 156
system-wide security retention period 124
tape label
authorization requirements for 191
bypassing tape label processing 190
data set and volume protection for nonlabeled
tapes 191
data set and volume protection with nonstandard
labels 191
tape volume
activating protection for 124
authority to access a protected 176
authorizing access to data set on a 179
automatic TVTOC tape volume profile 183
defining with a TVTOC 178
806
TEMPDSN class
activating 234
description 642
protecting DFP-managed temporary data sets 234
temporarily preventing significant RACF activity 136
temporary data sets
erasing 172
global access checking table 120
nonstandard names 120
protect-all 120
protecting with TEMPDSN profiles 234
terminal
allowing access depending on terminal 162, 205
controlling access to IMS 463
controlling access to resources based on security
levels 86, 96
limiting access to system 238
limiting when terminal can be used 86
preventing the use of undefined 236
protecting 235
protecting with GTERMINL profiles 236
protecting with SECLABEL profiles 238
protecting with TERMINAL profiles 235, 460, 463
RACF authorization checking for 732
specifying group terminal option 59
time and day-of-week access checking 87
UACC authorities for undefined terminals 133
TERMINAL class
activating 223, 236
description 642, 647
protecting IMS terminals 460, 463
protecting terminals 235
recording statistics for 118
relation to GTERMINL class 222
SETROPTS RACLIST processing 223, 236
specifying with WHEN operand on PERMIT
command 162, 205
terminal name
on a VTAM, TCAM or BTAM system 235
TERMINAL operand
SETROPTS command 133
terminal operator for IMS
forcing reverification 463
identifying and verifying 459
TERMUACC operand
specifying on ADDGROUP or ALTGROUP
command 237
time of day
terminal can access system 87, 238
user can access system 86
time range
PassTicket 247
timed PERMIT
providing 56
TIMS class
activating 223
description 644
relation to GIMS class 222
use 458
Tivoli
defining administrators 453
Tivoli (continued)
general resource class 645
Tivoli principal name 453
Tivoli Service Desk
general resource classes 644
TME segment
data set profile
FIELD profile names 217
field-level access checking 213
general resource profile
FIELD profile names 217
group profile
contents of 54
FIELD profile names 217
TMEADMIN class
description 645
use 453
token
submitter information propagated from trusted
nodes 475
TPUT macro
auditing when users receive data sent 276
trace data set
protecting with JESSPOOL profile 506
transaction
authorization checking in CICS 735
authorization checking in IMS 735
controlling access in IMS 461
defining in IMS 462
entering from a terminal 461
grouping under a single name in IMS 462
IMS 461
transaction authorization exit (IMS)
elapsed time checking 463
translating
group names 495
security labels 495
user IDs 495
TRANSMIT command (TSO)
controlling use 530
TRUST option of the RACDCERT command 567
trusted attribute
authorization checking 720
started procedure 144
TSO
defining PTKTDATA profiles 244
using when RACF is deactivated 531
VTAM generic resource name 244
TSO account number
protecting with ACCTNUM class 526
specifying with TSO/E logon panel 71
TSO command
ALLOCATE
protecting data sets with discrete profiles 155
using the PROTECT operand on 168
using the SECMODEL operand on 168
and RACF 530
CANCEL
controlling job cancellation 480
CONSOLE
and OPERPARM segment 68
Index
807
808
U
UACC (universal access authority)
ACCTNUM class 526
checking what is specified for system data sets 343
CONSOLE class 240
contrasted with ID(*) 9
contrasted with ID(*) 163, 346
coverage of
batch jobs not associated with a RACF-defined
user 162
RACF-defined users only 346
users not defined to RACF 162, 346
DATASET class 162
default for user when connected to a group 85
DEVICES class 255
DLFCLASS class 257
during authorization checking 723
during authorization checking for devices 734
during authorization checking for terminals 733
FACILITY class
LLA-managed data sets 256
for data sets 162
for general resources 204
for system data sets 711
for undefined terminals 133
JESINPUT class 482
overriding 204
overriding for a data set profile 162
PERFGRP class 526
RACFVARS class 226
SMESSAGE class 274
specifying default for undefined terminals 236
SURROGAT class 472
TAPEVOL class 179
TSOAUTH class 526
TSOPROC class 526
VTAMAPPL class 275
user (continued)
as owner of resource profile 22
assigning user and group attributes 16
attributes 7, 73
authority required to define new user 58
authority to access data set when not in access
list 162
authority to access general resource when not in
access list 204
authorizing to access resources 7
classifying 95
defining 50
summary of steps 89
defining IMS as a RACF 456
defining to RACF 15, 61
defining to RACF using ICF 90
deleting
summary of steps 91
educating system users 44
encryption of RACF user passwords 142
excluding from system 18
forcing batch users to identify themselves to
RACF 470
identification with USER operand 347
identifying by user ID 6
identifying control region users for IMS 461
limiting when user can log on 86
maximum number connected to a group 50
naming conventions for 72
RACF commands for administration 15
relationships within a group 42
requirements to log on to TSO 530
restricting access to resources 79
revoking access to system 78
security classification of 23, 95
sending warning messages to 5
support for JES user ID propagation 346
verification
checking when restarting jobs 345
verifying
use of console 733
use of IP address 733
use of JES input device 733
use of terminal 732
user attribute
description of various 73
specifying 16
user authority for TSO
protecting 526
user data set
controlling creation of 153
protecting 152
user ID
activating a previously revoked 111
as high-level qualifier for data set 152
assigning to batch user 41
associating started procedure names with 143
controlling propagation of 473
creating blocks of using CLIST 73
deactivating an unused 111
default user IDs 498
Index
809
user ID (continued)
displaying from RACF database 26
during authorization checking
for data sets 722
early verification of by JES 471
extended password and user ID processing 110
invalid
listing in data set access lists 362
migrating to RACF 73
preventing logon and revocation 87
propagation for jobs that have no validated user
ID 471
protected 87
rationale for using 2
restricted 88
revoking an unused 111
revoking based on consecutive incorrect
passwords 111
selecting 41
specifying as prefix for data set with single-qualifier
name 123
translating 495
using &RACUID for global access checking 209
user ID associations
approving 394
defining 394
for other users 394
for your user ID 394
deleting 395
listing 395
managed
defining 394
user ID authentication
brief description 740
user ID propagation
control in an NJE environment 490
when jobs are submitted 471
user identifiers (UIDs) 535
user IDs
???????? 498
++++++++ 498
creating for RRSF users 73
creating for system operators 73
DB2
PUBLIC* 431
mapping profiles for 545
mapping to UIDs 543
mapping UID to 535
security default 497
suggestions for defining 72
user limits for z/OS UNIX 536
USER parameter
on JOB statement in JCL 344
user profile
authority granted through group-level attributes 80
authority of CLAUTH user to define 77
contents 63
contents summary 661
controlling access to DFP segment 521
description of 19, 62
DFP segment 518
810
V
validation
security 494
VCICSCMD class
description 642
vector facility
protecting with FACILITY profile 250
VERIFY
accesses required 618
verifying
NJE jobs 474
Virtual Lookaside Facility (VLF)
z/OS UNIX performance considerations 543
Virtual Telecommunications Access Method
See VTAM
VLF (Virtual Lookaside Facility)
z/OS UNIX performance considerations 543
VLF cache
flushing with RACF commands 334
VM
defining PTKTDATA profiles 245
finding information for RACF tasks 13
sharing a RACF database among z/OS, OS/390, and
VM systems 13
VMBATCH class
description 647
OPERATIONS attribute allows access 75
VMBR class
description 647
relation to VMEVENT class 222
VMCMD class
description 647
OPERATIONS attribute allows access 75
VMEVENT class
description 647
relation to VMBR class 222
VMMAC class
description 647
VMMDISK class
description 647
OPERATIONS attribute allows access 75
VMNODE class
description 647
OPERATIONS attribute allows access 75
VMPOSIX class
description 647
VMRDR class
description 647
OPERATIONS attribute allows access 75
VMSEGMT class
description 647
VMXEVENT class
description 647
relation to VXMBR class 222
volume authority
DASD volume 173
VSAM data set
multivolume considerations 169
protecting
using commands 157
VTAM (Virtual Telecommunications Access Method)
general resource class 642
VTAM application programs
protecting with VTAMAPPL profiles 274
VTAM generic resource name for TSO 244
VTAM LU 6.2 bind
activating APPCLU class 232
controlling 231
example of APPCLU class 232
using APPCLU class 231, 232
VTAM password on bind
enforcing 231
VTAM session interval
maximum 134
VTAM session-level security
controlling 231
VTAM terminal
defining name for 235
VTAMAPPL class
activating 275
defining profiles 275
description 642
protecting VTAM applications 274
SETROPTS RACLIST processing 275
UACC authorities 275
VXMBR class
description 647
relation to VMXEVENT class
222
W
warning message
number of days before password expires 111
rationale for using 40
unauthorized access attempt 5
WARNING suboperand
PASSWORD operand
SETROPTS command 111
WebSphere Application Server 556
providing automatic registration of digital
certificates 582
using digital certificates to access 568
WHEN operand
PERMIT command
data set profiles 162
general resource profiles 205
specifying when terminal can access system 87
WHEN(APPCPORT) operand
of PERMIT command 162, 206
WHEN(CONSOLE) operand
on PERMIT command 162, 205
WHEN(JESINPUT) operand
on PERMIT command 162, 206
WHEN(PROGRAM) operand
of PERMIT command 206
WHEN(SERVAUTH) operand
of PERMIT command 162, 206
WHEN(SYSID) operand
on PERMIT command 206
WHEN(TERMINAL) operand
on PERMIT command 162, 205
WIMS class
description 644
use 458
WITH GRANT option
DB2 434
work entering system
run by a RACF-defined user 137
WORKATTR segment
field-level access checking 213
user profile
contents of 71
FIELD profile names 218
workstations
secured signon 240
write-enable ring
removing when opening a tape data set for
input 188
when opening a tape data set for input 187
WRITER class
activating 511
and SDSF 511
and SECLABEL class 500
authorizing outbound work 500
controlling output destination 510
defining profiles 510
Index
811
501
X
X.500 directory information tree 569
X.509 issuers distinguished name 570
X.509 subjects distinguished name 570
XAPL 421
XAPLDIAG 433
XAPLFUNC
and RACF external security module
authorization checking 437
initialization 436
XAPLPRIV 423
XAPLTYPE 423
Z
z/OS Security Server Network Authentication
Service 603
z/OS UNIX
access control lists (ACLs) 549
and RACF 533
auditing security events 115
automatic assignment of UNIX identities 538
file system resources, restricting access 139
general resource classes 645
group identifiers (GIDs) 534
group ownership of files 548
hierarchical file system (HFS) 549
performance considerations 542
permission bits 549
protected user IDs 536
SETROPTS MLFSOBJ in effect 139
setting user limits 536
sharing UNIX identities 537
superuser authority 536
user identifiers (UIDs) 535
Virtual Lookaside Facility (VLF) 543
812
Overall satisfaction
Very Satisfied
h
Satisfied
h
Neutral
h
Dissatisfied
h
Very Dissatisfied
h
Neutral
h
h
h
h
h
h
Dissatisfied
h
h
h
h
h
h
Very Dissatisfied
h
h
h
h
h
h
How satisfied are you that the information in this book is:
Accurate
Complete
Easy to find
Easy to understand
Well organized
Applicable to your tasks
Very Satisfied
h
h
h
h
h
h
Satisfied
h
h
h
h
h
h
h Yes
h No
When you send comments to IBM, you grant IBM a nonexclusive right to use or distribute your comments in any
way it believes appropriate without incurring any obligation to you.
Name
Company or Organization
Phone No.
Address
SA22-7683-06
___________________________________________________________________________________________________
Cut or Fold
Along Line
_ _ _ _ _ _ _Fold
_ _ _and
_ _ _Tape
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Please
_ _ _ _ _do
_ _not
_ _ staple
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Fold
_ _ _and
_ _ Tape
______
NO POSTAGE
NECESSARY
IF MAILED IN THE
UNITED STATES
PERMIT NO. 40
IBM Corporation
Department 55JA, Mail Station P384
2455 South Road
Poughkeepsie, NY
12601-5400
_________________________________________________________________________________________
Please do not staple
Fold and Tape
Fold and Tape
SA22-7683-06
Cut or Fold
Along Line
Printed in USA
SA22-7683-06