摘要

  • RFC 3165 将已存储的管理脚本,与选择脚本、参数和执行控制项的启动表条目分开。
  • 在它的 VACM 紧急脚本示例中,初级组只能写入预先配置条目的启动和参数对象;高级组保留安装脚本和配置启动入口的权限。

RFC 3165 于 2001 年 8 月发布,设想把部分管理工作放到被管理系统附近执行。Script MIB 提供传送和启用脚本、启动脚本、观察运行状态、暂停或终止实例、读取执行结果的接口。它不规定脚本语言或具体运行环境;只要实现支持,甚至可以运行编译后的原生代码。因此,这份规范描述的不是一条远程命令,而是一套委派管理任务的生命周期。

关键的设计选择,是把“脚本本身”和“启动脚本的入口”拆开。smScriptTable 条目标识代码及其来源;smLaunchTable 条目,也就是 RFC 所说的“启动按钮”,把脚本、参数和控制值关联起来,例如限制同一入口允许同时运行的实例数。管理方可以用一个 SNMP SET 操作触发已配置好的条目。另一张运行表则展示实例状态、结果和控制项。

两种条目有不同的所有者概念。smLaunchOwner 标识启动表条目的管理所有者;从该条目启动的运行实例沿用这个所有者。smLaunchScriptOwner 与 smLaunchScriptName 则指出被调用的脚本。MIB 中的 owner 是管理索引和策略挂接点,不等于某个经过认证的自然人、SNMP 用户或操作系统账户。

第 8.3 节把这一区别落到具体配置上。名为 junior 的 VACM 组,可以读取 emergency 所有的脚本、启动条目和结果;它的写视图只开放该所有者下的 smLaunchStart 与 smLaunchArgument。高级组则可以安装紧急脚本并配置相应启动入口。初级运维因而能触发一项已准备好的操作,却没有获得编写或重新配置它的同等 MIB 权限。

这是规范中的访问控制示例,不是某个网络真实部署紧急脚本的记录。RFC 3165 也没有标准化通用沙箱。它说语言运行环境可以利用所有者信息实施安全配置,但把运行时与语言细节交给实现决定。文本没有规定脚本以哪个系统身份运行、能访问哪些文件或网络资源,也没有保证参数安全。SNMP 视图可以限制管理者能改哪些对象,却无法让被选中的程序自动变得无害。

“可以启动”也并非唯一重要的权限。如果初级组还能写参数,它就可能影响预配置脚本的行为。代码作者、启动条目所有者、调用权和运行时权限彼此相关,却不是同一个控制。RFC 3165 取代了 1999 年的 RFC 2592,但并未证明这套设计被广泛部署。它留下的历史价值更具体:管理工作可以把编写、配置、启动和观察拆成不同权限,而不必交给单一全权管理员。

来源:RFC 3165 第 3–5、8.1–8.3、10 节;RFC 2592;RFC 2575:基于视图的访问控制;RFC 3415:后续 VACM 规范;RFC 3411:SNMP 架构。

用于核对文档沿革与标准边界(不作为部署证据)的资料还包括:Datatracker 上的 RFC 3165 正文、RFC 3165 条目、第 04 版 Internet 草案、RFC 3414 的 USM 说明、RFC 3416 协议操作、RFC 3417 传输映射、RFC 3418 的 MIB,以及 IANA SMI 编号与语言注册表。