有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,但Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?我们作为系统管理员可以这样做!

1.mkdir -p /usr/local/domob/records/   创建审计的目录
 
  chmod 777 /usr/local/domob/records/   设置目录权限
 
  chmod +t /usr/local/domob/records/     +t 表示
 
2.vi /etc/profile 配置文件在最后添加下面的代码
 

if [ ! -d  /usr/local/domob/records/${LOGNAME} ]   意思是判断用户这个目录是否存在,不存在时会自动创建 ,创建用户的文件
then
 
mkdir -p /usr/local/domob/records/${LOGNAME}     
 
chmod 300 /usr/local/domob/records/${LOGNAME}    为这个用户给予的权限
 
fi
 
export HISTORY_FILE="/usr/local/domob/records/${LOGNAME}/bash_history"     定义变量文件的存储路径
 
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'