Aktivieren und Ausführen von Ereignisskripten
Ereignisskripte werden auf der Festplatte eines Geräts im Verzeichnis /var/db/scripts/event oder auf dem Flash-Laufwerk im Verzeichnis /config/scripts/event gespeichert. Nur Benutzer der Junos OS-Anmeldeklasse super-user
können auf Dateien in diesen Verzeichnissen zugreifen und diese bearbeiten. Weitere Informationen zum Festlegen des Speicherorts für Skripts finden Sie unter Speichern und Aktivieren von Junos-Automatisierungsskripts und Speichern von Skripts im Flash-Speicher.
Um die Ausführung von nicht autorisiertem Python-Code auf Geräten mit Junos OS zu verhindern, müssen nicht signierte Python-Skripts bestimmte Anforderungen erfüllen, bevor Sie die Skripts auf einem Gerät ausführen können. Ab Junos OS Version 16.1R3 müssen nicht signierte Python-Skripte entweder root oder einem Benutzer in der Junos OS-Anmeldeklasse super-user
gehören, und nur der Dateibesitzer kann Schreibberechtigungen für die Datei haben. Vor Junos OS Version 16.1R3 dürfen nicht signierte Python-Skripte nur dem Root-Benutzer gehören. Ausführliche Informationen zu den Anforderungen für die Ausführung von Python-Automatisierungsskripts auf Geräten mit Junos OS finden Sie unter Anforderungen für die Ausführung von Python-Automatisierungsskripts auf Junos-Geräten.
Wenn das Gerät über zwei Routing-Engines verfügt und Sie die Ausführung eines Ereignisskripts auf beiden Routing-Engines aktivieren möchten, können Sie das Skript in das Verzeichnis /var/db/scripts/event oder /config/scripts/event auf beiden Routing-Engines kopieren, oder Sie können den commit synchronize scripts
Befehl zum Synchronisieren der Konfiguration ausführen und die Skripts als Teil des Commit-Vorgangs auf die andere Routing-Engine kopieren.
Sie müssen ein Ereignisskript aktivieren, bevor es ausgeführt werden kann. Um ein Ereignisskript zu aktivieren, fügen Sie die file filename
Anweisung auf Hierarchieebene [edit event-options events-script]
ein, und geben Sie den Namen der Datei an, die das Ereignisskript enthält. Nur Benutzer, die der Junos-Anmeldeklasse super-user
angehören, können Ereignisskripts aktivieren.
[edit event-options event-script] user@host# set file filename
SLAX- und Python-Skripte müssen die Dateinamenerweiterung .slax bzw. .py sowohl im tatsächlichen Skriptnamen als auch im Dateinamen in der Konfiguration enthalten. XSLT-Skripts benötigen keine Dateinamenerweiterung, es wird jedoch dringend empfohlen, die Erweiterung .xsl anzufügen. Unabhängig davon, ob Sie die Erweiterung .xsl in die Datei aufnehmen möchten oder nicht, muss der Dateiname, den Sie auf Hierarchieebene [edit event-options event-script file]
hinzufügen, genau mit dem Dateinamen des Skripts im Verzeichnis übereinstimmen. Wenn der Dateiname des XSLT-Skripts beispielsweise script1.xsl lautet, müssen Sie script1.xsl in die Konfigurationshierarchie aufnehmen, um das Skript zu aktivieren. Wenn der Dateiname des XSLT-Skripts script1 lautet, müssen Sie script1 in die Konfigurationshierarchie aufnehmen.
Standardmäßig können Sie keine unsignierten Python-Skripts auf Geräten ausführen, auf denen Junos OS ausgeführt wird. Um die Ausführung von nicht signierten Python-Automatisierungsskripts zu ermöglichen, die die Anforderungen erfüllen, die unter Anforderungen für die Ausführung von Python-Automatisierungsskripts auf Junos-Geräten beschrieben sind, müssen Sie die language python
oder-Anweisung language python3
auf Hierarchieebene [edit system scripts]
konfigurieren.
[edit system scripts] user@host# set language (python | python3)
Standardmäßig führt Junos OS Python-Ereignisskripts mit den Zugriffsrechten des generischen, nicht privilegierten Benutzers und der Gruppe nobody
aus. Ab Junos OS Version 16.1R3 können Sie den Benutzer angeben, unter dessen Zugriffsrechten das Python-Skript ausgeführt wird. Um ein Python-Ereignisskript unter den Zugriffsrechten eines bestimmten Benutzers auszuführen, konfigurieren Sie die python-script-user username
Anweisung auf Hierarchieebene [edit event-options event-script file filename]
.
[edit event-options event-script file filename] user@host# set python-script-user username
Damit ein Benutzer, der nicht zur Benutzer- oder Gruppenklasse der Datei gehört, ein unsigniertes Python-Automatisierungsskript ausführen kann, müssen die Dateiberechtigungen des Skripts die Leseberechtigung für andere enthalten.
Um zu ermitteln, welche Ereignisskripte derzeit auf dem Gerät aktiviert sind, verwenden Sie den show
Befehl, um die auf Hierarchieebene [edit event-options event-script]
konfigurierten Dateien anzuzeigen.
[edit event-options event-script] user@host# show
Um sicherzustellen, dass sich die aktivierten Dateien auf dem Gerät befinden, listen Sie den Inhalt des Verzeichnisses / var/run/scripts/event/ mit dem file list /var/run/scripts/event
Befehl operational mode auf.
user@host> file list /var/run/scripts/event
Wenn Sie den commit
Befehl absetzen, werden auf der Hierarchieebene konfigurierte Ereignisskripts im Systemspeicher abgelegt und für die [edit event-options event-script]
Ausführung aktiviert. Nach Abschluss des Commitvorgangs kann eine Ereignisrichtlinie ein Ereignisskript als Reaktion auf eine Ereignisbenachrichtigung ausführen.
super-user
gehören, und nur der Dateibesitzer kann Schreibberechtigungen für die Datei haben.