伟的博客 研发工程师

LINUX用户登录后精确命令记录

2016-04-01

主要功能:  可以记录哪个ip和时间(精确到秒)作了哪些命令   通过用户登录时候,重新定义HISTFILE   HISTFILE文件名包含登录用户名,ip,登录时间(精确到秒)等   这样即使相同的用户从不同ip、在不同的时间登录都会被记录   可以记录每条命令的开始执行时间   把下面的代码直接粘贴到/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/.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=4096

DT=$(date +%Y%m%d_%H%M%S)

export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"

#chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null

Comments