日志的三種類型#
- 內核及系統日志:
這種日志數據由系統服務rsyslog統一管理,根據其主配置文件/etc/rsyslog.conf中的設置決定將內核消息及各種系統程序消息記錄到什么位置。系統中有相當一部分程序會把自己的日志文件交由rsyslog管理,因而這些程序使用的日志記錄也具有相似的格式。
- 用戶日志:
這種日志數據用于記錄linux操作系統用戶登錄及退出系統的相關信息,包括用戶名、登錄的終端、登錄時間、來源主機、正在使用的進程操作等。
- 程序日志:
有些應用程序會選擇由自己獨立管理一份日志文件(而不是交給rsyslog服務管理),用于記錄本程序運行過程中的各種事件信息。由于這些程序只負責管理自己的日志文件,因此不同程序所使用的日志記錄格式可能會存在較大的差異。
常見的日志文件#
路徑說明/var/log/messages記錄 Linux 內核消息及各種應用程序的公共日志信息/var/log/cron記錄 crond 計劃任務產生的事件信息/var/log/dmesg記錄 Linux 操作系統在引導過程中的各種事件信息/var/log/maillog記錄進入或發出系統的電子郵件活動/var/log/lastlog記錄每個用戶最近的登錄事件/var/log/secure記錄用戶認證相關的安全事件信息/var/log/wtmp記錄每個用戶登錄、注銷及系統啟動和停機事件/var/log/btmp記錄失敗的、錯誤的登錄嘗試及驗證事件
日志的優先級別#
數字等級越小,優先級越高,消息越重要。
級別英文單詞中文釋義說明0EMERG緊急會導致主機系統不可用的情況1ALERT警告必須馬上采取措施解決的問題2CRIT嚴重比較嚴重的情況3ERR錯誤運行出現錯誤4WARNING提醒可能影響系統功能,需要提醒用戶的重要事件5NOTICE注意不會影響正常功能,但是需要注意的事件6INFO信息一般信息7DEBUG調試程序或系統調試信息等
用戶日志相關命令#
users#
- users命令只是簡單地輸出當前登錄的用戶名稱,每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示與其相同的次數。
[root@localhost ~]# users root
who#
- who命令用于報告當前登錄到系統中的每個用戶的信息。使用該命令,系統管理員可以查看當前系統存在哪些不合法用戶,從而對其進行審計和處理。who的默認輸出包括用戶名、終端類型、登錄日期及遠程主機。
[root@localhost ~]# who root pts/0 2019-09-06 23:56 (192.168.28.1)
w#
- w命令用于顯示當前系統中的每個用戶及其所運行的進程信息,比users、who命令的輸出內容要豐富一些。
23:57:33 up 4 min, 1 user, load average: 0.02, 0.18, 0.11 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.28.1 23:56 5.00s 0.11s 0.02s w
last#
- last命令用于查詢成功登錄到系統的用戶記錄,最近的登錄情況將顯示在最前面。通過last命令可以及時掌握Linux主機的登錄情況,若發現未經授權的用戶登錄過,則表示當前主機可能已被入侵。
[root@localhost ~]# last root pts/0 192.168.28.1 Fri Sep 6 23:56 still logged in reboot system boot 3.10.0-693.el7.x Fri Sep 6 23:52 - 23:58 (00:05) ll :0 :0 Wed Sep 4 14:09 - crash (00:07) reboot system boot 3.10.0-693.el7.x Wed Sep 4 14:06 - 14:24 (00:18) wtmp begins Wed Sep 4 14:06:18 2019
lastb#
- lastb命令用于查詢登錄失敗的用戶記錄,如登錄的用戶名錯誤、密碼不正確等情況都將記錄在案。登錄失敗的情況屬于安全事件,因為這表示可能有人在嘗試猜解你的密碼。
[root@localhost ~]# lastb ll ssh:notty 192.168.28.1 Sat Sep 7 00:01 - 00:01 (00:00) ll :0 :0 Fri Sep 6 23:59 - 23:59 (00:00) btmp begins Fri Sep 6 23:59:42 2019