如何禁用 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 也有类似的模块。

参考

相关内容