Я выполняю Лук безопасности на Ubuntu 16.04. Несколько основных сервисов (SGUIL, PCAP, Фырканье) прекратили работать вчера, 09.06.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
команда. Однако, когда я выполняю это commnand для обновления его, это указывает, что tcl уже находится на новейшей версии (8.6.0+9).
Это является первым, я был подвергнут .tcl файлам, таким образом, я исследую/изучаю на лету, и исследовал эту ошибку экстенсивно в Интернете, форумах, и т.д., но должен все же найти что-либо полезным.
Есть ли кто-либо, кто может помочь мне? Это влияет на нашу производственную машину, и я должен получить зафиксированный. Я могу обеспечить файлы журнала и т.д. в случае необходимости.
Заранее спасибо, Jeff S.
Фрагмент 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