利用 PROMPT_COMMAND 实现命令审计功能:
记录什么用户,在什么时间,做了什么操作,然后将查到的信息记录到一个文件里。

具体操作:

将以下内容追加到/etc/profile:

#############日志审计
chmod +s /usr/bin/chmod &> /dev/null       #让普通用户能建立目录及文件
chmod +s /usr/bin/chown &> /dev/null       #让普通用户能建立目录及文件
mkdir -p /var/log/history/${LOGNAME}       #建立以用户名称命名的目录
chmod 777 /var/log/history &> /dev/null
chown -R ${LOGNAME}. /var/log/history/${LOGNAME} &> /dev/null
chmod 700 /var/log/history/${LOGNAME} &> /dev/null
export HISTORY_FILE=/var/log/history/${LOGNAME}/`date '+%Y-%m-%d_%T'`.log &> /dev/null    #自定义日志文件路径及名称
export PROMPT_COMMAND='{ date +" $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE' &> /dev/null     #将命令追加到日志文件
chmod 600 /var/log/history/${LOGNAME}/* 2> /dev/null
chmod -s /usr/bin/chmod &> /dev/null       #取消普通用户授权
chmod -s /usr/bin/chown &> /dev/null       #取消普通用户授权

保存退出

source /etc/profile

如果没有报错说明成功了。

利用SHELL的PROMPT_COMMAND添加日志审计功能,实时记录任何用户的操作到日志文件中的更多相关文章

  1. 利用paramiko模块实现堡垒机+审计功能

    paramiko模块是一个远程连接服务器,全真模拟ssh2协议的python模块,借助paramiko源码包中的demos目录下:demo.py和interactive.py两个模块实现简单的堡垒机+ ...

  2. [置顶] 使用struts拦截器+注解实现网络安全要求中的日志审计功能

    J2EE项目中出于安全的角度考虑,用户行为审计日志功能必不可少,通过本demo可以实现如下功能: 1.项目中记录审计日志的方法. 2.struts拦截器的基本配置和使用方法. 3.struts拦截器中 ...

  3. MariaDB开启日志审计功能

    对于MySQL.Percona.MariaDB三家都有自己的审计插件,但是MySQL的审计插件是只有企业版才有的,同时也有很多第三方的的MySQL的审计插件,而Percona和MariaDB都是GPL ...

  4. linux 记录所有用户bash操作日志

    记录所有用户登录系统的任何操作日志,以便有据可查. 1.编辑 /etc/profile文件.   1 # vim /etc/profil 2. 在其后添加如下内容   1 2 3 4 5 6 7 8 ...

  5. 【shell脚本】不停地telnet一个ip或域名,并输出结果到文件中===telnetscript.sh

    编写shell脚本不停地telnet一个域名,并输出结果到文件中 [root@localhost ~]# cat telnetscript.sh #!/bin/bash #检查是否在root用户下执行 ...

  6. linux下利用shell脚本实现添加crontab任务

    本来直接用crontab -e 就可以打开vim,输入要执行的任务保存退出就可以添加任务直接启动运行了.但是今天组长说能不能写个shell不用打开vi就能添加到crontab的. 最先想到的是怎么在s ...

  7. 利用shell实现批量添加用户

    批量添加用户并设置随机密码,把添加的用户的名字和密码保存到文件中. [root@lamp scripts]# cat user.sh #!/bin/sh ` do pass=$(-) //取随机数的方 ...

  8. 日志审计功能-appent多个日志

    public static void main(String[] args) { Jedis jedis = new Jedis("127.0.0.1"); jedis.setnx ...

  9. 16.Linux配置环境变量和日志history和Terminal颜色和用户(IP)操作日志记录

    $ vim /etc/profile #####################环境变量################################# export TZ='Asia/Shangh ...

随机推荐

  1. Xcode中的Target

    Xcode中的Target,主要包含下面几点知识: Target依赖 Build Phase Build Rule Target依赖 Target的依赖关系表示一个Target要构建成功,必先依赖于其 ...

  2. Daily Scrum meeting 2015.11.9

    今天主要完成项目最后的调试工作及二轮迭代的准备 下面是今天的Task统计: Member Today’s Task Tomorrow’s Task 江昊 今天,完成前端界面调整,网站发布 调试 杨墨犁 ...

  3. 第一次spring冲刺第6天

    鉴于昨天的调查,今天做了个谈论,主要针对以下几个问题 1.我们的客户类型? 2.如何实现他们的需求? 3.他们真正想要什么? 4.如何保证他们的满足度? 5.怎么使得工程不陷入死循环? 6.还存在什么 ...

  4. 11_Java面向对象_第11天(接口、多态)_讲义

    今日内容介绍 1.接口 2.多态 01接口的概念 * A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的"类". 接口只描述所应该具备的方法,并没有具 ...

  5. *** error 65: access violation at C:0x001B : no 'execute/read' permission

    转自:http://blog.csdn.net/chenqiai0/article/details/7827071 很多人在进行串口调试的时候会遇到这个问题,请大家略看我的代码,解决方法在其中 //实 ...

  6. sqlserver trigger(触发器)-更新某几列数据时触发【转】

    CREATE TRIGGER [dbo].[updataAlarmLevel]ON [dbo].[Alarm_Alarm_Info]AFTER INSERT, UPDATE – 在更新和插入之后ASB ...

  7. 命令行方式操作O365

    这几天公司为O365启用了双因子认证,期间出了些小问题,导致我无法使用管理员账号登入控制台,但是Powershell的方法依旧可以.所以我觉得还是有必要把图形化操作改成脚本操作,以备不时之需.以后凡是 ...

  8. [转帖]CentOS基础命令大全

    https://www.toutiao.com/i6601298434651587085/ 1.关机 (系统的关机.重启以及登出 ) 的命令 shutdown -h now 关闭系统(1) init ...

  9. mysql索引利弊分析

    转载自:http://blog.csdn.net/linminqin/article/details/44342205  索引的利弊与如何判定,是否需要索引 相信读者都知道索引能够极大地提高数据检索的 ...

  10. poj 3067 Japan(树状数组求逆序数)

    链接:http://poj.org/problem?id=3067 题意:左边有n个城市,右边有m个城市,建k条道路,问有这k条道路中有多少个交点. 分析:将城市按x和y从小到大排序,对于每条道路,求 ...