
Ich verwende Security Onion unter Ubuntu 16.04. Einige der primären Dienste (SGUIL, PCAP, Snort) haben gestern, am 9.6.2019, aufgehört zu funktionieren. In den Protokollen jedes dieser Dienste finde ich den folgenden Eintrag:
/usr/bin/{service name}_agent.tcl: line 3: exec: tclsh: not found
Ich sehe die obige Meldung in den folgenden Protokollen:
pcap_agent.log
snort_agent.log
squild.log
Jedes der oben genannten Protokolle verweist auf eine zugehörige .tcl-Datei im Verzeichnis /usr/bin (z. B. pcap_agent.tcl, snort_agent.tcl und sguild). Jede dieser Dateien enthält ganz oben die folgenden drei Zeilen:
#!/bin/sh
# Run tcl from users PATH \
exec tclsh "$0" "$@"
Ich habe eine Forumsseite gefunden, auf der stand, dass die Version von tcl alt sei und mit dem sudo apt-get install tcl
Befehl aktualisiert werden müsse. Wenn ich diesen Befehl jedoch ausführe, um es zu aktualisieren, wird angezeigt, dass tcl bereits auf der neuesten Version (8.6.0+9) läuft.
Dies ist das erste Mal, dass ich mit .tcl-Dateien in Berührung komme, daher recherchiere/lerne ich nebenbei und habe diesen Fehler ausführlich im Internet, in Foren usw. recherchiert, aber bisher nichts Hilfreiches gefunden.
Kann mir bitte jemand helfen? Dies wirkt sich auf unsere Produktionsmaschine aus und ich muss das beheben. Bei Bedarf kann ich Protokolldateien usw. bereitstellen.
Vielen Dank im Voraus, Jeff S.
Antwort1
Das exec tclsh
Fragment weist Sie an, in jedem Verzeichnis in Ihrer Umgebungsvariable nach Folgendem $SHELL
zu suchen . Überprüfen Sie Folgendes : tclsh
$PATH
$PATH
echo "$PATH" | tr ":" "\n"
tclsh
ist /usr/bin/tclsh
, also /usr/bin
muss es in Ihrer Nähe sein, $PATH
um exec tclsh
es zu finden.
tclsh
ist im tcl
Paket:
walt@fox:~(0)$ type -p tclsh
/usr/bin/tclsh
walt@fox:~(0)$ dpkg -S $(type -p tclsh)
tcl: /usr/bin/tclsh
walt@fox:~(0)$ dpkg -L tcl
/.
/usr
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/doc
/usr/share/doc/tcl
/usr/share/doc/tcl/README.Debian
/usr/share/doc/tcl/changelog.gz
/usr/share/doc/tcl/copyright
/usr/share/man
/usr/share/man/man1
/usr/bin
/usr/share/man/man1/tclsh.1.gz
/usr/bin/tclsh
Sie können das tcl
Paket wie folgt neu installieren:
sudo apt-get install --reinstall tcl