運用スクリプトで許可する動作モード コマンドを定義する
運用(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