請關注本頭條號,每天堅持更新原創干貨技術文章。
如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習
1. 前言
本教程主要介紹如何使用who命令檢查用戶登錄信息。

如何使用who命令檢查用戶登錄信息
Linux中的who命令列出了系統上的所有登錄用戶。使用起來很簡單。
只需在命令行中輸入who,它將顯示您的Linux系統上當前登錄的所有用戶。
root@localhost:~#?who
root pts/0 2020-02-03 06:48 (152.72.29.73)user1 pts/1 2020-02-03 07:02 (187.41.92.90)user2 pts/2 2020-02-03 07:02 (252.142.106.85)
請記住,它只顯示當前登錄到您的系統的用戶。還有其他方法可以查看Linux系統上的所有用戶,比如compgen。
who命令有幾個選項來獲取關于登錄用戶的其他特定信息。
2. 在Linux中使用`who`命令
以下是who命令的語法:
who?[options]?[filename]

在Linux中使用who命令
您已經看到了who命令在沒有任何選項的情況下顯示的信息。現在讓我們看看它提供了哪些選項。
2.1 打印用戶的空閑時間
除了常規信息外,還可以打印用戶的空閑時間。如果用戶在一段時間內沒有輸入任何內容,則反映為空閑時間。
who?-u

如下面的輸出所示,用戶zcwyou已經空閑了2分3秒。
root@localhost:~#?who?-u
root pts/0 2020-02-03 06:48 . 10669 (152.72.29.73)zcwyou pts/2 2020-02-03 07:02 02:03 31528 (187.41.92.90)
你能用這些信息做什么?一個實際的用途是實現安全性增強,自動斷開空閑時間超過一定時間的用戶。
2.2 只顯示用戶名(及其數量)
使用-q選項,您只能顯示登錄的用戶及其數量。
root@localhost:~#?who?-q
root?user1?user2#?users=3
這類似于users command輸出,但已登錄用戶的數量除外。
2.3 檢查用戶是否可以發送即時消息
你知道嗎,用戶可以在Linux終端使用命令行工具互相發送消息。當然,這取決于用戶是否想要接收這些消息。
您可以檢查用戶是否可以發送消息,使用-T選項:
who?-T
在下面的輸出中,+表示yes, -表示no。如果你看到了?,表示未知。
root@localhost:~#?who?-T
root?????-?pts/0????????2020-02-03?06:48?(152.72.29.73)zcwyou?+?pts/2????????2020-02-03?07:02?(187.41.92.90)
2.4 顯示當前用戶的信息
它只顯示您自己的用戶信息(即與當前終端相關聯的用戶)。
who?-m

2.5 檢查最后的系統啟動時間
與uptime命令有點類似,您可以使用who命令的-b選項獲得關于系統最后一次引導的信息:
who?-b
如您所見,我的服務器最后一次啟動是在2019年12月19日的09:41。
root@localhost:~#?who?-b
?????????system?boot??2019-12-19?09:41
2.6 打印登錄用戶的主機名
這可能對同一子網上的用戶有效。使用-lookup選項,可以顯示登錄用戶的主機名。
2.7 檢查過去的登錄和錯誤的登錄信息
在Linux文件系統層次結構中,有存儲運行時信息和日志。
who命令從/var/run/utmp獲取信息。您可以指定其他日志文件來獲取不同的信息。
例如,如果使用/var/log/wtmp文件,您可以獲得關于過去登錄的信息。
root@localhost:~#?who?/var/log/wtmp
root?????pts/0????????2020-02-03?06:48?(152.72.29.73)user1???pts/1????????2020-02-03?07:02?(252.142.106.85)user2??pts/2????????2020-02-03?07:02?(187.41.92.90)user1???pts/1????????2020-02-03?07:12?(252.142.106.85)user1???pts/1????????2020-02-03?08:55?(252.142.106.85)
類似地,您可以使用/var/log/btmp文件查看所有失敗的登錄嘗試。
root@localhost:~#?who?/var/log/btmp
當然,這取決于您的系統是否配置為記錄這些信息。
3. 總結
還有一些類似-H的選項,它們將標題添加為輸出的第一行。你可以通過它的手冊頁來了解它們。本教程主要介紹who命令在Linux系統中的常見應用例子。如果你有更好的應用例子,歡迎留言。