Setiap pengguna baru yang terhubung menghasilkan sshdsesi baru dengan PID tertentu. Anda bisa menggunakan pstreeuntuk mencetak perintah mana yang diwarisi dari sshdsesi mana , dan kemudian periksa silang PID ini /var/log/auth.log.
Contoh (dianonimkan): Saya masuk ke server jauh dengan 3 sesi simultan, dengan pengguna jarak jauh yang sama. Saya sekarang ingin mencari tahu dari IP mana klien datang yang menjalankan perintah 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 -pmenunjukkan bahwa watchperintah diwarisi dari sshddengan PID 15243. greping untuk PID ini di /var/auth/auth.logmenunjukkan bahwa itu adalah IP 12.34.56.78 yang memulai sesi ini. Karena itu, ini juga pengguna yang memulai watch.
Adapun untuk menemukan historysecara khusus pengguna ini, itu tidak dapat dilakukan dari apa yang dapat saya lihat ketika semua pengguna jarak jauh menggunakan pengguna SSH lokal yang sama. Juga, itu dapat dengan mudah dipalsukan / tidak diaktifkan / dll, jadi itu tidak benar-benar dapat diandalkan. Jika disimpan ke file histori, maka Anda bisa mencari cpperintah dan melihat kebelakang dalam file, tetapi jika tidak ada, maka tidak ada banyak yang harus dilakukan.
grep: /var/log/auth.log: No such file or directory:-(