1/var/run/utmp:记录当前正在登入系统的用户信息,默认由who和w记录当前登入用户的信息,uptime记录系统启动时间;
2/var/log/wtmp:记录当前正在登陆和历史登入系统的用户信息,默认由last命令查看;
3/var/log/btmp:记录失败的登陆尝试信息,默认由lastb命令查看。
这三个文件都是二补码数据文件,但是三个文件结构完全相同,是由/usr/include/bits/utmp.h文件定义了这三个文件的结构体。
默认情况下文件的日志信息会通过logrotate日志管理工具定期清除。logrotate的配置文件是/etc/logrotate.conf,此处是logrotate的缺省设置,一般不须要对它进行更改。日志文件的轮循压缩等设置储存在独立的配置文件中,它(们)置于/etc/logrotate.d/目录下,它会覆盖缺省设置。
若果不想记录相关信息,则可以直接将相关文件删掉即可。若果系统不存在该文件,则须要在此路径touch一个文件就可以继续记录相关信息了。
据悉:
假如想禁用who命令linux 发邮件,则只须要将utmp的可读权限除去就行linux 查看登录日志,这样非root用户就不能用此命令了;若果是btmp文件,手工创建的话注意权限必须为600linux 查看登录日志,否则不能正确写入信息。
#2相关命令介绍
好了,下边开始介绍查看这三个日志文件的命令了。分别是lastlog、last、lastb、ac、who、w、users、utmpdump。
其中last、lastb、who、utmpdump可以通过指定参数而查看三个中的任意一个文件。
##2.1lastlog:
列举所有用户近来登陆的信息,或则指定用户的近来登入信息。lastlog引用的是/var/log/lastlog文件中的信息,包括login-name、port、lastlogintime
lzx-clone1:/var/log # lastlog Username Port Latest root pts/1 Wed Oct 19 14:37:46 +0800 2016 bin **Never logged in** daemon **Never logged in** gdm **Never logged in** admin **Never logged in** lzx pts/3 Wed Oct 19 15:15:24 +0800 2016
##2.2last
列举当前和以前登录系统的用户信息,它默认读取的是/var/log/wtmp文件的信息。输出的内容包括:用户名、终端位置、登录源信息、开始时间、结束时间、持续时间。注意最后一行输出的是wtmp文件起始记录的时间。其实也可以通过last-f参数指定读取文件,可以是/var/log/btmp、/var/run/utmp
[root@CLMUGR-APP-D-01 log]# last root pts/0 10.200.108.92 Tue Oct 18 15:04 still logged in root pts/1 10.200.108.92 Wed Oct 12 17:02 still logged in root pts/0 10.200.108.92 Wed Oct 12 09:20 - 16:58 (07:38) root pts/0 10.200.108.92 Sat Oct 8 10:40 - 14:45 (04:05) root pts/0 10.200.108.92 Wed Aug 31 10:52 - 08:44 (21:52) root pts/0 10.200.108.92 Fri Jul 8 13:08 - 09:41 (25+20:32) reboot system boot 2.6.32-431.el6.x Tue Jan 13 19:40 - 19:44 (00:04) wtmp begins Tue Jan 13 19:40:22 2015
##2.3lastb
列举失败尝试的登入信息linux定时关机命令,和last命令功能完全相同,只不过它默认读取的是/var/log/btmp文件的信息。其实也可以通过last-f参数指定读取文件,可以是/var/log/btmp、/var/run/utmp
[root@CLMUGR-APP-D-01 log]# lastb root ssh:notty 10.200.108.92 Wed Oct 19 17:11 - 17:11 (00:00) root ssh:notty 10.200.108.92 Wed Oct 19 17:11 - 17:11 (00:00) root ssh:notty 10.200.108.92 Wed Oct 19 17:10 - 17:10 (00:00) root ssh:notty 10.200.108.92 Wed Oct 19 17:10 - 17:10 (00:00) btmp begins Wed Oct 19 17:10:12 2016
lzx-clone1:/var/log # lastb -F -f /var/log/wtmp root pts/0 10.200.108.92 Tue Mar 8 11:04:36 2016 - Tue Mar 8 11:04:36 2016 (00:00) wtmp begins Tue Mar 8 11:04:36 2016
##2.4ac
输出所有用户总的联接时间,默认单位是小时。因为ac是基于wtmp统计的,所以更改或则删掉wtmp文件就会使ac的结果受影响。(Suse默认没有该命令)
[root@cloudexpress~]#ac
total7404.62
##2.5who
查看当前登录系统的用户信息。其中who-m等效于whoami。
句型who[OPTION]...[FILE|ARG1ARG2]。
who命令强悍的一点是,它既可以读取utmp文件也可以读取wtmp文件,默认没有指定FILE参数时,who查询的是utmp的内容。其实可以指定FILE参数,例如who-aH/var/log/wtmp,则此时查看的是wtmp文件。
查看当前运行级别
[root@CLMUGR-APP-D-01log]#who-rH
名称线路时间空闲进程号备注