8 月 012016
 

 

按用户和登录时间保存命令操作记录

[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

linux-centos-history-logs-01

使用 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

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据