查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
如作业卡中指定的那样,需要针对特定用户使在steplib / joblib中使用未经批准的数据集名称的作业失败。因此,一旦找到特定用户之一,则仅适用于已批准dsns的标准,以便未批准的dsns会导致作业终止。
问题是:由于每个完整的JCL卡(job,exec或ddcard)都将调用此出口一次,因此在以下情况下可以使用哪种通用技术来设置开关:
在JES2出口中找到特定的工作?由于当ddcard引起退出电话时,作业卡不再可用。我看到JCT中为用户保留的字段,但是JCT是否可以在对出口的调用中保留下来?这类似于在CICS中使用COMMAREA。可怜我,我是一位正在努力解决JES2 EXIT任务的CICS sys prog。 |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
兰迪·霍洛维茨写道: |
如作业卡中指定的那样,需要针对特定用户使在steplib / joblib中使用未经批准的数据集名称的作业失败。因此,一旦找到特定用户之一,则仅适用于已批准dsns的标准,以便未批准的dsns会导致作业终止。
问题是:由于每个完整的JCL卡(job,exec或ddcard)都将调用此出口一次,因此在以下情况下可以使用哪种通用技术来设置开关:
在JES2出口中找到特定的工作?由于当ddcard引起退出电话时,作业卡不再可用。我看到JCT中为用户保留的字段,但是JCT是否可以在对出口的调用中保留下来?这类似于在CICS中使用COMMAREA。可怜我,我是一位正在努力解决JES2 EXIT任务的CICS sys prog。 |
- 您认为RACF / ACF2 / Top Secret有何用途?毕竟,可以动态分配数据集。
- JES2 JCT在工作寿命中或多或少是恒定的。
- 有一些方法可以将JCT扩展到JCTUSERn之外。例如,网络作业标题很容易扩展,尽管我不确定出口6是否可以访问或修改它。
- 查看针对您的发行版的JES2用户出口中讨论的返回码。我想您会找到一位为您量身定制的泰勒。
|
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
1.这些是调度程序产生的作业,没有人会动态分配任何东西,它们是COBOL批处理作业。我们要防止用户从“未经批准”的loadlib执行加载模块。
2.很好知道。
3.有趣的事实。
4.我已经详细研究了第19章。处理完工作卡后,我需要一个可以在处理ddname时使用的区域,在任何地方都没有提及。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
为什么不看看IBM提供的样本? |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
已经做到了。出口名称为HASPX06,位于SYS1.SHASSAMP中。但是,它没有显示我所暗示的使用技巧。我在45年前使用RTFM,相信我有RTFM!
编辑以删除不愉快的言论 |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
1.我重复一遍。您认为RACF等的用途是什么?作业来自调度程序的“事实”是BS。如果您希望作业具有唯一的用户ID,请使用代理控件,而不是您似乎建议的控件。 “代理”控件允许USER = userid,但没有其他用户ID的作业(调度程序作业)在JOB语句上提交密码。调查一下。
4.您需要在退出调用中保存1位,以指示您正在处理JOBLIB或STEPLIB以处理串联。
无论如何,我确信您知道JES2出口的目的是相当静态的。您将如何更新黑名单?
在1990年代,我曾在一家从事JES2安全工作的商店工作。除了每年锁定3到4次复杂对象之外,因为在我到达那里之前进行此操作的白痴在保持检查点的同时在JES2主要任务中进行了RACF调用,即使这样也是如此。我能够解决此问题,但是对于需要IPL更改的黑名单类型的东西(其中大部分是替代类型的东西),该代码基本上是不可读的。在审核员的劝告下,所有c ***已转交给RACF。我花了一年的时间才做些别的。
有人没有想到这个“要求”。只要有想法在JES2中进行安全处理,一个有用的规则就是找出一种以其他方式处理需求的方法。是的,编写出口非常有趣,但是最好不要编写任何类型的代码。 |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
我不是RACF专家,大多数情况下它只是让我烦恼。我们已经在作业卡中使用了USER =。对于某些用户,他们希望将JOBLIB / STEPLIB限制为几个loadlib。您是否可以编写RACF规则,对于某些使用USER =运行的作业,steplib或joblib ddcard只能使用一些数据集?我以为RACF保护数据集。这是强制执行的规则,即只允许某些ddcard中的某些数据集用于与某些用户一起运行的某些作业。 RACF可以这样做吗?还是为了防止某些用户无法访问某些完全不同的数据集而进行设置。
要更新静态的黑名单,需要重新编译出口。
我不建议在JES2出口中使用RACF-我只需要一种技术来保存从ddnames调用的JOB卡调用中的信息以退出6。有任何想法吗 ??
否,因为串联的ddcard位于调用出口的缓冲区中,所以不需要串联。从JOB卡到ddname呼叫,我都需要它。
总共每个ddcard都会显示给出口。一个jcl语句被转换
到8192字节缓冲区中的CI文本字符串和数据集名称的键
是X'4A'。所有这些都来自RTFMing。用于扫描密钥缓冲区的宏是示例代码中的$ CALL XINTKEY,ERRRET =。
现在有什么想法吗? |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
您是否曾经考虑过使用IEFUJV,但在更简单的上下文中,您可以做完全相同的事情。
您可以在cbttape.org上找到很多有用的示例 |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
行。请阅读IEFUJV上的文档,不确定是什么使这变得简单得多,因为JCL仍以串行调用的形式呈现给出口。但是在我看来,我也会遇到同样的问题。在CBTTAPE中仅看到2个sanples。我将继续研究,谢谢 |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
您仍然没有告诉我们该代码的高级知识。除了我认为是BS的原因之外,您也没有告诉我们为什么RACF无法满足此要求。在我看来,您是说这些作业可以访问这些数据集,但不能在这些数据集中运行代码。 ?!?相信我,您的代码很容易被规避。
我记得几年前,我曾考虑使用UJV检查JCL,但由于看不见符号替换而拒绝了这个想法。另外,机制比退出6困难得多。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
奇怪的是,不同的经历如何得出不同的结论
我更喜欢UJV的东西! |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
当然,您想要原因,没问题。
审核员希望防止生产作业(批量)执行其私有loadlib中的程序。因此,您可能会认为这是保护sched lib的简单RACF,并且仅允许满足条件的作业(JCL)。
但是,应用程序人们一直需要访问sched库。而且从今天起,应用程序人员就与支付账单的业务人员融为一体-猜猜谁会赢得这场争论。在我的“早期”时代,IT统治了市场,并强加了“规则”。
行。所以现在我们如何取悦审核员-退出6。
与仅维护并了解RACF的人员进行咨询之后,他们就毫无头绪如何编写规则,该规则允许使用USER参数在JOB卡中编码的某些用户仅允许执行库子集中的程序。但是我不是RACF专家。
因此,我准备写出口了,但是我不知道在JOB卡之后的后续调用中,程序将知道该作业需要检查steplib / joblib中是否有有权访问应用程序的人员陷入“流氓”负载库中我们的调度系统中的调度库。
看一下这里推荐的SMF出口的IBM示例,他们通过使用传入的字段来完成该任务,但是,USER没有传入,他们使用的是CLASS,该类是通过REG1参数区域传入的。所以这不能解决我的问题。
谢谢你的帮助 |
|
回到顶部 |
|
 |
