Définir les commandes en mode opérationnel à autoriser dans un script op
Les scripts d’opération automatisent les tâches en mode opérationnel et le dépannage réseau sur les équipements exécutant Junos OS. Les scripts op peuvent exécuter des commandes en mode opérationnel à l’intérieur du script. Par défaut, lorsqu’un utilisateur exécute un script, le système ne lui permet pas d’exécuter des commandes en mode opérationnel dans un script pour lequel sa classe de connexion n’est normalement pas autorisée à s’exécuter. À partir de Junos OS version 14.2, vous pouvez configurer les commandes en mode opérationnel qu’un script op particulier est autorisé à exécuter. L’autorisation d’exécuter des commandes en mode opérationnel dans un script s’applique à tous les utilisateurs, et les commandes que vous spécifiez sont exécutées, même si l’utilisateur qui exécute le script n’est pas autorisé à exécuter les commandes en mode opérationnel.
L’exécution des commandes du mode de configuration n’est pas prise en charge par cette fonctionnalité.
L’instruction allow-commands
n’est prise en charge que pour les scripts op qui sont locaux à l’appareil. Les scripts d’opération à distance exécutés à l’aide de la commande ne prennent pas en charge l’exécution op url
de commandes en mode opérationnel non autorisées, même lorsque vous configurez l’instruction allow-commands
.
Dans l’exemple suivant, le script sam.slax contient le code suivant :
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; } }
Le script op sam.slax utilise la set date
commande en mode opérationnel, ce qui n’est pas autorisé pour l’utilisateur user1, qui dispose des autorisations d’affichage.
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
Pour configurer le script op sam.slax afin d’exécuter la set date
commande en mode opérationnel (il doit s’agir d’un utilisateur de la classe de connexion Junos OS super-user
) :
[edit system scripts op file sam.slax] admin@device# set allow-commands date admin@device# commit
L’utilisateur user1 peut maintenant exécuter avec succès le script 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
Pour définir les commandes en mode opérationnel à autoriser dans un script op :
Naviguez jusqu’au script op dans lequel vous souhaitez autoriser les commandes en mode opérationnel.
Note:Seuls les utilisateurs appartenant à la classe de connexion Junos OS
super-user
peuvent configurer des scripts op.[edit] admin@device# edit system scripts op file filename
Définissez les commandes du mode de fonctionnement à autoriser.
[edit system scripts op file filename] admin@device# set allow-commands “regular-expression”
Validez la configuration.
[edit system scripts op] admin@device# commit