Linux

如何在 dmesg 中禁用無用的“審核成功”日誌條目

  • September 23, 2019

簡短版:如何在 Fedora 系統上禁用審計消息 (dmesg)?


Fedora 系統不斷在 dmesg 中記錄“審計:成功”消息 - 以一種極端的方式, dmesg 變得無法使用,因為它被這些消息填滿(dmesg | grep -v audit為空)。這些消息完全沒有用,因為它們顯然想通知使用者一些日常內部程序已經成功(在調試某些東西時可能會感興趣,但在這種情況下它只是噪音)。

Ctrl甚至命令行界面(當使用++切換到非 X tty 時AltF2也變得無法使用,因為它總是被這些審計消息弄得雜亂無章,無法讀取使用者實際執行的命令的輸出。例如,在輸入使用者名(登錄)後,會彈出一條審核消息(顯然是告訴使用者某些內容已成功格式化/列印):

審計:類型=1131 審計(1446913801.945:10129):pid=1 uid=0 auid=4294967295 ses=4294967295 msg=‘unit=fprintd comm=“systemd” exe="/usr/lib/systemd/systemd" hostname=? 地址=?終端=?資源=成功’

似乎這些消息中的大多數都表示“成功”,但也有許多審計消息不包含此關鍵字。執行 Chromium 會觸發數百個:

審計:類型=1326 審計(1446932349.568:10307):auid=500 uid=500 gid=500 ses=2 pid=1593 comm=“chrome” exe="/usr/lib64/chromium/chrome" sig=0 arch=c000003e系統呼叫=273 兼容=0 ip=0x7f9a1d0a34f4 程式碼=0x50000

其他消息包括:

審計:類型=1131 審計(1446934361.948:10327):pid=1 uid=0 auid=4294967295 ses=4294967295 msg=‘unit=NetworkManager-dispatcher comm=“systemd” exe="/usr/lib/systemd/systemd" 主機名=?地址=?終端=?資源=成功’

審計:類型=1103 審計(1446926401.821:10253):pid=28148 uid=0 auid=4294967295 ses=4294967295 msg=‘op=PAM:setcred grantors=p am_env,pam_unix acct=“user” exe="/usr/sbin /crond" 主機名=? 地址=?終端=cron res=成功’

通常,大多數最近的審計消息(在撰寫本文時)都包含關鍵字“ NetworkManager ”或“ chrome ”。

如何完全禁用這些消息?


附加點:

  • 如果有人可能會想“您應該閱讀和分析這些審計消息,而不是禁用它們,它們可能很重要”,不,它們並不重要,它們幾乎完全是“成功”消息。沒有人需要被告知應該起作用的東西實際上確實起作用了。但是,如果記錄了一條真正重要的消息,那麼在成千上萬條無關緊要的消息的風暴中就永遠不會注意到它。在任何情況下,在這個特定係統上都不需要審計日誌(它無論如何都在受控環境中執行)。
  • 顯然,該系統上的某些配置必須非常錯誤。然而,它曾經是一個預設的 Fedora 安裝,每當新版本發佈時都會升級。也許這只是一個必須更改的簡單設置,但由於手動(故意)更改系統配置並沒有發生,這個 stackexchange.com 問題有望幫助其他碰巧讓他們的系統處於相同狀態的人。
  • 它現在是一個 Fedora 22 系統,執行 Linux 4.0.6 (systemd 219)。
  • 這是一個標準的 Fedora 桌面安裝,目前正在執行 KDE。
  • SELinux 被禁用(/etc/selinux/config 設置為“禁用”)。

更新:升級到 Fedora 23(核心 4.2.5,systemd 222)後,審計消息比以前少了。

首先,在fedora 上,auditd 和auditctl 都來自同一個包(名稱為audit)。因此,如果您沒有 auditctl,則有其他問題。試試這個:

rpm -ql audit |grep ctl

如果這沒有給您任何幫助,那麼您根本沒有安裝審計包。

其次,您提到的 grub.cfg 文件中的第一個“人類”語言行在我的系統上顯示“請勿編輯”。這是對文件的任何手動更改都可能失去的線索。

在 fedora/redhat 系統上編輯 grub 配置的正確位置是您特別建議不需要更改的一個文件(/etc/default/grub)。實際上,這是進行提議的更改並在核心升級後倖存下來的唯一“安全”方式。這是因為它在核心升級期間用作源配置的一部分,以重新生成工作 grub.cfg。查找 grub2-mkconfig 命令(和它的朋友)。詳細資訊在這裡:https ://fedoraproject.org/wiki/GRUB_2

你的回答沒有錯,但我發現它有點混亂。我討厭 grub 命令行,恕我直言,任何可能錯過在核心命令行上添加空格字元的人可能不會感謝任何人在這條路上的帶領。儘管如此,有些人還是喜歡用我知道的艱苦的方式學習。

下面的所有命令都需要以 root 身份執行(這本身就是一件危險的事情)。

對於正在執行的系統:

auditctl -e 0

如果您找不到 auditctl,請檢查您的 PATH 並考慮:

dnf install audit

如果不禁用消息,這至少應該減少消息,直到您可以重新啟動。

要在重新啟動後繼續存在,請編輯 /etc/default/grub 並更改 GRUB_CMDLINE_LINUX 行以在末尾添加“audit=0”,然後使用 grub2-mkconfig 重新生成 grub.cfg。最後一步還在您的更改和正在執行的系統之間設置了一層驗證。

引用自:https://unix.stackexchange.com/questions/241552