达夫波塞兰
活跃的成员
加入时间:2006年12月1日 职位:747 所在地:宾夕法尼亚州
|
|
|
|
兰迪
在我看来,合适的解决方案是RACF。根本不是很难。
我给的名字只是一个例子,您的名字当然会有所不同。
您应该具有用于运行生产作业的生产ID(希望是代理)。让我们将它们称为PRODID1,PRODID2等。您可以拥有一个包含所有PRODID的RACF组PRODGRP。
您具有生产负载库,其中包含生产代码:
PROD.LOADLIB1,PROD.LOADLIB2等...
您可以具有PRODGRP有权读取的PROD.LOADLIB *的RACF数据集配置文件。测试用户也可以具有读取权限。在这里,只有您的部署ID应该具有更新访问权限。
TEST.LOADLIB是人们用于开发和测试的应用程序之一。
您可以拥有TEST.LOADLIB *的RACF数据集配置文件,PRODGRP无权访问该配置文件。
这是一个简单的设计,令您惊讶的是我没有到位。
如果我是审计师(上帝禁止),我会坚持采用RACF方法。我不允许借口解释为什么这种方法不起作用,只有解决方案可以使它起作用。 |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
我同意波塞兰先生。如果我是一名审计师,并且对这个想法不屑一顾,那么我也会拒绝这个想法。逃避TS的控制远非易事。
索里切蒂先生。- 请记住,在UJV中,您不会看到符号替换。
- 您必须在多个可能的JCL语句中扫描DSN = xxxx,DSNAME = xxx。在内部文本中,您扫描一串参数中的DSNAME键,并且已经进行了符号替换。您不能说服UJV“更轻松!”我承认出口6很难测试和调试。另外,由于尚未发生符号替换,因此您添加了另一条路径来逃避控件。
|
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
根据您对生产库的建议,已经设置了RACF。
您的解决方案无法解决的是:
想要进行某些邪恶活动的流氓应用程序创建者将他/她放入不遵守任何已知信息的图书馆中的程序
标准。对于您使用TEST.LOADLIB建议的库,没有任何规则。例如HACK.TAKE.CORP.ASSETS。然后,他们将此库粘贴到生产作业的JCL中,并放入他们可以访问的日程表库中。您建议的生产ID不能访问TEST.LOADLIB。*的规则可以访问HACK.TAKE.CORP.ASSETS吗? |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
史蒂夫
在内部文本中搜索时,串联的ddname如何工作?每个串联数据集的dsname是否有多个键?
什么是“ TS的控制”。
如何逃避呢?生产库列表将在出口处进行硬编码,如果在steplib / joblib中找到的数据集不在此列表中,则作业将终止。
谢谢 |
|
回到顶部 |
|
 |
