
我不想停用 Debian 中的所有日誌,只停用那些記錄 root 登入時間和登入時長的日誌。
當我在終端機中發出last
命令時,我獲取我的 IP 位址等,我想停用它。
當我去/var/log
,BTMP文件是空的,只有一些方形符號,例如無法識別的字符,沃特姆普是一樣的。我刪除了內容auth.log
。
如何停用這種類型的日誌?
答案1
過濾日誌
我相信您可以使用rsyslog
.具體來說,您需要將過濾器添加到/etc/rsyslog.d/
.
對於類似這樣的訊息/var/log/secure
(例如在 Fedora 19 上):
Jun 28 13:28:18 greeneggs login: pam_unix(login:session): session opened for user saml by LOGIN(uid=0)
Jun 28 13:28:19 greeneggs login: LOGIN ON tty2 BY saml
您可以使用這樣的過濾器來忽略它們:
如果 $syslogfacility-text == 'local0' 且 $msg 以 'login' 開頭且($msg 包含 'root')則 /dev/null
筆記:上面未經測試,但只是一個示例,展示瞭如何粗略地解決這個問題。
過濾 wtmp 和 btmp
這些文件是二進位文件,因此您不能簡單地使用標準工具(例如sed
和 )來編輯它們awk
。如果您確實想編輯它們,則必須cron
定期編輯它們。我找不到任何方法來過濾使用者在登入時新增到任一文件中的情況。
utmp、wtmp 和 btmp
- 烏特姆普維護系統目前狀態、系統啟動時間(正常運作時間使用)的完整記錄,記錄使用者在哪個終端登入、登出、系統事件等。
- 沃特姆普充當歷史 utmp
- BTMP記錄失敗的登入嘗試
該
utmp
文件不是文字文件,而是需要透過特製程式進行編輯的二進位格式。檔案中存在的實作和欄位因係統或 libc 版本而異,並在utmp.h
頭檔中定義。
wtmp
和格式btmp
完全相同utmp
,只是空用戶名表示在關聯終端上註銷。此外,使用者名稱 shutdown 或 restart 的終端名稱 ~ 表示系統關閉或重新啟動,且終端名稱對 / 會在日期變更時記錄舊/新系統時間。
若要擴充這些文件,您可以使用 Perl 模組,使用者::Utmp來修改這些文件。 Python 也有類似的模組。