Setiap pengguna baru yang terhubung memunculkan sshd
baru sesi dengan PID tertentu. Anda bisa menggunakan pstree
untuk mencetak perintah mana yang diwarisi dari sshd
mana sesi, lalu periksa silang PID ini di /var/log/auth.log
.
Contoh (anonim):Saya masuk ke server jarak jauh dengan 3 sesi simultan, dengan pengguna jarak jauh yang sama. Sekarang saya ingin mengetahui dari IP mana klien berasal 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
untuk PID ini di /var/auth/auth.log
menunjukkan bahwa IP 12.34.56.78 yang memulai sesi ini. Oleh karena itu, ini juga merupakan pengguna yang memulai watch
.
Adapun untuk menemukan history
khusus untuk pengguna ini, itu tidak dapat dilakukan dari apa yang saya lihat ketika semua pengguna jarak jauh menggunakan pengguna SSH lokal yang sama. Selain itu, dapat dengan mudah dipalsukan/dinonaktifkan/dll., jadi tidak terlalu dapat diandalkan. Jika disimpan ke file histori, maka Anda tinggal mencari cp
perintah dan lihat ke belakang dalam file, tetapi jika tidak ada, maka tidak banyak yang bisa dilakukan.