首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 历史命令审计

一、基础概念

  1. Linux历史命令
    • 在Linux系统中,当用户在终端执行命令时,这些命令会被记录下来以便后续查看。历史命令存储在一个特定的文件中(通常是~/.bash_history对于Bash shell)。
    • 它可以帮助用户快速找到之前执行过的命令,提高工作效率。
  • 审计
    • 审计是指对系统中的操作进行检查、记录和分析的过程。对于Linux历史命令审计来说,就是要确保历史命令记录的完整性、准确性,并且能够根据需求对这些记录进行审查。

二、相关优势

  1. 安全方面
    • 可以追踪用户的操作历史,有助于发现潜在的安全威胁,例如是否有用户执行了异常的命令(如试图访问未授权的文件或进行危险的网络操作)。
  • 故障排查
    • 当系统出现问题时,通过查看历史命令可以了解在问题发生前用户执行了哪些操作,有助于快速定位问题的根源。
  • 合规性
    • 在一些企业或组织环境中,可能需要满足特定的合规性要求,对命令执行历史进行审计是满足这些要求的一种方式。

三、类型

  1. 基于时间范围的审计
    • 可以查看特定时间段内的历史命令,例如查看过去一小时或者一天内执行的命令。
  • 基于用户的审计
    • 分别审查不同用户的历史命令,确定每个用户的操作行为是否符合规定。
  • 基于命令关键字的审计
    • 查找包含特定关键字(如rm用于删除文件操作)的历史命令,以便重点关注可能影响系统稳定性的操作。

四、应用场景

  1. 多用户服务器环境
    • 在服务器上有多个用户同时操作时,为了确保系统的安全性和稳定性,需要对每个用户的历史命令进行审计。
  • 关键业务系统
    • 对于运行着关键业务应用的Linux系统,审计历史命令可以防止误操作或者恶意操作对业务造成影响。
  • 安全监控
    • 作为整体安全监控体系的一部分,通过审计历史命令来发现潜在的安全漏洞利用或者内部人员的违规操作。

五、可能遇到的问题及解决方法

  1. 历史命令被篡改
    • 原因
      • 如果系统的权限设置不当,恶意用户可能会修改自己的~/.bash_history文件来隐藏某些危险操作。
    • 解决方法
      • 可以设置文件权限为只读(例如chmod 400 ~/.bash_history),并且定期备份历史命令文件到受保护的存储位置。
      • 使用系统级的审计工具,如auditd,它可以监控文件的修改操作并及时报警。
  • 历史命令记录不全
    • 原因
      • 可能是由于命令执行速度过快,或者历史记录功能本身存在配置问题导致部分命令没有被记录。
    • 解决方法
      • 检查~/.bashrc/etc/bash.bashrc中的历史记录相关配置,例如HISTSIZE(定义了内存中保存的历史命令数量)和HISTFILESIZE(定义了历史文件中的命令数量)是否设置合理。
      • 确保没有其他程序干扰历史命令的正常记录,如某些自定义的shell插件可能存在兼容性问题。
  • 难以查询和分析大量历史命令
    • 原因
      • 随着时间的推移,历史命令文件可能会变得很大,手动查找特定命令或者分析操作模式会变得困难。
    • 解决方法
      • 使用脚本工具,例如grep命令结合正则表达式来过滤和查找特定的历史命令。
      • 可以借助日志分析工具,如awksed等对历史命令文件进行处理,提取有用信息并进行统计分析。例如,统计每个用户执行特定类型命令的频率。

以下是一个简单的使用grep查询历史命令中包含sudo关键字的示例:

代码语言:txt
复制
grep "sudo" ~/.bash_history

如果要统计某个用户在特定时间段内的命令执行数量,可以结合awkdate命令(假设历史命令中有时间戳格式为YYYY - MM - DD HH:MM:SS):

代码语言:txt
复制
awk -v start="2023 - 01 - 01 00:00:00" -v end="2023 - 01 - 31 23:59:59" '
{
    cmd_date = substr($0, 1, 19);
    if (cmd_date >= start && cmd_date <= end)
        count++;
}
END {
    print count;
}' ~/.bash_history

请注意,实际应用中可能需要根据具体的历史命令格式进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux日志审计系统_linux查看审计记录命令

Linux日志审计 常用命令 find、grep 、egrep、awk、sed Linux 中常见日志以及位置 位置 名称 /var/log/cron 记录了系统定时任务相关的日志 /var/log/auth.log...记录验证和授权方面的信息 /var/log/secure 同上,只是系统不同 /var/log/btmp 登录失败记录 使用lastb命令查看 /var/log/wtmp 登录失成功记录 使用last...命令查看 /var/log/lastlog 最后一次登录 使用lastlog命令查看 /var/run/utmp 使用 w、who、users 命令查看 /var/log/auth.log、/var/...log/secure记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 常用审计命令 //定位多少

