引言
如果你管理的是多用戶系統,則通常需要知道哪個用戶、什麼時間、從何處登錄到該計算機。last是一個命令行實用程序,它顯示有關係統用戶上次登錄會話的信息。
當你需要跟蹤用戶活動或調查可能的安全漏洞時,它非常有用。本文介紹如何使用last命令審查登錄到系統的人員。
![黑客造訪了你的服務器,卻忘清除痕跡,一指令立馬鎖定](http://p2.ttnews.xyz/loading.gif)
基本用法
last命令的參數結構如下
<code>last [OPTIONS] [USER] [...] /<code>
每次用戶登錄系統時,該會話的記錄都會寫入/var/log/wtmp文件。last讀取文件wtmp文件並打印有關用戶登錄和註銷的信息。記錄以時間的倒序排列打印,從最近的記錄開始。
在不帶任何選項或參數的情況下調用last時,輸出如下所示:
<code>mark pts/0 10.10.0.7 Fri Feb 21 21:23 still logged in
mark pts/0 10.10.0.7 Tue Feb 18 22:34 - 00:05 (01:31)
lisa :0 :0 Thu Feb 13 09:19 gone - no logout
reboot system boot 4.15.0-74-g Fri Jan 24 08:03 - 08:03 (00:00)
.../<code>
輸出的每行從左到右包含以下列:
- 用戶名:當系統重啟或關機時,最後顯示特殊用戶重啟和關機。
- 會話在其上進行的tty:0通常表示用戶正在登錄桌面環境。
- 用戶登錄時使用的IP地址或主機名。
- 會話開始和停止時間。
- 會話週期。如果會話仍處於活動狀態或用戶未註銷,則last將顯示有關該會話的信息,而不是顯示持續時間。
要將輸出限制為特定用戶或tty,請將用戶名或tty作為參數傳遞給最後一個命令:
<code>last mark
last pts/0/<code>
last命令選項
last接受多個選項,允許你限制、格式化和篩選輸出。在本節中,我們將介紹最常見的用法。
要指定要在命令行上打印的行數,只需傳遞 減號 + 數字。例如,要僅打印最後10個登錄會話,你可以鍵入:
<code>last -10/<code>
使用-p(--present)選項,可以找出在特定日期登錄系統的人員。
<code>last -p 2020-03-15/<code>
使用-s(--since)和-t(--until)選項告訴last顯示從指定時間開始或到指定時間為止的行。這兩個選項通常一起用於定義要檢索信息的時間間隔。
例如,要顯示從3月13日到3月18日的登錄記錄,你可以運行:
<code>last -s 2020-03-13 -u 2020-03-18/<code>
傳遞給-p、-s和-t選項的時間可以用以下格式指定:
![黑客造訪了你的服務器,卻忘清除痕跡,一指令立馬鎖定](http://p2.ttnews.xyz/loading.gif)
默認情況下,last不顯示秒和年份。使用-F,--fulltime選項查看完整登錄和註銷時間和日期:
<code>last -F/<code>
-i(--ip)選項強制last始終顯示IP地址,-d(--dns)強制顯示主機名:
<code>last -i/<code>
寫在最後
last命令打印有關用戶登錄和註銷時間的信息,更多信息,請man last查看幫助手冊。
比起手動查詢日誌方便太多了。
Happy coding :-)
我是 @程序員小助手 ,持續分享編程故事,歡迎關注。
閱讀更多 程序員小助手 的文章