Jeder neue Benutzer, der sich verbindet, erzeugt einen neuen sshd
Sitzung mit einer bestimmten PID. Sie könnten pstree
verwenden zu drucken, welche Befehle von welchem sshd
geerbt werden Sitzung, und überprüfen Sie dann diese PID in /var/log/auth.log
.
Beispiel (anonymisiert):Ich habe mich bei einem Remote-Server mit 3 gleichzeitigen Sitzungen mit demselben Remote-Benutzer angemeldet. Ich möchte nun herausfinden, von welcher IP der Client kam, der den Befehl watch date
ausgeführt hat .
$ 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
zeigt, dass die watch
Befehl wird von sshd
geerbt mit PID 15243. grep
ing für diese PID in /var/auth/auth.log
zeigt, dass es die IP 12.34.56.78 war, die diese Sitzung gestartet hat. Daher ist dies auch der Benutzer, der watch
gestartet hat .
Was das Finden von history
betrifft Für speziell diesen Benutzer ist dies nicht möglich, wenn alle Remotebenutzer denselben lokalen SSH-Benutzer verwenden. Außerdem kann es leicht gefälscht/deaktiviert/etc. werden, also ist es nicht wirklich zuverlässig. Wenn es in der Verlaufsdatei gespeichert ist, können Sie einfach nach cp
suchen Befehl und schauen Sie rückwärts in der Datei, aber wenn es nicht da ist, dann gibt es nicht viel zu tun.