Ogni nuovo utente che si connette genera un nuovo sshd sessione con un PID specifico. Potresti usare pstree per stampare quali comandi sono ereditati da quale sshd sessione, quindi eseguire un controllo incrociato di questo PID in /var/log/auth.log .
Esempio (anonimizzato):ho effettuato l'accesso a un server remoto con 3 sessioni simultanee, con lo stesso utente remoto. Ora voglio scoprire da quale IP proviene il client che ha eseguito il 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 che il watch comando è ereditato da sshd con PID 15243. grep ing per questo PID in /var/auth/auth.log mostra che è stato l'IP 12.34.56.78 ad avviare questa sessione. Pertanto questo è anche l'utente che ha avviato watch .
Per quanto riguarda la ricerca di history per questo utente in particolare, non può essere fatto da quello che posso vedere quando tutti gli utenti remoti utilizzano lo stesso utente SSH locale. Inoltre, può essere facilmente contraffatto/inattivato/ecc., quindi non è realmente affidabile. Se viene salvato nel file della cronologia, puoi semplicemente cercare cp comando e guarda indietro nel file, ma se non c'è, allora non c'è molto da fare.