Setiap pengguna baru yang terhubung menghasilkan sshd
sesi baru dengan PID tertentu. Anda bisa menggunakan pstree
untuk mencetak perintah mana yang diwarisi dari sshd
sesi 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 -p
menunjukkan bahwa watch
perintah diwarisi dari sshd
dengan PID 15243. grep
ing untuk PID ini di /var/auth/auth.log
menunjukkan bahwa itu adalah IP 12.34.56.78 yang memulai sesi ini. Karena itu, ini juga pengguna yang memulai watch
.
Adapun untuk menemukan history
secara 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 cp
perintah 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
:-(