Linux下通过history命令查看用户的所有历史操作记录,而这些记录存储在用户目录下的“.bash_history”文件中
1 | ls -lh .bash_history |
默认的history命令只能看到用户历史操作记录,并不能区分用户操作命令的时间,所以就需要进行如下改动:
cat /etc/bashrc #新增如下条目
1 | HISTFILESIZE=4000 |
- HISTFILESIZE定义了在.bash_history文件中保存命令的记录总数,默认值是1000,这里设置为4000;
- HISTSIZE定义了history命令输出的记录总数;
- HISTTIMEFORMAT定义时间显示格式,这里的格式与date命令后的“+”%F %T””是一致的;
- HISTTIMEFORMAT作为history的时间变量将值传递给history命令。
为了确保安全,保留shell命令执行历史是非常重要的,虽然有history查看历史命令,但功能并非针对审计目的而设计,因此很容易被篡改或丢失。故需要通过下面的shell将 登录过系统的用户、IP地址、shell命令以及详细操作时间等信息保存在一个安全的地方,便于审计与排查。
cat /etc/profile #新增如下代码即可
1 | history |
这段代码将每个用户的shell命令执行历史以文件的形式保存在/usr/share/.history目录中,每个用户一个文件夹,并且文件夹下的每个文件以IP地址加shell命令操作时间的格式命名。效果如下:
1 | [root@CentOS7 root]# pwd |
保存历史命令的文件夹目录要尽量隐蔽,避免被黑客发现后删除。
参考:南非蚂蚁
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2019/06/20/合理利用history功能-Linux/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!