Cada novo usuário que se conectar gera uma nova sshd
sessão com um PID específico. Você pode usar pstree
para imprimir quais comandos são herdados de qual sshd
sessão e depois fazer a verificação cruzada desse PID /var/log/auth.log
.
Exemplo (anonimizado): Entrei em um servidor remoto com 3 sessões simultâneas, com o mesmo usuário remoto. Agora eu quero descobrir de qual IP o cliente veio que executou o comando watch date
.
$ pstree -p | grep watch
| |-sshd(15243)---sshd(15342)---bash(15343)---watch(15450)
$ sudo grep 15243 /var/log/auth.log
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: Accepted publickey for XXXXXXXXXX from 12.34.56.78 port 48218 ssh2
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: pam_unix(sshd:session): session opened for user XXXXXXXXXX by (uid=0)
Mar 7 15:37:44 XXXXXXXXXX sudo: XXXXXXXXXX : TTY=pts/7 ; PWD=/home/XXXXXXXXXX ; USER=root ; COMMAND=/bin/grep 15243 /var/log/auth.log
pstree -p
mostra que o watch
comando é herdado do sshd
PID 15243. grep
ing para esse PID /var/auth/auth.log
mostra que foi o IP 12.34.56.78 que iniciou esta sessão. Portanto, este também é o usuário que iniciou watch
.
Quanto a encontrar history
especificamente esse usuário, isso não pode ser feito pelo que posso ver quando todos os usuários remotos estão usando o mesmo usuário SSH local. Além disso, ele pode ser facilmente falsificado / inativado / etc., Portanto, não é realmente confiável. Se ele estiver salvo no arquivo de histórico, você poderá procurar o cp
comando e retroceder no arquivo, mas se não estiver lá, não há muito o que fazer.
grep: /var/log/auth.log: No such file or directory
:-(