linux记录每个用户执行的命令
1.在/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
2.在/etc/bashrc中添加如下代码:
- #history
- USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
- HISTFILESIZE=4000
- HISTSIZE=4000
- HISTTIMEFORMAT="%F %T ${USER_IP} `whoami` "
- export HISTTIMEFORMAT
最终效果:
这段脚本的作用是把每个用户执行的命令记录在/usr/share/.history下以用户名命名的目录下,历史记录文件名根据用户ip和时间命名。打开/usr/share/.history目录会发现里边保存了之前记录的历史命令文件