本教程將向您展示如何使用 Linux 查找上次登錄的用戶。 last
, lastb
什麼時候 lastlog
命令和示例。
Linux 系統管理員應該定期檢查用戶何時登錄到他們的 Linux 服務器。它顯示了有用的詳細信息,例如有多少用戶處於活動狀態,有多少用戶處於非活動狀態,以及他們登錄的時間和時長。如果某些用戶帳戶長時間未使用,則可以在不再需要時簡單地將其鎖定。您還可以在審核 Linux 服務器時使用上次登錄日期來調查可能導致問題的用戶。幸運的是,GNU/Linux 操作系統包括三個命令。 last
, lastb
什麼時候 lastlog
顯示用戶上次登錄的日期。
內容
1.使用last命令列出Linux上最後登錄的用戶。
顧名思義, last
使用該命令在 Linux 和類 Unix 系統上顯示最後登錄的用戶。那是 /var/log/wtmp
創建一個文件並查找自該文件創建以來登錄和註銷的所有用戶。您還可以列出特定用戶的最近登錄日期。 誰重啟了Linux系統 在…的幫助下 last
命令。
請注意系統只記錄信息 wtmp
文檔。如果由於某種原因此文件不可用,請使用以下命令創建它: touch
命令是:
$ sudo touch /var/log/wtmp
讓我們檢查一下上次登錄的日期和時間 last
命令。
要查看 Linux 系統的上次登錄、登錄時間等信息,只需運行以下命令即可:
$ last
示例輸出:
ostechni pts/0 192.168.225.37 Thu Jan 7 08:30 still logged in
ostechni tty1 Thu Jan 7 08:29 still logged in
reboot system boot 5.4.0-53-generic Thu Jan 7 08:20 still running
reboot system boot 5.4.0-48-generic Fri Nov 20 10:13 - 11:44 (01:31)
.
.
.
reboot system boot 5.4.0-33-generic Wed Jul 8 08:49 - 11:41 (02:52)
ostechni web console Mon Jul 6 08:19 - 08:20 (00:00)
ostechni pts/2 192.168.225.37 Mon Jul 6 08:14 - 08:30 (00:15)
ostechni pts/0 192.168.225.37 Mon Jul 6 07:41 - 12:27 (04:45)
reboot system boot 5.4.0-33-generic Mon Jul 6 07:21 - 12:27 (05:06)
ostechni pts/3 192.168.225.37 Sat Jul 4 12:01 - 12:12 (00:10)
ostechni pts/2 192.168.225.37 Sat Jul 4 11:14 - 13:01 (01:46)
ostechni pts/0 192.168.225.37 Sat Jul 4 07:55 - 13:01 (05:05)
reboot system boot 5.4.0-33-generic Sat Jul 4 07:53 - 13:03 (05:09)
ostechni tty1 Fri May 29 10:07 - down (00:00)
reboot system boot 5.4.0-33-generic Fri May 29 10:06 - 10:07 (00:01)
ostechni pts/0 192.168.225.37 Fri May 29 09:36 - 10:06 (00:29)
ostechni tty1 Fri May 29 09:36 - down (00:29)
reboot system boot 5.4.0-31-generic Fri May 29 09:35 - 10:06 (00:30)
ostechni tty1 Sun May 24 13:17 - down (00:02)
reboot system boot 5.4.0-31-generic Sun May 24 13:16 - 13:20 (00:03)
wtmp begins Sun May 24 13:16:52 2020
從上面的輸出中可以看出,最後一個命令提供了有關最近登錄的以下詳細信息:
- 用戶名。如果用戶仍處於登錄狀態,還會顯示詳細信息。
- 會話發生的終端設備類型(例如 tty 或 pts)。
- 用戶登錄的源 IP 地址或主機名。
- 登錄日期和時間戳(即登錄會話開始和停止的時間)。
- 總會話時間。
- 最後一行給出最早記錄會話的日期和時間
wtmp
日誌文件。
您可能已經註意到在上面的輸出中有一個特殊的用戶登錄條目,名為: reboot
.這個 last
每次計算機啟動時,該命令都會記錄該用戶。
當我們跑步時 last
運行不帶選項的命令會顯示整個日誌輸出。它有許多選項可以根據您的喜好過濾、格式化和限制輸出。我已經包含了最常見選項的示例。
1.1. 限制特定用戶的輸出
正如剛才提到的, last
列出所有最近登錄記錄的命令 wtmp
文檔。例如,如果您想顯示特定用戶最近的登錄(即顯示特定用戶的所有登錄): 骨科,命令將是:
$ last ostechnix
示例輸出:
ostechni pts/0 192.168.225.37 Thu Jan 7 08:30 still logged in
ostechni tty1 Thu Jan 7 08:29 still logged in
ostechni pts/0 192.168.225.37 Wed Jan 6 11:02 - 13:31 (02:28)
[...]
您還可以指定多個用逗號分隔的用戶名,如下所示:
$ last ostechnix sk
1.2. 限制輸出到特定的 tty 或 pt
這個 last
此命令記錄發生會話的終端設備類型(tty、pts 等)。
例如,用戶可以在本地或通過 ssh 登錄到 Linux 機器。如果你想將輸出限制為特定的東西 tty
,無論如何運行:
$ last tty1
示例輸出:
ostechni tty1 Thu Jan 7 08:29 still logged in
ostechni tty1 Wed Jan 6 11:00 - down (02:31)
ostechni tty1 Fri Nov 20 11:52 - down (00:38)
[...]
tty 名稱可以省略。例如你可以運行 last 1
交換 last tty1
.
同樣,僅列出 pts
會話登錄,運行:
$ last pts/0
ostechni pts/0 192.168.225.37 Thu Jan 7 08:30 still logged in
ostechni pts/0 192.168.225.37 Wed Jan 6 11:02 - 13:31 (02:28)
sk pts/0 192.168.225.37 Wed Jan 6 11:02 - 11:02 (00:00)
[...]
您還可以使用 ttys 指定多個用戶名,如下所示:
$ last ostechnix sk pts/0 tty1
1.3. 限制輸出到一定的行數
這個 wtmp
日誌文件可能包含許多條目。如果你想限制輸出 last
排序並使用最多一定數量的行 -n
標誌是:
$ last -n 5
再次,
$ last -5
上面的命令只顯示了 5 行輸出。
ostechni pts/0 192.168.225.37 Thu Jan 7 08:30 still logged in
ostechni tty1 Thu Jan 7 08:29 still logged in
reboot system boot 5.4.0-53-generic Thu Jan 7 08:20 still running
ostechni pts/0 192.168.225.37 Wed Jan 6 11:02 - 13:31 (02:28)
sk pts/0 192.168.225.37 Wed Jan 6 11:02 - 11:02 (00:00)
wtmp begins Sun May 24 13:16:52 2020
1.4. 顯示主機名而不是 IP 地址
默認, last
命令 show user record it’s source ip 。 如果要顯示主機名而不是 IP 地址, -d
(還 --dns
) 選項:
$ last -d -5
您還可以在輸出中看到完整的用戶名和域名 -w
(還 --fullnames
) 可選的。
1.5. 隱藏主機名和 IP 地址
要抑制主機名或 IP 字段,請使用: -R
選項。
$ last -5 -R
示例輸出:
ostechni pts/0 Thu Jan 7 08:30 still logged in
ostechni tty1 Thu Jan 7 08:29 still logged in
reboot system boot Thu Jan 7 08:20 still running
ostechni pts/0 Wed Jan 6 11:02 - 13:31 (02:28)
sk pts/0 Wed Jan 6 11:02 - 11:02 (00:00)
wtmp begins Sun May 24 13:16:52 2020
1.6. 查看用戶特定時間的登錄記錄
這個 -p
(還 --present
) 選項用於搜索當前登錄或在指定時間登錄的用戶。
例如,運行以下命令以列出今天 8:30 上次登錄的用戶。
$ last -p 08:30
示例輸出:
ostechni tty1 Thu Jan 7 08:29 still logged in
reboot system boot 5.4.0-53-generic Thu Jan 7 08:20 still running
wtmp begins Sun May 24 13:16:52 2020
要列出當前登錄的用戶(即,在運行此命令時,請運行:
$ last -p now

1.7. 顯示特定時間段內登錄的用戶
這個 last
該命令有兩個選項。 -s
(--since
) 什麼時候 -t
(--until
) 查看特定時間段內登錄的用戶。這個 -s
顯示登錄狀態的選項和 -t
在指定時間之前顯示登錄狀態的選項。
例如, 2021-01-07
到達 2021-01-11
,命令是:
$ last -s 2021-01-07 -t 2021-01-11
示例輸出:
ostechni pts/0 192.168.225.37 Thu Jan 7 08:30 - 13:16 (04:46)
ostechni tty1 Thu Jan 7 08:29 - down (04:47)
reboot system boot 5.4.0-53-generic Thu Jan 7 08:20 - 13:16 (04:56)
wtmp begins Sun May 24 13:16:52 2020
查看最近登錄 昨天 到達 今天, 跑:
$ last -s yesterday -t today
如果只想列出從 2021 年 1 月 7 日到現在的登錄,請運行:
$ last -s 2021-01-07
ostechni pts/0 192.168.225.37 Mon Jan 11 06:39 still logged in
reboot system boot 5.4.0-59-generic Mon Jan 11 06:37 still running
ostechni pts/0 192.168.225.37 Thu Jan 7 08:30 - 13:16 (04:46)
ostechni tty1 Thu Jan 7 08:29 - down (04:47)
reboot system boot 5.4.0-53-generic Thu Jan 7 08:20 - 13:16 (04:56)
wtmp begins Sun May 24 13:16:52 2020
1.8. 顯示上次登錄用戶的完整日期和時間
這個 -F
(--fulltimes
) 顯示完整登錄和註銷日期和時間的選項 last
命令的輸出。
$ last -5 -F
示例輸出:
ostechni pts/0 192.168.225.37 Mon Jan 11 06:39:29 2021 still logged in
[...]
1.9. 在最後一列顯示主機名
這個 -a
(--hostlast
) 選項以最後顯示主機名列以防止截斷。
$ last -d -a
ostechni pts/0 Mon Jan 11 06:39 still logged in ostechnix
[...]
1.10. 顯示偽用戶’reboot’的上次登錄記錄
正如我之前所說,最後一條命令記錄了名為“restart”和“shutdown”的特殊偽用戶。
要查看“reboot”和“shutdown”用戶的最後登錄詳細信息,請使用以下命令:
$ last reboot
$ last shutdown
2. 在 Linux 上使用 lastb 查看失敗的登錄嘗試。
這個 lastb
什麼時候 last
命令,但它只列出所有錯誤的登錄嘗試。從失敗的登錄詳細信息中檢索 /var/log/btmp
文檔。
請注意系統只記錄信息 btmp
文件(如果存在)。如果由於某種原因該文件不可用,只需使用以下命令創建它: touch
命令是:
$ sudo touch /var/log/btmp
您現在可以使用 lastb 命令查看失敗的登錄嘗試,如下所示。
$ sudo lastb
示例輸出:
UNKNOWN tty1 Mon Jan 11 07:51 - 07:51 (00:00)
sk tty1 Mon Jan 11 07:51 - 07:51 (00:00)
UNKNOWN tty1 Mon Jan 11 07:51 - 07:51 (00:00)
sk tty1 Mon Jan 11 07:51 - 07:51 (00:00)
ostechni ssh:notty 192.168.225.37 Mon Jan 11 07:49 - 07:49 (00:00)
ostechni ssh:notty 192.168.225.37 Mon Jan 11 07:49 - 07:49 (00:00)
ostechni ssh:notty 192.168.225.37 Mon Jan 11 07:49 - 07:49 (00:00)
UNKNOWN tty1 Wed Jan 6 10:59 - 10:59 (00:00)
btmp begins Wed Jan 6 10:59:57 2021

上面的命令將列出 Linux 系統中所有用戶的所有失敗登錄嘗試。它還顯示通過 SSH 的失敗登錄嘗試。
3. 在Linux 上使用lastlog 命令查找最後登錄的用戶。
這個 最後記錄 使用該命令查看所有用戶或 Linux 和類 Unix 操作系統上特定用戶的最近登錄。獲取最後登錄的用戶列表 /var/log/lastlog
保存到文件並將結果打印到標準輸出。
要查看所有用戶的最近登錄,請運行:
$ lastlog
示例輸出:
Username Port From Latest
root **Never logged in**
daemon **Never logged in**
bin **Never logged in**
[...]
systemd-coredump **Never logged in**
ostechnix tty1 Mon Jan 11 07:51:46 +0000 2021
lxd **Never logged in**
dnsmasq **Never logged in**
libvirt-qemu **Never logged in**
libvirt-dnsmasq **Never logged in**
cockpit-ws **Never logged in**
cockpit-wsinstance **Never logged in**
libvirtdbus **Never logged in**
_flatpak **Never logged in**
sk pts/0 192.168.225.37 Wed Jan 6 11:02:17 +0000 2021
root **Never logged in**
nobody **Never logged in**

正如您在上面的輸出中看到的, lastlog
使用該命令查看系統用戶賬號和其他服務賬號的上次登錄記錄。 bin
, daemon
, sys
, mail
, nobody
等等
這個 lastlog
此命令將打印登錄名、端口、用戶登錄的 IP 地址以及上次登錄的日期和時間。如果用戶從未登錄過,則打印一條消息 ** Never logged in**
而不是輸出端口和時間。
您可能想知道為什麼有那麼多服務帳戶從未登錄過。這意味著這些帳戶的登錄 shell 是 /sbin/nologin
這是限制直接訪問 shell 的常見安全做法。
3.1. 查看特定用戶的上次登錄詳細信息
例如,要顯示指定用戶的最後一條日誌記錄,使用 骨科,命令將是:
$ lastlog -u ostechnix
示例輸出:
Username Port From Latest
ostechnix tty1 Mon Jan 11 07:51:46 +0000 2021
3.2. 查看X天前或最近的上次登錄記錄
這個 lastlog
此命令可以顯示大約 X 天前的最近登錄記錄。
例如,您可以使用: -b
標誌是:
$ lastlog -b 5
同樣,要顯示過去 5 天的登錄,請使用: -t
橫幅:
$ lastlog -t 5
3.3. 在 Linux 上使用 lastlog 刪除或清除上次登錄信息
如果您不想要用戶的 lastlog 記錄,請使用 -C
(--clear
) 旗幟:
$ sudo lastlog -u ostechnix -C
要確認日誌已被清除,請運行:
$ lastlog -u ostechnix
Username Port From Latest
ostechnix **Never logged in**
得到幫助
有關詳細信息,請參閱每個命令的幫助部分。
$ last --help
$ lastb --help
$ lastlog --help
或者,查看每個命令的手冊頁。
$ man last
$ man lastb
$ man lastlog
這個 last
, lastb
什麼時候 lastlog
Rescue 命令用於檢測 Linux 系統上的可疑用戶活動。找出最近登錄(或註銷)Linux 服務器的人員、登錄時間以及登錄時間是幫助故障排除的重要細節。
相關文件:
- 如何在 Linux 中查找當前登錄的用戶
- 如何在 Linux 中列出所有用戶
- 如何監控 Linux 上的用戶活動
- 如何限制用戶訪問 Linux 系統
查找上次登錄的用戶lastlastblastlogLinux AdministrationLinuxLinux Basic CommandsLinux PromptLinux User Management