定义操作模式命令以在操作脚本中允许
操作 (op) 脚本可在运行 Junos OS 的设备上自动执行操作模式任务和网络故障排除。操作脚本可在脚本中执行操作模式命令。默认情况下,当用户执行脚本时,系统不允许用户在其登录类通常无权执行的脚本中执行操作模式命令。从 Junos OS 14.2 版开始,您可以配置允许执行特定操作脚本的操作模式命令。脚本中执行操作模式命令的权限适用于所有用户,您指定的命令也会被执行,即使执行脚本的用户没有执行操作模式命令的权限。
注意:
此功能不支持执行配置模式命令。
注意:
语 allow-commands 句仅支持设备本地的操作脚本。使用 命令执行的 op url 远程操作脚本不支持执行未经授权的操作模式命令,即使您配置语 allow-commands 句也是如此。
在以下示例中, sam.slax 脚本包含此代码:
version 1.0;
ns junos = "http://xml.juniper.net/junos/*/junos";
ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
import "../import/junos.xsl";
match / {
<op-script-results> {
var $usage = "This script updates the date on the device.";
var $temp = jcs:output($usage);
var $date = jcs:get-input("Enter the date and time (YYYYMMDDHHMM.ss): ");
var $var = <command> "set date " _ $date;
var $results = jcs:invoke( $var );
copy-of $results;
}
}
op 脚本 sam.slax 使用 set date 操作模式命令,此命令不允许用户 1 查看权限。
user1@device> op sam This script updates the date on the device. Enter the date and time (YYYYMMDDHHMM.ss): 201709111000.00 error: permission denied: date
要配置 sam.slax op 脚本以执行 set date 操作模式命令(必须是 Junos OS super-user 登录类中的用户):
[edit system scripts op file sam.slax] admin@device# set allow-commands date admin@device# commit
用户 1 现在可以成功执行操作脚本。
user1@device> op sam This script updates the date on the device. Enter the date and time (YYYYMMDDHHMM.ss): 201709111000.00 Mon Sep 11 10:00:00 PDT 2017
要定义操作模式命令以在操作脚本中允许: