需求:如何知道某个用户,什么时间登录过系统,什么时间退出系统,在这段时间做了哪些操作。


使用到的技术:script和scriptreplay都是由util-linux-ng软件包提供的。


将以下脚本加入到/etc/profile 下面即可

PS1="`whoami`@`hostname`:"'[$PWD]'
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/history ]
then
mkdir /tmp/history
chmod 777 /tmp/history
fi
if [ ! -d /tmp/history/${LOGNAME} ]
then
mkdir /tmp/history/${LOGNAME}
chmod 300 /tmp/history/${LOGNAME}
fi
DT=`date +"%Y%m%d_%H%M%S"`
#if [ $UID -ge 500 ]; then //对特定的用户记录
exec /usr/bin/script -t 2>/tmp/history/${LOGNAME}/${USER_IP}_$DT.date  -a -f -q /tmp/history/${LOGNAME}/${USER_IP}_$DT.log
#fi
chmod 600 /tmp/history/${LOGNAME}/*history* 2>/dev/null


#查看操作回放
#scriptreplay 192.168.3.76_20141223_112802.date 192.168.3.76_20141223_112802.log

以上脚本会在/tmp/history创建相关的操作日志记录。