本文以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
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!