zoukankan      html  css  js  c++  java
  • Linux下记录登录用户历史操作

      前言:众所周知Linux是一个可以同时让多个用户登录的操作系统,每个用户的操作都影响着Linux运行,除了要做好安全工作以外,防止人为恶意损坏也是很关键的,比如有人恶意执行危险命令,要查找就得记录所有用户名,登录用户,用户的IP地址,执行时间,执行的命令就很重要。分享一个脚本,可以记录所有用户使用过的操作命令外,还能记录登录的Key的用户,登录IP,时间等。
     

    user_ip=`who -u am i 2>/dev/null | awk '{print $NF}'| sed -e 's/[()]//g'`
    ssh_key=$(ssh-add  -L|awk '{print $2}' | xargs  -i grep '{}' ~/.ssh/authorized_keys |awk '{print $3}')
    hisdir=/data/ops/.history
    if [ -z ${user_ip} ];then
        user_ip=$(hostname)
    fi
    
    if [ ! -d ${hisdir} ];then
        mkdir -p ${hisdir}
        chmod 777 ${hisdir}
    fi
    
    if [ ! -d ${hisdir}/${LOGNAME} ];then
        mkdir -p ${hisdir}/${LOGNAME}
        chmod 300 ${hisdir}/${LOGNAME}
    fi
    
    export HISTSIZE=4000
    DT=`date +%Y-%m-%d_%H:%M:%S`
    export HISTFILE="${hisdir}/${LOGNAME}/${user_ip}_${ssh_key}_history.$DT"
    export HISTTIMEFORMAT='%Y-%m-%d-%H:%M:%S: '
    chmod 600 ${hisdir}/${LOGNAME}/*.history* 2>/dev/null
    

    把脚本放到/etc/profile.d/目录下面,每次用户登录即可生效
    效果如下:


    以_分割,第一是用户的登录IP,第二个是KEY的名字后面接着是日期时间,下面是操作过的命令

  • 相关阅读:
    linux软件名规则
    给php开启mysql扩展
    centos6可用的Apache管理脚本
    Centos下设置redis开机自启动
    拆卸mysql
    如何判断是否在一个网路中
    linux 如何清理僵尸进程
    如何查找僵尸进程并Kill之,杀不掉的要查看父进程并杀之
    一张图告诉你php的命名空间和自动加载
    PHP的文件加载机制到底是什么目录
  • 原文地址:https://www.cnblogs.com/lucktomato/p/14742846.html
Copyright © 2011-2022 走看看