"who"
このコマンドが履歴情報をssh
Linuxシステムに抽出する方法を知りたいです。たとえば、私の共有ネットワークワークステーションでは、誰もが次にssh
アクセスできます。
[johny@gandor ~]$ who
johny :0 2018-08-30 06:44 (:0)
johny pts/0 2018-08-30 06:45 (:0.0)
johny pts/1 2018-08-30 06:45 (:0.0)
Keiven pts/2 2018-08-30 19:46 (:50.0)
seman pts/6 2018-08-31 15:15 (:50.0)
johny pts/7 2018-08-31 15:51 (:50.0)
casper pts/8 2018-08-31 16:53 (:50.0)
johny pts/10 2018-09-01 06:25 (:50.0)
この情報は最初にLinuxシステムファイルのどこかに保存され、このコマンドがその"who"
ファイルからその情報を読み取ると仮定します。では、このファイルはどこにありますか?
答え1
実行すると、開いているstrace -e open who
すべてのファイルが表示されますwho
。 Linuxでは例が含まれています/var/run/utmp
。utmp
いいえこれは人間が読めるファイルではなくutmp
一連の構造です(参考資料を参照utmpx(5)
)。who
FreeBSDでは/var/run/utx.active
。
基本ファイルが記載されている場所でもこの情報を見つけることwho --help
ができます。man 1 who
info who
答え2
whoのマニュアルページを見てください。たとえば、「FILE を指定しないと、/var/run/utmp が使用されます。」
このファイルはテキストファイルではないため、開いたvi
ときにファイルの内容は表示されません。 od -c /var/run/utmp | more
より良いサービスを提供します。