
Я использую Security Onion на Ubuntu 16.04. Несколько основных служб (SGUIL, PCAP, Snort) перестали работать вчера, 6/9/2019. В журналах каждой из этих служб я нахожу следующую запись:
/usr/bin/{service name}_agent.tcl: line 3: exec: tclsh: not found
Я вижу указанное выше сообщение в следующих журналах:
pcap_agent.log
snort_agent.log
squild.log
Каждый из приведенных выше журналов ссылается на связанный файл .tcl в каталоге /usr/bin (т.е. pcap_agent.tcl, snort_agent.tcl и sguild). Каждый из этих файлов имеет следующие три строки в самом верху файла:
#!/bin/sh
# Run tcl from users PATH \
exec tclsh "$0" "$@"
Я нашел одну страницу форума, которая предположила, что версия tcl устарела и ее нужно обновить с помощью sudo apt-get install tcl
команды. Однако, когда я запускаю эту команду для обновления, она сообщает, что tcl уже находится на последней версии (8.6.0+9).
Это мой первый опыт работы с файлами .tcl, поэтому я изучаю/учусь на ходу. Я тщательно изучил эту ошибку в Интернете, на форумах и т. д., но пока не нашел ничего полезного.
Есть ли кто-нибудь, кто может мне помочь? Это влияет на нашу производственную машину, и мне нужно это исправить. Я могу предоставить файлы журналов и т. д., если нужно.
Заранее благодарю, Джефф С.
решение1
Фрагмент exec tclsh
говорит вам $SHELL
искать tclsh
в каждом из каталогов в вашей $PATH
переменной среды. Проверьте ваш $PATH
:
echo "$PATH" | tr ":" "\n"
tclsh
есть /usr/bin/tclsh
, поэтому /usr/bin
должно быть в вашем $PATH
для, exec tclsh
чтобы найти его.
tclsh
в tcl
упаковке:
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
Вы можете переустановить tcl
пакет с помощью:
sudo apt-get install --reinstall tcl