本教程將向您展示如何使用 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. 限制輸出到特定的 ttys 或 pts
這個 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
此命令顯示用戶記錄的源 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’的最後登錄記錄
正如我之前所說,最後一個命令記錄了稱為“重啟”和“關閉”的特殊偽用戶。
要查看 ‘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. 使用 lastlog 命令查找 Linux 上最後登錄的用戶。
這個 最後記錄 此命令顯示所有用戶或 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
救援命令用於檢測 Linux 系統上的可疑用戶活動。找出最近登錄(或註銷)Linux 服務器的人員、時間和時間是幫助進行故障排除的重要細節。
相關文件:
- 如何在 Linux 中找到當前登錄的用戶
- 如何列出 Linux 中的所有用戶
- 如何在 Linux 上監控用戶活動
- 如何限制用戶訪問 Linux 系統
查找最後登錄的用戶 lastlastblastlogLinux 管理Linux 基礎Linux 命令Linux 提示Linux 用戶管理