shell简单操作日志审计

hcwei 2020年06月10日 75次浏览

通常运维管理人员需要知道一台服务器上有哪些用户登录过,在服务器上执行了哪些命令,干了哪些事情,这就要求记录服务器上所用登录用户的操作信息,这对于安全维护来说很有必要。操作如下:

vim /etc/profile

在最后添加如下指令

export PS1='[\u@\h \w]# '
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ -z "$USER_IP" ]
then
USER_IP=`hostname`
fi
if [ ! -d /opt/history ]
then
mkdir /opt/history
chmod 777 /opt/history
fi
if [ ! -d /opt/history/${LOGNAME} ]
then
mkdir /opt/history/${LOGNAME}
chmod 300 /opt/history/${LOGNAME}
fi
export HISTSIZE=2000
export HISTFILESIZE=2000
export HISTTIMEFORMAT="%Y%m%d-%H%M%S:"
DT=`date +"%Y%m%d_%H%M%S"`
export HISTFILE="/opt/history/${LOGNAME}/${USER_IP} hist.$DT"
chmod 600 /opt/history/${LOGNAME}/*history* 2>/dev/null

用户每次登陆会在/opt/history目录下生产一个与登录名对应的文件夹,文件夹内记载着用户登录信息及操作,方便日后排查问题。