信息来源——指挥者

信息来源——指挥者

我想知道该命令如何将历史"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))。在 FreeBSD 上,who打开/var/run/utx.active.

您还可以在who --helpman 1 who甚至info who提到默认文件的地方找到此信息。

答案2

看一下 who 的手册页。例如“如果未指定 FILE,则使用 /var/run/utmp。”

这不是一个文本文件,因此打开时vi将无法看到文件内容。 od -c /var/run/utmp | more会服务得更好。

相关内容