Jeder neue Benutzer, der eine Verbindung herstellt, erzeugt eine neue sshd
Sitzung mit einer bestimmten PID. Sie können pstree
drucken, welche Befehle von welcher sshd
Sitzung geerbt werden , und diese PID dann überprüfen /var/log/auth.log
.
Beispiel (anonymisiert): Ich habe mich mit 3 gleichzeitigen Sitzungen bei einem Remote-Server mit demselben Remote-Benutzer angemeldet. Ich möchte jetzt herausfinden, von welcher IP der Client kam, der den Befehl ausgeführt hat 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
zeigt, dass der watch
Befehl von sshd
PID 15243 geerbt wurde. Wenn grep
für diese PID in /var/auth/auth.log
gezeigt wird, dass IP 12.34.56.78 diese Sitzung gestartet hat. Daher ist dies auch der Benutzer, der gestartet hat watch
.
Das Finden history
für speziell diesen Benutzer kann nicht anhand dessen erfolgen, was ich sehen kann, wenn alle Remotebenutzer denselben lokalen SSH-Benutzer verwenden. Außerdem kann es leicht gefälscht / inaktiviert / usw. werden, so dass es nicht wirklich zuverlässig ist. Wenn es in der Verlaufsdatei gespeichert ist, können Sie einfach nach dem cp
Befehl suchen und in der Datei rückwärts schauen. Wenn er jedoch nicht vorhanden ist, gibt es nicht viel zu tun.
grep: /var/log/auth.log: No such file or directory
:-(