history命令显示时间戳、IP地址、用户名

文章介绍了如何在没有专业设备的情况下,通过在Linux系统中配置history命令和PROMPT_COMMAND,使用主机名代替IP记录用户的登录操作,以便于日常运维和安全审计。
摘要由CSDN通过智能技术生成

一、前置知识

history命令的功能是显示和管理用户所执行过的所有命令记录。这些记录默认被Linux系统保存。用户可以使用history命令查阅这些记录,也可以对其记录进行修改和删除操作。
history命令的常用参数如下:

-a: 保存命令记录

-c: 清空命令记录

-d: 删除指定序号的命令记录

-n: 读取命令记录

-r: 读取命令记录到缓冲区

-s: 添加命令记录到缓冲区

-w: 将缓冲区信息写入到历史文件

二、问题

在日常运维工作中,因为各种需求申请登录到到服务器的情况经常出现,例如开发、运维、第三方技术支持等,在缺乏堡垒机日志审计等专业设备的情况下,无论是在日常背锅排查过程中,或者入侵事件的应急排查过程中,无法知道用户的操作(乱搞图片)情况。

三、解决思路

只要思想不滑坡,办法总比问题多。

  1. 获取用户登录IP

  2. 拿不到IP的情况下,用主机名代替

  3. 格式化history命令

  4. 开启历史命令追加功能,不覆盖之前的历史记录

  5. 每次登录执行保存命令的记录

四、将配置更新到/etc/profile中,并使其生效

# 获取当前登录用户的真实IP地址
USER_IP=`hostname -i`
# 如果获取不到IP,则使用hostname命令获取主机名作为IP的替代值
if [ -z "$USER_IP" ]; then
    USER_IP=`hostname`
fi
#格式化历史命令输出
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
#开启历史记录追加功能
shopt -s histappend
# 设置PROMPT_COMMAND环境变量,使得每次shell提示符出现前自动执行history -a命令,确保所有交互式命令都被保存至历史记录中
export PROMPT_COMMAND="history -a"
source /etc/profile

执行history命令来看看效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睡不醒的猪儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值