当前位置: 首页 > news >正文

history命令增强记录执行时间与登录IP

一、为什么要优化 history?
在日常 Linux 运维过程中,执行命令的审计是一个重要环节。默认情况下,执行 history 命令只能看到简单的历史命令列表:

$ history
1  ls
2  cd /opt
3  vi /etc/nginx.conf

很明显,这样的日志记录并不能满足生产环境下的安全审计需求。我们看不到这些命令的:
执行时间,执行用户,登录终端 IP

二、目标与实现方式
我们希望实现以下功能:
✅ 所有用户的命令记录都包含 执行时间
✅ 同时记录用户 登录终端的 IP 地址
✅ 命令记录保存在用户各自的历史文件中
✅ 支持多终端并发登录时准确记录当前终端信息
✅ 避免重复记录、自动刷新历史文件
三、全局配置优化步骤
以下设置将在系统全局生效,对所有用户统一适用。
1️⃣ 设置命令时间戳与登录 IP
编辑 /etc/profile 文件,在末尾添加如下内容:

设置 HISTTIMEFORMAT,记录执行时间和终端 IP

export HISTTIMEFORMAT="[%F %T] [$(whoami)] [$(who -u am i 2>/dev/null | awk '{print $NF}' | sed 's/[()]//g')] "

%F %T 分别代表当前日期与时间(如 2025-08-06 14:30:12)
$(whoami) 显示当前用户
who -u am i 能精确获取当前登录终端的 IP(避免旧脚本只记录首次登录 IP 的问题)
保存退出后,使配置立即生效:

source /etc/profile

多终端优化:避免历史记录覆盖 & 自动同步
编辑 /etc/bashrc 文件,在末尾添加如下内容:

# 避免重复命令
export HISTCONTROL=ignoredups:erasedups# 命令追加保存
shopt -s histappend# 每次执行命令后,追加并刷新历史文件
export PROMPT_COMMAND='history -a; history -c; history -r'

说明:
history -a:追加当前命令到历史文件
history -c:清空当前会话历史(不会丢失,只是清内存)
history -r:重新加载历史文件内容
保证多终端间命令记录同步,防止命令丢失
保存并执行:

source /etc/bashrc

扩大历史命令记录条数
默认 history 只保存 1000 条记录,推荐调整为 10000 条,足以覆盖大部分审计需求:

同样在 /etc/bashrc 末尾添加

export HISTSIZE=10000
export HISTFILESIZE=20000  # 文件中最大保存记录数(可选)

生效配置:

source /etc/bashrc

四、配置效果示例
完成上述配置后,再次执行命令并查看 history:

$ history1  [2025-08-06 15:43:36] [root] [172.168.14.1] mkdir -p project/{bin,conf,logs,data/{backup,temp},docs/{api,user}}2  [2025-08-06 15:43:45] [root] [172.168.14.1] cd project/3  [2025-08-06 15:44:28] [root] [172.168.14.1] find /var/log -type f -name     

终端历史记录优化方案

📅 命令时间戳优化

  • 当前状态:默认仅记录命令,无精确时间信息
  • 优化方案HISTTIMEFORMAT="%F %T "
  • 效果:所有历史命令将显示YYYY-MM-DD HH:MM:SS格式时间戳
  • 审计价值:精确到秒的操作追溯能力
http://www.lryc.cn/news/618229.html

相关文章:

  • 线性代数 · 矩阵 | 最小多项式
  • 【debug 解决 记录】stm32 debug模式的时候可以运行,但是烧录没法执行
  • Mac如何安装telnet命令
  • 论答题pk小程序软件版权的
  • 家政小程序系统开发:推动家政行业数字化转型,共创美好未来
  • 校园快递小程序(腾讯地图API、二维码识别、Echarts图形化分析)
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的母婴用品精准营销策略研究
  • 思科、华为、华三如何切换三层端口?
  • Web前端小游戏轮盘。
  • 盲盒抽谷机小程序系统开发:解锁盲盒新玩法,开启潮玩社交新时代
  • OpenHarmony介绍
  • 计算机网络---默认网关(Default Gateway)
  • 飞算JavaAI全流程实操指南:从需求到部署的智能开发体验
  • 本地(macOS)和服务器时间不同步导致的 Bug排查及解决
  • web应用服务器——Tomcat
  • Linux 常用命令大全:覆盖日常 99% 操作需求
  • A4.1:继C5.3引申的基极偏置的应用和发射极偏置的负反馈电阻讨论
  • STM32——GPIO
  • 嵌入式Linux进程管理面试题大全(含详细解析)
  • 嵌入式硬件——ARM
  • 从零开始之stm32之CAN通信
  • 1 JQ6500语音播报模块详解(STM32)
  • 棋牌室|台球|KTV|亲子|游戏|PS5等小程序接入美团核销教程,解决线下门店线上的流量!
  • Langflow 1.5:文档处理套件、Windows支持与用户体验提升
  • 4.7 GB 视频导致浏览器内存溢出(OOM)的解决方案
  • 小程序排名优化:功能迭代如何助力排名攀升
  • Python 爬虫获取淘宝商品信息、价格及主图的实战指南
  • 小程序排名优化:用户行为数据背后的提升密码
  • 从爬虫新手到DrissionPage实践者的技术旅程
  • Apache Shiro