简短版本:如何在Fedora系统上禁用审核消息(dmesg)?
Fedora系统一直在dmesg中记录“审核:成功”消息-这种极端的方式使得dmesg变得不可用,因为它已被这些消息填满(dmesg | grep -v audit
为空)。这些消息是完全无用的,因为它们显然想通知用户某些日常内部过程已成功(调试某些内容时可能会感兴趣,但在这种情况下只是噪音)。
甚至命令行界面(使用Ctrl+ Alt+ 切换到非X tty时F2)也变得不可用,因为它总是被这些审计消息所困扰,无法读取用户实际运行的命令的输出。例如,输入用户名(登录)后,会弹出一条审核消息(显然告诉用户已成功格式化/打印了某些内容):
审核:类型= 1131审核(1446913801.945:10129):pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg ='unit = fprintd comm =“ systemd” exe =“ / usr / lib / systemd / systemd”主机名=?addr =?终端=?res =成功”
看来这些消息中的大多数都指示“成功”,但是也有许多审计消息不包含此关键字。运行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 syscall = 273 compat = 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”主机名=?addr =?终端=?res =成功”
审核:类型= 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”主机名=?addr =?terminal = cron res = success'
通常,大多数近期审核消息(在撰写本文时)都包含关键字“ NetworkManager ”或“ chrome ”。
如何完全禁用这些消息?
其他要点:
- 万一有人在想“您应该阅读和分析这些审核消息,而不是禁用它们,它们可能很重要”,不,它们并不重要,它们几乎完全是“成功”消息。无需告诉任何人本应工作的东西实际上就可以工作。但是,如果记录了一条实际上重要的消息,那么在成千上万条无关紧要的消息中将永远不会注意到它。无论如何,在此特定系统上都不需要审核日志记录(它始终在受控环境中运行)。
- 显然,此系统上的某些配置必须非常错误。但是,它曾经是Fedora的默认安装,每当有新版本发布时便已升级。也许这只是一个简单的设置,需要更改,但是由于它不是手动(故意)更改系统配置而发生的,所以这个stackexchange.com问题有望帮助其他碰巧将其系统设置为相同状态的其他人。
- 现在它是运行Linux 4.0.6(systemd 219)的Fedora 22系统。
- 这是标准的Fedora桌面安装,当前正在运行KDE。
- SELinux被禁用(/ etc / selinux / config设置为“ disabled”)。
更新:升级到Fedora 23(内核4.2.5,systemd 222)后,审核消息比以前少了。
audit2allow
您是否考虑过简单地修改与将内核消息打印到控制台有关的kernel.printk值,而不是禁用允许将审核消息写入可以查看的日志的审计功能?在Fedora上默认为“ 7 4 1 7”,更明智的值为“ 3 4 1 7”。