## Linux系統日志
### 核心系統日志文件——/var/log/messages
Linux的核心系統日志文件是`/var/log/messages`,它包含了以下內容:
- 系統啟動時的引導消息
- I/O錯誤
- 網絡錯誤
- 其它系統運行時發送的錯誤
- 單純的操作記錄
`/var/log/messages`是由**rsyslogd**這個守護進程生成的,如果**rsyslogd**被停止了,則系統將不會生成新的`/var/log/messages`。
### 安全日志
#### 使用`last`命令查看Linux系統的登錄日志
```
# last | head
root pts/0 192.168.80.1 Mon Feb 5 11:28 still logged in
root tty1 Mon Feb 5 11:26 still logged in
reboot system boot 3.10.0-693.11.1. Mon Feb 5 11:26 - 11:28 (00:01)
root tty1 Sun Feb 4 11:34 - crash (23:51)
```
上面的字段從左到右依次為賬戶名稱、登錄終端、登錄客戶端IP、登錄時間段。
以上面這4條截取的日志來分析,它們是按時間從新到舊進行排列的,因此我們先從第四條開始分析。第四條日志其實是我在虛擬機以root賬戶登錄后直接關閉虛擬機,因此我們可以發現,賬戶名稱是root,登錄終端是tty1(相當于本地登錄了),沒有客戶端IP(因為是本地登錄),登錄時間段的末尾是**crash**(因為我不是正常的關機)。
根據上面的邏輯繼續來分析就非常清晰了:
- 第3條是我重新開機虛擬機的日志;
- 第2條是開機成功后,我在本地使用root賬戶登錄;
- 第1條是我在本物理機(windows系統),開SecureCRT,同樣使用root賬戶,進行遠程登錄(雖然兩個系統在同一臺物理機上,但虛擬機是相對獨立的,因此其實看作這是兩臺機器,所以也就是遠程登錄而非本地登錄了)。
另外再介紹一個與登錄信息有關的日志文件——`/var/log/secure`:
```
Feb 5 11:28:14 localhost sshd[1462]: pam_unix(sshd:session): session opened for user root by (uid=0)
Feb 5 11:28:14 localhost sshd[1462]: Accepted password for root from 192.168.80.1 port 53703 ssh2
Feb 5 11:26:46 localhost login: ROOT LOGIN ON tty1
Feb 5 11:26:46 localhost login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Feb 5 11:26:37 localhost sshd[1102]: Server listening on :: port 22.
Feb 5 11:26:37 localhost sshd[1102]: Server listening on 0.0.0.0 port 22.
Feb 5 11:26:35 localhost polkitd[535]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Feb 5 11:26:35 localhost polkitd[535]: Finished loading, compiling and executing 2 rules
Feb 5 11:26:35 localhost polkitd[535]: Loading rules from directory /usr/share/polkit-1/rules.d
Feb 5 11:26:35 localhost polkitd[535]: Loading rules from directory /etc/polkit-1/rules.d
Feb 4 21:36:42 localhost sshd[1434]: pam_unix(sshd:session): session closed for user root
```
對照著`last`命令的結果,`/var/log/secure`是不是挺容易看明白的呢?