码迷,mamicode.com
首页 > 系统相关 > 详细

shell历史命令记录功能

时间:2016-04-20 15:17:58      阅读:924      评论:0      收藏:0      [点我收藏+]

标签:shell 历史记录 命令

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


让history命令自动记录所有shell命令的执行时间,编辑/etc/bashrc文件,最后添加如下内容:

===============

HISTFILESIZE=4000

HISTSIZE=4000

HISTTIMEFORMAT=‘%F %T ‘

export HISTTIMEFORMAT

===============

使配置生效source /etc/bashrc

其中,HISTFILESIZE定义了在.bash_history文件中保存命令的记录总数,默认值是1000,这里设置为4000;HISTSIZE定义了history命令的输出的记录总数;

HISTTIMEFORMAT定义时间显示格式,这里的格式与date命令后的“+%F %T”是一致的;HISTTIMEFORMAT作为history的时间变量将值传递给history命令。

通过这样的设置后,执行history命令,就会显示每条历史命令的详细执行时间,例如:

技术分享

技术分享


为了确保服务器的安全,保留shell命令的执行历史是非常有用的一条技巧,虽然shell有历史功能,但是这个功能并非针对审计目的而设计,因此很容易被黑客篡改或丢失;

下面在介绍一种方法,可以实现详细记录登陆过系统的用户、IP地址、shell命令以及详细操作时间等,并将这些信息以文件的形式保存在一个安全的地方,以供系统审计和故障排查。

将下面这段代码添加到/etc/profile文件末尾中,即可实现上述功能

======================================


#history

USER_IP=`who -u am i 2>/dev/null| awk ‘{print $NF}‘|sed -e ‘s/[()]//g‘`

HISTDIR=/usr/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


=======================================

使配置生效 source /etc/profile

每段代码将每个用户的shell命令执行历史以文件的形式保存在/usr/share/.history目录中,每个用户一个文件夹,并且文件夹下的每个文件以IP地址加shell命令操作时间的格式命名,下面是user01用户执行shell命令的历史记录文件,基本效果如下:

技术分享技术分享


本文出自 “Linux运维的自我修养” 博客,请务必保留此出处http://ywliyq.blog.51cto.com/11433965/1765711

shell历史命令记录功能

标签:shell 历史记录 命令

原文地址:http://ywliyq.blog.51cto.com/11433965/1765711

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!