达夫波塞兰
活跃的成员
加入时间:2006年12月1日 职位:747 所在地:宾夕法尼亚州
|
|
|
|
引用: |
然后,他们将此库粘贴到生产作业的JCL中,并放入他们可以访问的日程表库中。您建议的生产ID不能访问TEST.LOADLIB。*的规则可以访问HACK.TAKE.CORP.ASSETS吗? |
您的JCL部署过程应验证所有进入生产阶段的JCL。
这应该是内部公用事业和Prodco支持人员这样的产品的组合,例如JCLCHECK。这个JCL不可能将其投入生产。
此外,应用程序人员可以更改访问权限的任何高级资格人员,PRDGRP应该没有权限。 |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
达夫波塞兰 ,
这就是我先前提出的全部观点。无法控制生产计划库。当然应该,但是从来没有,应用程序人们不会支持它。而一无所知的业务人员会与他们达成一致,IT会因此而战败……但是审计师需要一种解决方案。请... |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
我开始问如何在出口6记住如何通过工作证,并标记此工作,以便在通过ddcard时应“记住”该规则,该工作规则应适用于此。有什么想法吗?谢谢 |
|
回到顶部 |
|
 |
达夫波塞兰
活跃的成员
加入时间:2006年12月1日 职位:747 所在地:宾夕法尼亚州
|
|
|
|
这是此处无法解决的管理问题。
您尝试使用EXIT是一种令人钦佩的方法。我无能为力的一个。
审核员需要进行高级管理,并要求RACF解决方案。
使生产JCL受到适当控制对于安全环境至关重要。
祝您退出6步好运。
戴夫 |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
达夫波塞兰 ,
我从来没有要求过控制JCL库的解决方案,您变成了这样。我要求EXIT 6可以“记住”先前调用的某些内容,以便随后可以采取措施。这对于所有事务类型处理(例如CICS)非常普遍。
感谢您的意见。 |
|
回到顶部 |
|
 |
达夫波塞兰
活跃的成员
加入时间:2006年12月1日 职位:747 所在地:宾夕法尼亚州
|
|
|
|
这是一个专家论坛,参与者可以利用他们的经验提供帮助。
正如您所注意到的,几位专家要求提供其他信息,以更好地了解问题的范围。
提供一个狭窄问题的具体答案不是我们在这里所做的。
尽管经常这样做,但是当解决问题的方法似乎不合适时,将讨论替代解决方案。
即使您对原问题的答案没有完全确定,也请不要占用专家在这里提供的任何可能的价值。
我将不对您的问题发表我的经验。 |
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
达夫波塞兰
非常感谢你 ! |
|
回到顶部 |
|
 |
史蒂夫·迈尔斯
活跃的成员
已加入:2013年11月30日 帖子:870 地点:宇宙
|
|
|
|
兰迪·霍洛维茨写道: |
史蒂夫
在内部文本中搜索时,串联的ddname如何工作?每个串联数据集的dsname是否有多个键?
什么是“ TS的控制”。
如何逃避呢?生产库列表将在出口处进行硬编码,如果在steplib / joblib中找到的数据集不在此列表中,则作业将终止。
谢谢 |
- 老实说,我不确定100%,但是我认为您仍然会看到两个DD语句。它不合并。执行时,仍然有两个DD语句。仅在它们打开后才被组合的意义上说,它是“组合的”。
- TS通常表示“主题启动器”,它是线程中的第一个或初始查询。
- 这是逃避提议控制的一种方法。
码: |
//逃避 EXEC PGM=IKJEFT01,
// PARM ='CALL''TEST.LIBRARY(EVADEPGM)''``参数文字''
// SYSTSPRT DD SYSOUT=*
// SYSTSIN DD DUMMY
//其他DD语句 |
还有其他变体,但这只是一个例子。除了为EVADEPGM终止之前为该步骤建立的任何其他STEPLIB,TEST.LIBRARY等同于STEPLIB。 TSO CALL命令已经以这种方式工作了近50年。
另一个例子 -
码: |
//逃避 EXEC PGM=IKJEFT01
// SYSTSPRT DD SYSOUT=*
// SYSTSIN DD *
呼叫测试库(EVADEPGM)' 'PARAMETER TEXT'
//其他DD语句 |
|
|
回到顶部 |
|
 |
兰迪·霍洛维兹(Randy Horowitz)
新的用户
已加入:2018年2月6日 帖子:18 所在地:美国
|
|
|
|
史蒂夫
行。所以从来没有得到我的问题的答案,但这是一次有趣的对话。感谢您的工作。有趣的是,我的想法是串联仍然是一个ddname,而Conversion / Interpreter导致我认为一个dsname中串联的一个dsname多意味着它们将是多个dsname密钥。 |
|
回到顶部 |
|
 |
|