zoukankan      html  css  js  c++  java
  • 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;'
  • 相关阅读:
    git常用操作
    Spring学习(5):DI的配置
    007.python学习课程(元组)
    006.python学习课程(列表)
    004.python学习课程(循环语句)
    005.python学习课程(字符串)
    003.python学习课程(条件语句)
    002.python学习课程(输入、赋值、计算)
    001.python学习课程(环境搭建、变量、数据类型、输出)
    asterisk 目录
  • 原文地址:https://www.cnblogs.com/yxy-linux/p/9552952.html
Copyright © 2011-2022 走看看