前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 审计Bash执行命令 存储归档

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

作者头像
Kevin song
发布2021-07-29 16:30:38
6.9K0
发布2021-07-29 16:30:38
举报

1.History命令说明

history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。

BASH 将关闭 终端会话时所运行的所有命令,并写入你的历史记录文件。

~/.bash_history

当你同时运行两个会话的时候,history 命令将单独显示当前的会话记录,而不会显示其他的历史会话记录。

2.语法

history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]

如何查阅最后的“ n ”命令

默认情况下,history 命令显示我们执行的最后1000条命令。如果你只想列出“ n ”个命令,请使用以下命令。

例如,显示最近的10个历史记录,请运行以下命令。

$ history 10

按条件搜索历史命令

$ history | grep rm

$ history | tail -2

清除历史

1.如果想要删除特定命令,请输入 :history -d

2.要清空全部历史记录,请执行:history -c

3. 用法

3.1 设置历史记录的时间

可以在.bash_profile里配置

HISTTIMEFORMAT='%F %T ' #注意有个空格,为了显示时日期与命令之间有空格分割。

3.2 使用 HISTSIZE 控制历史命令记录的总行数

可以在.bash_profile里配置

HISTSIZE=3000 #默认保留1000条。

HISTFILESIZE=3000

HISTFILESIZE 定义了在 .bash_history 中保存命令的记录总数.

HISTSIZE 定义了 history 命令输出的记录数.

如果想禁用history, 可以设置HISTSIZE=0

3.3 使用 HISTFILE 更改保存历史记录文件

可以在.bash_profile里配置

HISTFILE=./USER-UID.log

3.4 实时追加history,不必等用户退出才将内存中的history记录到文件

可以在.bash_profile里配置

PROMPT_COMMAND=”history -a”

3.5 使用 HISTCONTROL 强制 history 不记住特定的命令

可以在.bash_profile里配置

HISTCONTROL=ignorespace

然后执行具体命令(如ls)的时候面输入一个空格:

$ (这里前面空一格)ls 123

配置环境变量

编辑/etc/profile

代码语言:javascript
复制
vim /etc/profile

添加以下内容

代码语言:javascript
复制
USER_IP=`who -u am i 2>/dev/null |awk '{print $NF}' |sed -e 's/[()]//g'`
LOG_NAME=`who -u am i |awk '{print $1}'`
HIST_DIR=/var/log/.history
if [ -z ${USER_IP} ]
then
        USER_IP=`hostname`
fi

if [ ! -d ${HIST_DIR} ]
then
   mkdir -p ${HIST_DIR}
   chmod 777 ${HIST_DIR}
fi

if [ ! -d ${HIST_DIR}/${LOG_NAME} ]
then
  mkdir -p ${HIST_DIR}/${LOG_NAME}
  chmod 777 ${HIST_DIR}/${LOG_NAME}
fi
PROMPT_COMMAND="history -a"
export HISTSIZE=4000
export HISTFILESIZE=4000
export HISTTIMEFORMAT="[%F %T] [$(whoami)] [${USER_IP}]"
DT=`date +"%Y%m%d"`
export HISTFILE="${HIST_DIR}/${LOG_NAME}/${USER_IP}.history.$DT"
chmod 777 ${HIST_DIR}/${LOG_NAME}/*.history* 2>/dev/null

刷新环境变量

代码语言:javascript
复制
source /etc/profile

查看历史命令

代码语言:javascript
复制
history

根据用户名在.history目录下创建目录并生成以登录客户端ip和时间命名的文件

filebeat 配置

代码语言:javascript
复制
- type: log
  enabled: true
  paths:
   - /var/log/.history/root/*
   - /var/log/.history/ubuntu/*
  tags: ["bashcommand"]
  exclude_lines: ['^#']

kibana

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档