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

Peter Hayek
fonte
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
fonte
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