Cada novo usuário que conecta gera uma nova sessão sshd
com um PID específico. Você pode usar pstree
para imprimir quais comandos são herdados de qual sshd
session e, em seguida, verificar esse PID em /var/log/auth.log
.
Exemplo (anonimizado): Eu entrei em um servidor remoto com 3 sessões simultâneas, com o mesmo usuário remoto. Agora quero descobrir de qual IP veio o cliente 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 comando watch
é herdado de sshd
com PID 15243. grep
ing para este PID em /var/auth/auth.log
mostra que foi 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 para esse usuário, isso não pode ser feito pelo que eu vejo quando todos os usuários remotos estão usando o mesmo usuário SSH local. Além disso, pode ser facilmente falsificado / inactivado / etc, por isso não é realmente confiável. Se ele for salvo no arquivo de histórico, você poderá procurar o comando cp
e olhar para trás no arquivo, mas se ele não estiver lá, não há muito o que fazer.