Každý nový uživatel, který se připojí, vytvoří nový sshd
relace s konkrétním PID. Můžete použít pstree
vytisknout, které příkazy jsou zděděny od kterého sshd
relaci a poté křížově zkontrolujte toto PID v /var/log/auth.log
.
Příklad (anonymizovaný):Přihlásil jsem se ke vzdálenému serveru se 3 simultánními relacemi se stejným vzdáleným uživatelem. Nyní chci zjistit, ze které IP přišel klient, který spustil příkaz 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
ukazuje, že watch
příkaz je zděděn z sshd
s PID 15243. grep
ing pro toto PID v /var/auth/auth.log
ukazuje, že tuto relaci zahájilo IP 12.34.56.78. Proto je to také uživatel, který spustil watch
.
Pokud jde o nalezení history
konkrétně pro tohoto uživatele to nelze provést z toho, co vidím, když všichni vzdálení uživatelé používají stejného místního uživatele SSH. Také může být snadno podvržen/inaktivován/atd., takže není opravdu spolehlivý. Pokud je uložen do souboru historie, můžete hledat cp
příkaz a podívejte se zpět v souboru, ale pokud tam není, pak není moc co dělat.