博客园  :: 首页  :: 管理

本文以Red Hat Enterprise Linux release 8.1 (Ootpa) 为例 ,应该也能适用于7.x版本的

如果对操作系统中的账号审计,其中有一个项目可能会比较重要(尤其是对于个人账号),那就是最后一次登录的记录

如果需要查看每一个OS账号的最后一次登录记录(笔者测试,不包括scp/sftp登录的记录),可以使用lastlog命令

[qq-5201351@localhost ~]$ lastlog
Username         Port     From             Latest
root             pts/1                     Sun Apr 30 12:30:40 +0800 2023
bin                                        **Never logged in**
ec2-user         pts/0    93.88.226.221    Sun Apr 30 12:21:43 +0800 2023

说明:对于From为空的,一般多为su方式登录,直接从其他地方登录,一般都会显示成IP地址

此命令实际是读取的/var/log/lastlog,因为这个文件的属主/组和权限默认如下,一般使用普通用户也是可以执行lastlog的(系统特殊加固的可能不行):

-rw-rw-r--. 1 root utmp 293460 Apr 30 12:30 /var/log/lastlog

如果此文件,被删除,笔者测试只有使用普通用户su - root 后,文件又会被创建,(直接普通用户或者直接使用root用户ssh登录,都不会自动创建)

只是这样创建的用户、有可能权限,属组会有变化,只有等到下次重启OS,才会恢复成root:utmp

回到账号审计,如果就是简单的审计的每一个账号的最后一次登录,就可以直接使用lastlog命令即可

关于lastlog命令的详细使用说明,也可以参考笔者另一篇文章 《每天一个Linux命令-lastlog》

如果要针对一部分账号,或者要求对账号按指定顺序列出,我们可以使用for循环方式,这种对于填写审计表格较为实用

for user in root bin ec2-user;do
    lastlog --user $user |tail -n 1 
done

 

最后,还有如下两个点需要注意一下:

1、lastlog命令有如下两个选项,是可以直接修改lastlog数据的,当然只能清除时间,或者设置为当前时间,不能自定义时间

-C, --clear                  clear lastlog record of an user (usable only with -u)

-S, --set                     set lastlog record to current time (usable only with -u)

2、目前笔者没有发现lastlog命令能有相关选项,可以直接读取指定位置的lastlog的data类型的文件

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17365149.html