13.1K60

Linux_历史命令

Linux会保存用户的历史指令 历史指令保存在用户目录下的.bash_history文件(历史记录文件)中,并且每条指令都用时间戳的形式记录了执行时刻 当用户通过shell进入Linux系统时,Linux...+d)时,shell进程会自动将历史记录缓存区中的所有历史记录写入到.bash_history中 查看历史缓冲区 history #查看历史记录缓存区中保存的历史指令 从最开始到现在为止 通过键盘上下键快捷查看历史缓冲区...如果想主动保存缓冲区的历史记录,执行 -w 选项即可 清除历史缓冲区 history -c #清除历史缓冲区 历史缓冲区写入.bash_history其实就是用新内容覆盖掉原有内容,所以清除历史缓冲区就是清除本次登录用户时的所有操作的记录...,不会删除之前的历史记录 重复执行缓冲区历史指令 !...#重复执行上一条命令 搜索历史命令 快捷键:ctrl + r # 输入残缺指令,搜索对应完整历史指令

1.7K20
  • linux历史命令详解 转

    history [选项] [历史命令保存文件] history : 打印历史命令 选项: -c : 清空历史命令 -w : 把缓存中的命令写入历史命令保存文件~/.bash_history 历史命名文件...历史命令(环境变量)配置文件/etc/profile 历史命令 默认保存1k条,可以在环境变量配置文件/etc/profile中修改 HISTSIZE=xxx 历史命令 默认保存文件修改 HISTFILE...=/path/FILENAME 历史命令 剔除连续重复的条目 HISTCONTROL=ignoredups 历史命令 忽略指定命令HISTIGNORE=”pwd:ls:cd:” 历史命令 格式化输出...HISTTIMEFORMAT=’%F %T ’ ,bt只能输出设置生效之后的 Ctrl + R 检索历史命令 直接键入想要查询的命令,进行动态模糊查询:直接回车可以执行  历史命令的调用 使用上下箭头调用以前的历史命令...n 重复执行第n条历史命令 使用 !! , !-1 重复执行上一条命令 Ctrl+p+enter亦可 使用 !

    2.5K10

    用 Shell 搞定 Linux 命令审计

    前段时间学习群中有朋友在询问线上 Linux 主机的命令行操作审计方案时,当时给了一个用 rsyslog + elasticsearch 的方案简单搪塞过去了,并没有对方案的细节进行说明。...首先,当谈到 Linux 的操作审计需求时,大多数我们希望的是还原线上服务器被人为(误)操作时执行的命令行,以及它关联的上下文。...Linux 部分 准备一些必要的工具 rsyslog: 一个Linux上自带并兼容 syslog 语法的日志处理服务 jq: 一个在 shell 下处理 json 数据的小工具 logger: 一个可以往...DEBUG" declare -rx BASH_COMMAND declare -rx SHELLOPT trap AUDIT_EXIT EXIT 简单说明下这个脚本,大致就是定义了 shell 的历史条目...,也可以依此对 Linux命令行审计做可视化的二次开发。

    1.2K11

    Linux历史命令的记录与隐藏

    linux下历史命令通常有两大用处,一个是快速复用,另外是审计,快速复用在之前的文章linux命令行技巧中提过,有兴趣的可以去看看,今天主要说审计部分,分两部分:记录历史命令和隐藏命令行历史,分别针对运维防护及入侵渗透...,下面分别介绍 记录所有用户历史命令 原本的linux默认记录1000条历史记录,且只记录命令,完全没办法做审计,当遇到服务器入侵等情况,做审计工作时,如果你没有开启audit,或其他第三方审计工具,在通过...history做审计的时候,即便命令不被清除,你也只能看到历史命令,看不到其他任何信息,审计很不方便 这边直接上代码 PS1="`whoami`@`hostname`:"'[$PWD]' history...这样在后期做审计的时候,可以很快速的找到某用户某时间的历史命令 如果需要记录哪条命令是哪个时刻执行的,需要自定义HISTTIMEFORMAT,添加时间在命令之前 或者觉得上面的方法比较复杂,那你就直接用...或者通过上下键翻找历史命令,通过Ctrl+U来清除当前行的记录 ? 不过这种方式会留个小马脚 ok,以上就是今天要介绍的linux下命令历史记录的保存及隐藏方式

    6.7K30

    linux删除历史操作命令「建议收藏」

    在linux系统里一旦操作了任何命令,都会被记录下来,可以通过history命令来查看历史命令, 查看手册可知history -c 便是清除历史命令,但是重新进入系统查看历史命令时,历史信息依然会存在...linux中存放历史命令的文件是.bash_history, 清空该文件(echo > /root/.bash_history),那些历史命令就会被清空了。...注意如果是在shell脚本中调用history -c清空当前shell的历史命令,是不会成功的,因为bash执行命令时 默认是会产生一个子进程来执行该命令,在子进程中执行history -c不是清除你当前...shell的历史命令了。.../脚本),source 指在当前bash环境下执行命令 如果想清楚当前shell的历史记录使用命令 history -c 命令 如果要删除所有的历史记录,删除~/.bash_history 文件就可以

    3.3K20

    Linux 审计Bash执行命令 存储归档

    1.History命令说明 history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。...BASH 将关闭 终端会话时所运行的所有命令,并写入你的历史记录文件。...~/.bash_history 当你同时运行两个会话的时候,history 命令将单独显示当前的会话记录,而不会显示其他的历史会话记录。...如何查阅最后的“ n ”命令 默认情况下,history 命令显示我们执行的最后1000条命令。如果你只想列出“ n ”个命令,请使用以下命令。 例如,显示最近的10个历史记录,请运行以下命令。...$ history 10 按条件搜索历史命令 $ history | grep rm $ history | tail -2 清除历史 1.如果想要删除特定命令,请输入 :history -d 2.要清空全部历史记录

    7K10

    8.2 命令历史

    命令历史 history //查看之前的命令 .bash_history //存放之前敲过的命令,在 /root/ 目录下 最大1000条 //默认参数值是1000...echo 表示会在命令历史里面,倒着网上找第一个执行以 echo 开头的命令 查看敲过的命令存放位置 在我们使用过的命令,会存放在用户的家目录下 /root/.bash_history [root...4 ping www.baidu.com 5 yum install -y net-tools 6 ifconfig history命令中最多存放1000条历史命令 history...localhost ~]# 有时敲命令的时候,会出来更多的数值 这是因为 还没有真正的写入到文件中去,这些命令临时存放在内存中 history -c //把当前内存里面命令历史给清空...表示执行最后一条命令 !n 表示运行第几条命令(n表示数字) !echo 表示会在命令历史里面,倒着网上找第一个执行以 echo 开头的命令

    1.2K60

    Linux 命令 | 每日一学,Audit 安全审计相关工具

    0x01 Linux 审计工具介绍实践 描述: Linux 审计系统提供了一种方式来跟踪系统上与安全相关的信息。根据预配置的规则,审计会生成日志条目,来尽可能多地记录系统上所发生的事件的相关信息。...0.auditd 命令 - 审计守护进程 描述: auditd 是 Linux 审计系统的用户空间组件, 该守护进程它负责将审计记录写入磁盘,我们可以使用 ausearch 或 aureport 实用程序查看审计日志...命令可以生成审计信息的报表,必须以 root 用户执行,如果执行 aureport 命令时没有使用任何选项,那么会显示汇总报表。...ausearch -k audit-temp | aureport -f -i 4.auditspd 命令 - 转发事件通知给其他应用工具 描述: audispd 是 Linux 审计框架中的一个守护进程...5.autrace 命令 - 一个用于跟踪进程的命令 描述: autrace 是 Linux 中的一个命令行工具,用于跟踪进程的系统调用,它可以帮助你分析程序在运行时的系统调用情况,对于调试和了解程序行为非常有用

    1.6K21

    linux history 历史命令行查询和使用

    history命令:用于显示历史记录和执行过的指令命令,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。...语法: history(选项)(参数) 选项: -N: 显示历史记录中最近的N个记录; -c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件中; -r:将历史命令文件中的命令读入当前历史命令缓冲区...; -w:将当前历史命令缓冲区命令写入历史命令文件中; -d:删除历史记录中第offset个命令 -n:读取指定文件 实例: #查看历史执行记录 history #查看历史执行记录...10 #执行历史记录第 10 条命令 !! #执行上一条命令 显示执行历史记录时间: 1、默认情况下,history并不记录命令的执行时间,分析起来很困难。...4、用Ctrl+R搜索历史命令;当你执行了一串相当长的命令之后,你只要用关键字搜索一下历史命令然后重新执行这条命令而不需要将整条命令再输一遍。方法是:按下Ctrl+R然后输入关键字。

    2.9K10
    领券