如何停用 root 登入的日誌檔案?

如何停用 root 登入的日誌檔案?

我不想停用 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 維基百科頁面

utmp、wtmp 和 btmp

  • 烏特姆普維護系統目前狀態、系統啟動時間(正常運作時間使用)的完整記錄,記錄使用者在哪個終端登入、登出、系統事件等。
  • 沃特姆普充當歷史 utmp
  • BTMP記錄失敗的登入嘗試

utmp文件不是文字文件,而是需要透過特製程式進行編輯的二進位格式。檔案中存在的實作和欄位因係統或 libc 版本而異,並在utmp.h頭檔中定義。

wtmp和格式btmp完全相同utmp,只是空用戶名表示在關聯終端上註銷。此外,使用者名稱 shutdown 或 restart 的終端名稱 ~ 表示系統關閉或重新啟動,且終端名稱對 / 會在日期變更時記錄舊/新系統時間。

若要擴充這些文件,您可以使用 Perl 模組,使用者::Utmp來修改這些文件。 Python 也有類似的模組。

參考

相關內容