linux 记录用户操作

上面脚本在系统的/var/log/.history下新建个history目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个

vim /etc/profile.d/history.sh
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
HISTDIR=/var/log/.history
DT=`date +%Y%m%d`
LogTime=`date +%Y%m%d_%H%M%S`
if [ -z $USER_IP ]
then
  USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
  mkdir -p $HISTDIR
  chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME}/${DT}/ ]
then
  mkdir -p $HISTDIR/${LOGNAME}/${DT}/
  chmod 300 $HISTDIR/${LOGNAME}
fi

if [ ! -f $HISTDIR/${LOGNAME}/${DT}/$USER_IP ]
then
  touch $HISTDIR/${LOGNAME}/${DT}/$USER_IP
  chmod 600 $HISTDIR/${LOGNAME}/${DT}/$USER_IP
fi

export HISTSIZE=4000
export HISTTIMEFORMAT="%T "
export HISTORY_FILE="$HISTDIR/${LOGNAME}/$DT/${USER_IP}"
export PROMPT_COMMAND='{ thisHistID=`history 1|awk "{print \\$1}"`;lastCommand=`history 1| awk "{\\$1=\"\" ;print}"`;logTime=${whoStr[4]};if [ ${thisHistID}x != ${lastHistID}x ];then echo
 -E  $lastCommand ;lastHistID=$thisHistID;fi; } >> $HISTORY_FILE'
export HISTFILE="$HISTDIR/${LOGNAME}/$DT/${USER_IP}.${LogTime}"


还有一种方案:这个方案会在每个用户退出登录 时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也可通过配置“/etc/rsyslog.conf”进一步将日志发送给日志服务器:

操作如下:
把下面内容添加到/etc/profile文件底部
[root@elk-node1 ~]# vim /etc/profile.d/.history
........
  
#设置history格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null| \
awk '{print $NF}'|sed -e 's/[()]//g'`] "
  
#登录时清空当前缓存
echo "" > .bash_history
  
#记录shell执行的每一条命令
export PROMPT_COMMAND='\
if [ -z "$OLD_PWD" ];then
export OLD_PWD=$PWD;
fi;
if [ ! -z "$LAST_CMD" ] && [ "$(history 1)" != "$LAST_CMD" ]; then
logger -t `whoami`_shell_cmd "[$OLD_PWD]$(history 1)";
fi ;
export LAST_CMD="$(history 1)";
export OLD_PWD=$PWD;'

 

转载于:https://www.cnblogs.com/yxy-linux/p/9552952.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值