Каждый новый подключающийся пользователь порождает новый сеанс 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
с PID 15243. grep
ИНГ для этого PID в /var/auth/auth.log
показывает , что это IP 12.34.56.78 , который начал эту сессию. Поэтому это также пользователь, который начал watch
.
Что касается поиска history
конкретно для этого пользователя, это не может быть сделано из того, что я вижу, когда все удаленные пользователи используют одного и того же локального пользователя SSH. Кроме того, он может быть легко подделан / деактивирован и т.д., Поэтому он не очень надежен. Если он сохранен в файле истории, вы можете просто найти команду cp
и заглянуть в файл назад, но если ее там нет, то делать особо нечего.