Кожен новий користувач, який підключається, породжує новий sshd
сеанс із певним PID. Ви можете використовувати pstree
для друку, які команди успадковуються з якого sshd
сеансу, а потім перехресно перевірити цей PID /var/log/auth.log
.
Приклад (анонімізований): я увійшов на віддалений сервер із 3 одночасними сеансами, з тим самим віддаленим користувачем. Тепер я хочу дізнатися, з якого IP-коду прийшов клієнт, який запустив команду 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
показує , що watch
команда успадкований від sshd
ПИДА 15243. grep
Інг для цього PID в /var/auth/auth.log
показуєш , що він був IP 12.34.56.78 , який почав цю сесію. Тому це також користувач, який запустився watch
.
Що стосується пошуку history
конкретно цього користувача, його неможливо зробити з того, що я бачу, коли всі віддалені користувачі використовують одного локального SSH-користувача. Крім того, це може бути легко підроблено / інактивовано / тощо., Тому це не дуже надійно. Якщо він збережений у файлі історії, ви можете просто шукати cp
команду і озиратися назад у файлі, але якщо його немає, то робити не багато.
grep: /var/log/auth.log: No such file or directory
:-(