Last
“最後”在哪裡儲存使用者主機名?
我正在調查:’last -d’ 命令。
-d: For non-local logins, Linux stores not only the host name of the remote host but its IP number as well. This option translates the IP number back into a hostname.
起初,我在看類似的問題,特別是這個: ’last -d’真的很慢
在我更新主機文件並添加: 0.0.0.0 localhost 之前,我收到的主機名更少,IP 地址更多。這意味著 Linux 將主機名儲存在作業系統的某個位置,如果是這種情況,是否有任何方法可以在沒有命令的情況下訪問主機名
last -d
?
據了解
man last
,我的 Arch Linux 系統將登錄資訊儲存在/var/log/wtmp
. 它看起來是二進制格式的——也就是說,通常的文本工具只會顯示它的一部分。此命令:
xxd /var/log/wtmp | more
向我顯示文本格式的點分四組 IP 地址和完全限定的 DNS 名稱。我編寫了以下小程序來向我展示
/var/log/utmp
. 似乎並非每個條目都有主機名/IP 地址,並且二進制格式只有很小的固定主機名空間。#include <stdio.h> #include <utmp.h> int main(int ac, char **av) { struct utmp *utmpp; utmpname("/var/log/wtmp"); while (NULL != (utmpp = getutent())) { printf("%s\n", utmpp->ut_host); } endutent(); return 0; }