Jeder neue Benutzer, der eine Verbindung herstellt, erzeugt eine neue sshdSitzung mit einer bestimmten PID. Sie können pstreedrucken, welche Befehle von welcher sshdSitzung 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 -pzeigt, dass der watchBefehl von sshdPID 15243 geerbt wurde. Wenn grepfür diese PID in /var/auth/auth.loggezeigt wird, dass IP 12.34.56.78 diese Sitzung gestartet hat. Daher ist dies auch der Benutzer, der gestartet hat watch.
Das Finden historyfü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 cpBefehl 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:-(