在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中。通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和问题排查,同时在服务器遭受黑客攻击后,也可以查询黑客登录服务器的历史命令操作。但是黑客在入侵后,为了抹除痕迹,会删除 .bash_history 文件,这个就需要合理备份这个文件了。

默认的 history 命令只能查看用户的历史操作记录,但是不能区分每个用户操作命令的时间。这点对于问题排查相当的不方便。解决办法是在 /etc/bashrc 文件中加入以下四行来让 history 命令自动记录所有 shell 命令的执行时间:

HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT='%F %T'
export HISTTIMEFORMAT

HISTFILESIZE 表示在 .bash_history 文件中保存命令的记录总数,默认值是 1000;HISTSIZE 定义了 history 命令输出的记录总数;HISTTIMEFORMAT 定义了时间显示格式,该格式与 date 命令后的 “+"%F %T"” 是一样的;HISTTIMEFORMAT 作为 history 的时间变量将值传递给 history 命令。

高级技巧

上面那个虽然可以记录时间,但是无法作为审计目的使用,很容易被黑客篡改或者丢失。下面这种方法详细记录了登录过系统的用户、IP 地址、shell 命令以及详细操作的时间。并将这些信息以文件的形式保存在一个安全的地方,以供系统审计和故障排查。

把以下代码放入 /etc/profile 文件中,即可实现上述功能。

#Record history operation
USER_IP=`who -u am i 2>/dev/null |awk '{print $NF}' |sed -e 's/[()]//g'`
LOGNAME=`who -u am i |awk '{print $1}'`
HISTDIR=/user/share/.history
if [ -z $USER_IP]
then
    USER_IP=`hostname`
fi

if [ ! -d $HISTDIR]
then
    mkdir -p $HISTDIR
    chmod 777 $HISTDIR
fi

if [ ! -d $HISTDIR/${LOGNAME}]
then
    mkdir -p $HISTDIR/${LOGNAME}
    chmod 300 $HISTDIR/${LOGNAME}
fi

export HISTSIZE=4000

DT=`date +"%Y%m%d_%H%M%S"`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null

history 历史命令记录功能如何防坏人(高级)相关推荐

  1. 不留痕迹的清除部分history历史命令记录

    有时候只想清除自己执行的一些历史命令,而不想清除整个系统的历史命令,而且也不想让别人看到自己有编辑过.bash_history文件. 有的人会说直接使用history -c命令来清除. 这种方法不是不 ...

  2. Linux删除history历史命令记录

    有时在系统中登录数据库时不小心明文输入了密码,为了保护隐私,需要将部分或者全部历史记录删除. 删除全部历史记录 history -c 不过在大多数情况下只需要清除部分命令即可 方法1.直接修改历史记录 ...

  3. linux中Shell历史命令记录文件的路径是什么

    Bash shell在"~/.bash_history"("~/"表示用户目录)文件中保存了500条使用过的命令,这样能使你输入使用过的长命令变得容易.每个在系 ...

  4. 设置linux查看历史命令显示两个小时内,linux系统中history历史命令显示执行日期和时间...

    在我们日常维护工作中,history历史命令查看是经常会用到的,特别是系统出了问题,肯定会在第一时间要查看之前都执行过什么命令,但是系统默认的history命令列表中是不显示命令执行时间和日期的,这就 ...

  5. linux history存放位置,Linux中history历史命令使用方法详解

    当你在玩Linux的时候,如果你经常使用命令行来控制你的Linux系统,那么有效地使用命令历史机制将会使效率获得极大提升.事实上,一旦你掌握了我在下面给出的15个有关Linux history历史命令 ...

  6. App开发-使用Vue3+Vant组件实现历史搜索记录功能

    使用Vue3+Vant组件实现App历史搜索记录功能 最近在开发一款新的app项目,我自己也是第一次接触app开发,经过团队的一段时间研究调查,决定使用Vue3+Vant前端组件的模式进行开发,vue ...

  7. LINUX下用CTRL+R快速搜索HISTORY历史命令,快速索引到之前使用过的命令行语句

    LINUX下用CTRL+R快速搜索HISTORY历史命令,快速索引到之前使用过的命令行语句 前提是,搜索已经使用的命令,否则是查不出来结果的. ctrl+r 用途:反向搜索执行过的命令.(revers ...

  8. Linux中history历史命令使用方法详解

    在/etc/profile里添加如下:#History export HISTTIMEFORMAT="[%F %T]" HISTDIR=/home/common/.hist if ...

  9. centos history历史命令添加时间戳

    history历史命令添加时间戳 linux系统中经常会使用的history命令来查看历史命令,但是,一般的history命令只显示历史命令,并没有显示历史什么时间执行的命令,如下图所示: 历史命令添 ...

最新文章

  1. 几个cvebase_ifo基础信息融合在一起
  2. Linux环境下段错误的产生原因及调试方法小结
  3. mysql ef vs
  4. [RabbitMQ]RabbitMQ原理与相关操作(一)
  5. 从零开始发布web项目(五)
  6. 通过源码告诉你,阿里的RocketMQ事务消息到底牛逼在哪?
  7. pom.xml配置文件中所有标签及作用简单描述
  8. 程序员计算手机分辨率比例
  9. 野人与传教士过河java_传教士和野人过河(经典MC问题)
  10. Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)
  11. (十)nodejs循序渐进-高性能游戏服务器框架pomelo之介绍和安装篇
  12. JavaScript——闭包函数及拓展题目
  13. python创建txt文件_Mac怎么创建txt文件?教你设置新建txt的快捷键
  14. std::function
  15. python -- 拉勾网爬虫模拟登录
  16. MFC中Combo控件的使用
  17. 使用Tab键控制切换网页光标位置
  18. 设计模式(21)备忘录模式
  19. Win10 功能大全
  20. 30硕士毕业,工作一年的码农,看不到前景,未来怎么办?要不要转行?

热门文章

  1. 计算坐标点的距离计算机公式,计算两个GPS坐标点的距离
  2. python 点_Python中的方括号和点符号有什么区别?
  3. 1.9 编程基础之顺序查找 10 找最大数序列(5分) python
  4. 第1课贝贝的交通指挥系统(《聪明人的游戏:信息学探秘.提高篇-2017-06-C++版》)
  5. mysql主从代替技术_mysql主从复制及失败切换
  6. Qt学习之Qt基础入门(下)
  7. python内置方法怎么使用_python中的常用内置方法
  8. shell不允许输入空字符_shell脚本编程之控制脚本
  9. 【ES6-11(2015-2020)】特性总览与开发环境准备
  10. python 正则表达式判断字符串是否为回文_JS使用栈判断给定字符串是否是回文算法示例...