運用スクリプトで許可する動作モード コマンドを定義する
運用(op)スクリプトは、Junos OS を実行するデバイスでの運用モード タスクとネットワーク トラブルシューティングを自動化します。Op スクリプトは、スクリプト内で運用モード コマンドを実行できます。デフォルトでは、ユーザーがスクリプトを実行するとき、システムは、ログインクラスが通常実行する権限を持たないスクリプト内でユーザーが操作モードコマンドを実行することを許可しません。Junos OS リリース 14.2 以降、特定の op スクリプトの実行が許可される動作モード コマンドを設定できるようになりました。スクリプト内で動作モード コマンドを実行する権限は、すべてのユーザーに適用され、指定したコマンドは、スクリプトを実行するユーザーが操作モード コマンドを実行する権限を持っていない場合でも実行されます。
設定モードコマンドの実行は、この機能ではサポートされていません。
allow-commandsステートメントは、デバイスにローカルな op スクリプトでのみサポートされています。コマンドを使用して実行されるリモート op スクリプトは、 ステートメントを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 OSsuper-userログインクラスのユーザーである必要があります)。
[edit system scripts op file sam.slax] admin@device# set allow-commands date admin@device# commit
ユーザー1がopスクリプトを正常に実行できるようになりました。
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
op スクリプトで許可する動作モード コマンドを定義するには:
運用モード コマンドを許可する op スクリプトに移動します。
メモ:Junos OS
super-userログインクラスに属するユーザーのみが、opスクリプトを設定できます。[edit] admin@device# edit system scripts op file filename
許可する動作モード コマンドを定義します。
[edit system scripts op file filename] admin@device# set allow-commands “regular-expression”
設定をコミットします。
[edit system scripts op] admin@device# commit