利用脚本保存shell命令于本地

为何确保服务器的安全,保留shell命令的执行历史是非常有用的一条技巧。虽然shell有历史功能,但是这个功能并非针对审计目的而设计,因此很容易被黑客篡改或丢失。下载介绍一种方法,可以实现详细记录登陆过的用户、IP地址、shell命令以及详细的操作时间等,并将这些信息以文件的形式保存在一个安全的地方,以供系统审计和故障排查。

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

#history
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/var/log/.hist
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=4096
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT"
chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null
添加新评论