登陸相關的日誌涉及到系統的安全,因此是系統管理中很是重要的一部份內容。本文試圖對登陸相關的日誌作一個整理。vim
這是一個文本文件,記錄了全部和用戶認證相關的日誌。不管是咱們經過 ssh 登陸,仍是經過 sudo 執行命令都會在 auth.log 中產生記錄。執行 安全
$ ssh nick@myserver
上圖顯示日誌記錄了經過祕鑰認證的方式登陸主機並退出的過程。服務器
再執行下面的命令試試:less
$ sudo vim /var/log/auth.log
日誌一樣會詳細的記錄本次 sudo 操做的過程。從中咱們能夠看到是哪一個用戶經過 sudo 執行了什麼命令!ssh
這是一個二進制文件,因此不能直接經過文本編輯器查看其內容。
它記錄當前登陸的每一個用戶的信息。所以這個文件會隨着用戶登陸和註銷系統而不斷變化,它只保留當時聯機的用戶記錄,不會爲用戶保留永久的記錄。系統中須要查詢當前用戶狀態的程序,如 who、w、users 等就須要訪問這個文件。編輯器
這是一個二進制文件,因此不能直接經過文本編輯器查看其內容。
該日誌文件永久記錄每一個用戶登陸、註銷及系統的啓動、停機的事件。所以隨着系統正常運行時間的增長,該文件的大小也會愈來愈大,增長的速度取決於系統用戶登陸的次數。該日誌文件能夠用來查看用戶的登陸記錄,last 命令就經過訪問這個文件得到這些信息。spa
這是一個二進制文件,因此不能直接經過文本編輯器查看其內容。
這個文件記錄的是全部失敗的登陸嘗試,使用 last 命令及其 -f 選項能夠查看這個文件的內容:3d
$ sudo last -f /var/log/btmp
這是一個二進制文件,因此不能直接經過文本編輯器查看其內容。
它會記錄系統中全部用戶最近一次登錄的信息。好比咱們經過 ssh 登陸時提示的此用戶最後一次的登陸時間,就是從這個文件中取出的:日誌
其實這個文件的主要使用者是 lastlog 命令。code
特別是 /var/run/utmp、/var/log/wtmp 和 /var/log/lastlog 這三個文件,它們都是日誌系統中的關鍵文件,而且具備以下的邏輯聯繫:
當一個用戶登陸系統時,login 程序在 lastlog 文件中查看用戶的 UID。若是該用戶存在,就把該用戶上次登陸、註銷的時間以及從哪一個主機登陸的信息寫到標準輸出中。而後 login 程序在 lastlog 中記錄新的登陸時間,並打開 utmp 文件添加用戶本次的登陸記錄。接下來,login 程序打開 wtmp 文件並添加用戶在 utmp 文件中的記錄。當用戶退出時會把更新的 utmp 文件中的記錄添加到 wtmp 文件中,並從 utmp 文件中刪除用戶的記錄。
咱們能夠看到除了 auth.log 文件,其它幾個文件都是二進制文件,於是不能使用 less 之類的命令直接查看。下面咱們來介紹和登陸相關的一些命令,其實它們幾乎都是經過查詢這些日誌文件來提供信息的。
lastlog 命令用來顯示系統中全部用戶最近一次登錄的信息:
圖中顯示的只是完整列表的一部分,**Never logged in** 表示該用戶歷來沒有登錄過。若是要查看某個用戶的最後登錄信息,可以使用 -u 選項:
其實 lastlog 命令就是從 /var/log/lastlog 文件中取出的內容。
last 命令用來顯示用戶最近登陸的信息。執行 last 命令,它會讀取 /var/log/wtmp 文件的內容。並把該文件記錄的用戶登陸歷史所有顯示出來:
$ last
信息記錄了誰在什麼時間從哪裏登陸了服務器,登陸了多長時間。須要注意的是系統中的 wtmp 日誌文件常常會被輪轉,因此有時你須要顯式的指定 last 命令從哪一個文件中讀取信息:
$ last -f /var/log/wtmp.1
若是咱們想快速知道系統最後一次的重啓時間,可使用下面的命令:
$ last reboot
who 命令經過查詢 /var/run/utmp 文件來顯式系統中當前登陸的每一個用戶。默認的輸出包括用戶名、終端類型、登陸日期及遠程主機:
若是可以查詢到當前登陸系統的用戶都在幹什麼是否是一件使人很興奮的事情呢!使用 w 命令就能夠作到:
$ w
咱們能夠看到用戶 nick 同時登陸了兩個終端,在其中一個終端中執行了 w 命令,而在另外一個終端中正經過 vim 編輯 /etc/passwd 文件!
其實 w 命令是先經過查詢 utmp 文件得到當前登陸的用戶,而後顯示每一個用戶和它所運行的進程信息。
users 命令用單獨的一行打印出當前登陸的用戶,每一個顯示的用戶名對應一個登陸會話。若是一個用戶有不止一個登陸會話,那他的用戶名將顯示屢次:
由於 nick 經過三個終端登陸了主機,因此在同一行中名字出現了三次。
本文整理了 Ubuntu 系統中常見的一些與登陸相關的文件和命令。經過它們能夠快速的查看當前用戶的登陸狀況和全部用戶登陸登出的歷史記錄,而且能夠查詢到用戶使用 root 權限執行的操做。這對咱們維護系統的安全和用戶的管理都很是有幫助。