背景:Linux操作系统本身有默认部分功能的日志记录功能,比如用户登录信息可以在 “/var/log/aduit”目录下查到,但是如果想要查询到哪些操作系统用户进行了什么操作命令,需要独立做审计功能设置(相对麻烦),这里用另外一种方式来实现,不采用系统的审计功能,来记录操作系统的登录信息及所有操作日志信息。这样当系统出现误操作而造成重要的数据丢失,就能查到是谁操作的(当然需要先解决问题再定责)。 具体执行命令如下(注意备份):
root进入根目录编辑/etc/profile文件,在文件末尾加入下面代码:
[root@devfin]# cd
[root@devfin]# vi /etc/profile
#add by pm 20181221 record os users operation commands.
history
USER=`whoami`
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 /var/log/history ]; then
mkdir /var/log/history
chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
mkdir /var/log/history/${LOGNAME}
chmod 300 /var/log/history/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`
export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null
以下界面是自己做实验的结果: