2

Есть ли способ показать всю цепочку ssh и su в bash?

Например. На сервере A от имени пользователя aa:

su - ab
ssh ba@B
su - bb

Таким образом, я хотел бы команду, которая печатает что-то вроде этого:

1 bash aa in A
2 su ab in A
3 ssh ba in B
4 su bb in B

Я пробовал pstree, но он не печатает пользователей и работает только с процессами последнего ssh'ед-сервера:

$ pstree | grep -C 5 pstree
serversshd---sshd---sshd---bash---su---bash-+-grep
     |                                       `-pstree

Спасибо и всего наилучшего.

1 ответ1

0

Вот что вы можете легко найти (сервер, с которого вы пришли):

$ who
ba     pts/0        2012-11-14 22:47 (<A hostname>)

Я не думаю, что есть какой-либо доступный способ получить вашу полную историю bash/ssh/su . Вот что я бы посоветовал пойти немного дальше, чем ваше оригинальное pstree . Но это очень схематично.

Получение sshd pid:

$ pstree -p | grep -B1 pstree
    |-sshd(8259)---sshd(23962)---bash(23965)-+-grep(24390)
    |                                        `-pstree(24389)

Это позволяет узнать, какой порт на сервере A подключен к sshd на B :

$ lsof -i -P | grep 23962
sshd      23962        ba    3r  IPv4 36943568       TCP B:22->A:50174 (ESTABLISHED)

Тогда вы можете посмотреть, кто использует этот порт на A :

$  lsof -i -P| grep 50174
ssh       19085        ab    3u  IPv4 0x81104c4d3b4ee24d      0t0  TCP A:50174->B:22 (ESTABLISHED)

Теперь вы можете использовать 19085 с pstree, чтобы выяснить, что было сделано на A

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .