按用户和登录时间保存命令操作记录
[root@localhost ~]# vi /etc/profile LOGIP=`who -u am i 2>/dev/null| awk '{print $7}'|sed -e 's/[()]//g'` LOG_DIR=/var/log/history if [ -z $LOGIP ] then LOGIP=`hostname -s` fi if [ ! -d $LOG_DIR ] then mkdir -p $LOG_DIR chmod 777 $LOG_DIR fi if [ ! -d $LOG_DIR/${LOGNAME} ] then mkdir -p $LOG_DIR/${LOGNAME} chmod 300 $LOG_DIR/${LOGNAME} fi export HISTSIZE=4096 LOGTM=`date +"%Y%m%d_%H%M%S"` export HISTFILE="$LOG_DIR/${LOGNAME}/${LOGIP}-$LOGTM" chmod 600 $LOG_DIR/${LOGNAME}/*-* 2>/dev/null [root@localhost ~]# source /etc/profile [root@localhost ~]# exit
使用 script 命令记录用户操作行为
[root@localhost ~]# vi .bash_profile
/usr/bin/script -qaf /root/$USER-`date +%Y%m%d%H%M`.log’
[root@localhost ~]# exit
-q,script以静默的方式运行,用户没有感知,不然会有一行script start的提示。
-a,该选项将会让记录附加到文件中,而不会擦除先前的记录。
-f,实时更新文件,只要用户退出后,新上的用户会自动又创建一个时间记录日志。
使用more命令查看,包含屏幕输出
显示为一次登录两个用户,使用exit退出是需要执行两次
[root@localhost ~]# w
14:56:32 up 48 days, 22:44, 2 users, load average: 0.04, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.2.144 14:56 0.00s 0.00s 0.00s -bash
root pts/1 – 14:56 0.00s 0.00s 0.00s w
[root@localhost ~]#
配置 history 命令显示操作时间、用户和登录 IP
[root@localhost ~]# vi /etc/profile
HISTFILESIZE=4000 #默认保存命令是1000条,这里修改为4000条
HISTSIZE=4000
USER_IP=`who -u am i 2>/dev/null| awk ‘{print $NF}’|sed -e ‘s/[()]//g’` #取得登录客户端的IP
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
HISTTIMEFORMAT=”%F %T $USER_IP:`whoami` ” #设置新的显示history的格式
export HISTTIMEFORMAT
[root@localhost ~]# source /etc/profile