Os serviços pararam de funcionar - exec: tclsh: não encontrado

Os serviços pararam de funcionar - exec: tclsh: não encontrado

Estou executando o Security Onion no Ubuntu 16.04. Alguns dos serviços primários (SGUIL, PCAP, Snort) deixaram de funcionar ontem, 09/06/2019. Nos logs de cada um desses serviços encontro a seguinte entrada:

/usr/bin/{service name}_agent.tcl:  line 3:  exec:  tclsh:  not found

Vejo a mensagem acima nos seguintes logs:

pcap_agent.log
snort_agent.log
squild.log

Cada um dos logs acima faz referência a um arquivo .tcl associado no diretório /usr/bin (ou seja, pcap_agent.tcl, snort_agent.tcl e sguild). Cada um desses arquivos possui as três linhas a seguir no topo do arquivo:

#!/bin/sh
# Run tcl from users PATH \
exec tclsh "$0" "$@"

Encontrei uma página do fórum que sugeria que a versão do tcl era antiga e precisava ser atualizada com o sudo apt-get install tclcomando. No entanto, quando executo esse comando para atualizá-lo, ele afirma que o tcl já está na versão mais recente (8.6.0+9).

Esta é a primeira vez que fui exposto a arquivos .tcl, então estou pesquisando/aprendendo rapidamente e pesquisei esse erro extensivamente na Internet, fóruns, etc., mas ainda não encontrei nada útil.

Existe alguém que possa me ajudar? Isso está impactando nossa máquina de produção e preciso consertar isso. Posso fornecer arquivos de log, etc., se necessário.

Agradecemos antecipadamente, Jeff S.

Responder1

O exec tclshfragmento diz para você $SHELLprocurar tclshem cada um dos diretórios da sua $PATHvariável de ambiente. Inspecione seu $PATH:

echo "$PATH" | tr ":" "\n"

tclshé /usr/bin/tclsh, então /usr/bindeve estar em seu $PATHfor exec tclshpara encontrá-lo.

tclshestá no tclpacote:

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

Você pode reinstalar o tclpacote com:

sudo apt-get install --reinstall tcl

informação relacionada