关于Linux操作系统使用lastlog命令对OS账号最后一次登录时间的审计
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Linux操作系统使用lastlog命令对OS账号最后一次登录时间的审计相关的知识,希望对你有一定的参考价值。
本文以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民工!
Linux 命令(170)—— lastlog 命令
文章目录
1.命令简介
lastlog 命令用于显示系统中所有用户最近一次登录信息。
lastlog 命令格式化输出上次登录日志 /var/log/lastlog 的内容。它根据 UID 排序显示登录名、终端(tty)和上次登录时间。如果一个用户从未登录过,lastlog 显示 **Never logged in**
。
注意需要以 root 身份运行该命令。
2.命令格式
lastlog [<options>]
无选项单独执行 lastlog 将打印 lastlog 日志中的条目,并按其在 /etc/passwd 中的顺序进行排序。
3.选项说明
-b, --before <DAYS>
仅打印早于 DAYS 的最近登录记录。
-C, --clear
清除用户的 lastlog 记录(仅与-u一起使用)。
-h, --help
显示此帮助信息并退出。
-R, --root <CHROOT_DIR>
在 CHROOT_DIR 目录中应用更改并使用 CHROOT_DIR 目录中的配置文件。
-S, --set
将 lastlog 记录设置为当前时间(仅与 -u 一起使用)。
-t, --time <DAYS>
仅打印晚于 DAYS 的最近登录记录。
-u, --user <LOGIN>
打印 LOGIN 用户的最近登录记录。
4.常用示例
(1) 显示系统中所有用户最近一次登录信息。
Username Port From Latest
root pts/4 223.73.1.91 Thu Oct 27 15:49:23 +0800 2022
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
shutdown **Never logged in**
halt **Never logged in**
mail **Never logged in**
operator **Never logged in**
games **Never logged in**
ftp **Never logged in**
nobody **Never logged in**
systemd-network **Never logged in**
dbus **Never logged in**
polkitd **Never logged in**
libstoragemgmt **Never logged in**
rpc **Never logged in**
ntp **Never logged in**
abrt **Never logged in**
sshd **Never logged in**
postfix **Never logged in**
chrony **Never logged in**
tcpdump **Never logged in**
syslog **Never logged in**
www **Never logged in**
lighthouse **Never logged in**
tss **Never logged in**
(2)显示指定用户的最近登录信息。
lastlog -u root
Username Port From Latest
root pts/4 223.73.1.91 Thu Oct 27 15:49:23 +0800 2022
(3)显示指定天数前的登录信息。
lastlog -b 7
Username Port From Latest
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
...
(4)显示指定天数以来的登录信息。
lastlog -b 7
Username Port From Latest
root pts/4 223.73.1.91 Thu Oct 27 15:49:23 +0800 2022
(5)清除指定用户的登录信息。
lastlog -C -u root
lastlog -u root
Username Port From Latest
root **Never logged in**
参考文献
lastlog(8) - Linux manual page - man7.org
以上是关于关于Linux操作系统使用lastlog命令对OS账号最后一次登录时间的审计的主要内容,如果未能解决你的问题,请参考以下文章