zoukankan      html  css  js  c++  java
  • linux记录所有用户登陆及执行过的命令脚本

    第一个窗口
    [root@hdss7-4 ~]# echo "
    history
    USER=`whoami`
    USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
    if [ "$USER_IP" = "" ]; then
    USER_IP=`hostname` ## 获取ip 并且存到变量中
    fi
    if [ ! -d /var/log/history ]; then
    mkdir /var/log/history ## 判断该目录下 是否有此目录如果没有则新建且开启 777权限
    chmod 777 /var/log/history
    fi
    if [ ! -d /var/log/history/${LOGNAME} ]; then
    mkdir /var/log/history/${LOGNAME} ## 判断 /var/log/history目录下有没有 当前登录的用户文件夹,如果没有则创建且设置 300 权限 LOGNAME: 是当前登录的用户名 例如 ubuntu或root
    chmod 300 /var/log/history/${LOGNAME}
    fi
    ## 最后更改全局的HISTFILE变量
    export HISTSIZE=4096 ##更改HISTFILE 大小
    DT=`date +"%Y%m%d_%H:%M:%S"`
    export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
    ## 全局更改 HISTFILE的日志存放目录 默认 每个用户下面都有自己的bash.history 这样做是为了集中管理记录这些命令日志,
    ##修改了全局变量 HISTFILE 就等于修改了 全部用户的HISTFILE设置。
    ##所以 最终呈现的效果就是 在用户退出远程连接时 才会记录到日志中。
    ## 此操作 其实 就是 更改了各个用户的history存储目录且日志文件名字有所变化其他的都跟原来一样。
    chmod 600 /var/log/history/${LOGNAME}/history 2>/dev/null
    ">>/etc/profile

    [root@hdss7-4 ~]# source /etc/profile
    [root@hdss7-4 ~]# useradd zhangsan
    [root@hdss7-4 ~]# echo "aaaaaa" | passwd --stdin zhangsan

    新开一个窗口(就是第二个窗口)
    rambo@rambo:~$ ssh zhangsan@172.16.186.23
    任意执行进行测试

    回到第一个窗口进行查看

    QQ群一起学习Linux、开源、系统集成

  • 相关阅读:
    Filter 和 interceptor 的区别
    JAVA基础知识|Optional
    CentOS 7安装MariaDB 10详解以及相关配置
    Linux系统zookeeper环境搭建(单机、伪分布式、分布式)
    Java设计模式——模板方法模式
    Java设计模式——装饰模式
    Java设计模式——观察者模式
    Java设计模式——代理模式
    Java设计模式——适配器模式
    Java设计模式——策略模式
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/14429457.html
Copyright © 2011-2022 走看看