如何在 Linux 中找到最後登錄的用戶


本教程將向您展示如何使用 Linux 查找最後登錄的用戶。 last, lastb 什麼時候 lastlog 命令和例子。

Linux 系統管理員應定期檢查用戶何時登錄其 Linux 服務器。它顯示有用的詳細信息,例如活動用戶的數量、非活動用戶的數量以及他們登錄的時間。如果某些用戶帳戶長時間未使用,則可以在不再需要時簡單地鎖定它們。您還可以在審核 Linux 服務器時使用上次登錄日期來調查可能導致問題的用戶。幸運的是,GNU/Linux 操作系統包括三個命令: last, lastb 什麼時候 lastlog 顯示用戶最近的登錄日期。

內容

  1. 1. 使用 last 命令顯示最後一次登錄 Linux 的用戶列表。
    1. 1.1. 限制輸出到特定用戶
    2. 1.2. 限制輸出到特定的 ttys 或 pts
    3. 1.3. 限制輸出到一定的行數
    4. 1.4. 顯示主機名而不是 IP 地址
    5. 1.5. 隱藏主機名和 IP 地址
    6. 1.6. 查看特定時間的用戶登錄記錄
    7. 1.7. 查看特定時間間隔內的登錄用戶
    8. 1.8. 顯示上次登錄用戶的完整日期和時間
    9. 1.9. 在最後一列顯示主機名
    10. 1.10. 顯示偽用戶’reboot’的最後登錄記錄
  2. 2. 在 Linux 上使用 lastb 查看失敗的登錄嘗試
  3. 3. 使用 lastlog 命令查找 Linux 上最後登錄的用戶。
    1. 3.1. 查看特定用戶的上次登錄詳細信息
    2. 3.2.查看X天前或最近的最後一次登錄記錄
    3. 3.3. 在 Linux 上使用 lastlog 刪除或清除上次登錄信息
      1. 得到幫助

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
使用 last 命令列出 Linux 上最後登錄的用戶

從上面的輸出可以看出,最後一條命令提供了有關最近登錄的以下詳細信息:

  • 用戶名。如果用戶仍處於登錄狀態,還會顯示詳細信息。
  • 發起會話的終端設備的類型(例如 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 命令顯示特定用戶的最新登錄信息

您還可以指定多個用逗號分隔的用戶名,如下所示:

$ 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 中使用 lastb 命令查看失敗的登錄嘗試在 Linux 中使用 lastb 命令查看失敗的登錄嘗試

上述命令將列出 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**
在 Linux 上使用 lastlog 命令查找最後登錄的用戶在 Linux 上使用 lastlog 命令查找最後登錄的用戶

正如您在上面的輸出中看到的, 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 用戶管理