Script que inicia toda vez que eu digito um certo comando


1

Então, basicamente, cada vez que um usuário usa o comando ssh, eu quero lançar um script que busca o nome de usuário e a hora em que ele digitou o ipaddress para o qual deseja enviar ssh e enviá-los para o servidor para o qual ele está tentando ssh.

Isso é possível? e qual comando pode fazer isso.

obrigado


3
Alias ssh para um script que faz o que você quer.
qasdfdsaq

Veja minha resposta para um exemplo
Daniel

Respostas:


2

Supondo que você esteja em uma máquina baseada em nix, você pode usar este script:

# ssh script to grab username, date/time, and destination

first=`echo "$*" | cut -d "@" -f 1`
last=`echo "$*" | cut -d "@" -f 2`

time=`date`
ip=`echo $last | cut -d " " -f 1`
user=`echo $first | rev | cut -d " " -f 1 | rev`

echo "At $time, $USER on $HOSTNAME attempted to ssh to $user@$ip" >> sshlog.txt

ssh $*

endtime=`date`
echo "At $endtime, $USER on $HOSTNAME exited an ssh session to $user@$ip" >> sshlog.txt

Apenas alias ssh para a localização deste script, por ex. alias ssh=/home/bob/bin/ssh e tudo deveria funcionar.


Daniel! obrigado! funcionou perfeitamente meu problema foi esquecendo o ssh no final .. Você sabe como enviar a mesma mensagem quando o usuário sai do ssh? Existe uma maneira de fazer isso também? então o log irá armazenar quando o usuário logar e quando ele sair
Peter Hayek

Vou editar para dar essa informação
Daniel

Lá. Além disso, tenha em mente que, se você remover >> sshlog.txt a partir dessas linhas de eco, essa informação será exibida na tela.
Daniel

Se eu fosse uma garota, eu me casaria com você. obrigado..
Peter Hayek

Bem, você seria a primeira garota que já se interessou por mim.
Daniel
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.