/dev/pts/Nに関連する物理マシンを探す

/dev/pts/Nに関連する物理マシンを探す

私のオペレーティングシステムにsshを介してログインする複数のユーザーがいる場合は、各/ dev / pts / N(ここでNは整数)に関連付けられている物理システムを見つける方法はありますか?私が知っているすべては

WHO

そして

補助キー

このコマンドはデバイスファイルに関連付けられているユーザーまたはプロセスを表示しますが、ユーザー/プロセスが発生した実際のシステムに関する詳細情報を取得できますか?おそらくIPですか?

答え1

たとえば、SSH(およびmosh)は実際にutmp/ファイルを入力し、リモートIPアドレスを含むいくつかの有用な情報を読み取ります。wtmpwholast

~$ who
...
ilkkachu  pts/26       2022-05-03 16:27 (127.0.0.1)
$ last -1a
ilkkachu  pts/26       Tue May  3 16:27   still logged in    127.0.0.1

正しいtty名を見つけるためにgrepが欲しいかもしれません。

$ who | grep "pts/26"
ilkkachu  pts/26       2022-05-03 16:27 (127.0.0.1)

あるいは、開かれたファイルのリストを追跡して、tty で fd を保持する SSH プロセスを見つけて、対応するネットワークソケットを見つけることもできます。

答え2

擬似端末は、「物理機械」に関連付けられていません。これは、実行中のプロセス(sshセッション、GUIターミナルウィンドウ、screen / tmuxウィンドウなど)に関連付けられます。これを使用して、psどのプロセスが特定のデバイスを使用しているかを見つけ、そこからpts逆追跡できます。

実行したい操作にはss(またはnetstat)コマンドがより便利です。たとえば、次のコマンドを実行して、アクティブなSSH接続に関連付けられているリモートアドレスを見つけることができます。

$ ss -tnp | grep sshd | grep ESTAB
ESTAB      0      0      192.168.1.200:22                 1.2.3.4:39240               users:(("sshd",pid=2706,fd=3))
ESTAB      0      0      192.168.1.200:22                 4.3.2.1:39242               users:(("sshd",pid=2809,fd=3),("sshd",pid=2771,fd=3))

関連情報