Linux用户登录信息文件

Linux用户登录信息放在三个文件中:

  1. var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看;

  2. /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录着系统启动时间;

  3. /var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。

这三个文件都是二进制数据文件,并且三个文件结构完全相同,是由/usr/include/bits/utmp.h文件定义了这三个文件的结构体。

修改以上日志内容,需修改/var/log/中对应文件,但文件为二进制格式无法直接编辑,可以通过下面命令将二进制文件转换为可编辑文件

utmpdump用于转储二进制日志文件到文本格式的文件方便查看或修改,包括/var/run/utmp、/var/log/wtmp、/var/log/btmp。语法为:utmpdump [options] [filename]。

 下列以last为例:

utmpdump /var/log/wtmp >/var/log/wtmp.file   #导出文件

编辑/var/log/wtmp.file   删除部分login记录,或修改登录记录,比如删除所有mysql用户相关的记录:

sed -i "/mysql/d" wtmp.file #修改内容

修改完成后通过如下命令重新生成last二进制文件:

utmpdump -r < /var/log/wtmp.file > /var/log/wtmp #导入源文件中

修改完成,可用last命令查看修改结果。wtmp,utmp,btmp文件可用utmpdump 在二进制与正常可编辑文件之间转换。