专栏首页Laoqi's Linux运维专列Linux 系统添加操作记录审计

Linux 系统添加操作记录审计

有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,但Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?

一般小型架构添加这个足够了,如果中大型的架构建议使用 jumpserver

  1. 创建记录目录
mkdir -p /usr/local/domob/records/
 
chmod 777 /usr/local/domob/records/
 
chmod +t /usr/local/domob/records/

+t:防删除

  1. vi /etc/profile 在最后添加下面的代码
if [ ! -d  /usr/local/domob/records/${LOGNAME} ]
 
then
 
mkdir -p /usr/local/domob/records/${LOGNAME}
 
chmod 300 /usr/local/domob/records/${LOGNAME}
 
fi
 
export HISTORY_FILE="/usr/local/domob/records/${LOGNAME}/bash_history"
 
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

只有root用户才可以查看所有用户的操作记录:

[[email protected]-1 ~]# cd /usr/local/domob/records/
[[email protected]-1 records]# ls
admin  root
[[email protected]-1 records]# cd admin
[[email protected]-1 admin]# ls
bash_history
[[email protected]-1 admin]# cat bash_history 
2017-09-23 21:15:11 ##### admin pts/1 (192.168.15.253) #### history
2017-09-24 14:42:43 ##### admin pts/0 (192.168.14.109) #### history
2017-09-24 14:42:46 ##### admin pts/0 (192.168.14.109) #### sudo sed  -i 's/SELINUX=enforcing/SELINUX=disabled/g'  /etc/selinux/config
2017-09-24 14:42:47 ##### admin pts/0 (192.168.14.109) #### sudo setenforce 0
2017-09-24 14:48:33 ##### admin pts/0 (192.168.14.109) #### sudo setenforce 0
2017-09-25 14:25:59 ##### admin pts/0 (192.168.15.253) #### sudo systemctl stop firewalld
2017-09-25 14:26:16 ##### admin pts/0 (192.168.15.253) #### w
2017-09-25 14:27:27 ##### admin pts/0 (192.168.15.253) #### history
2017-09-25 14:27:46 ##### admin pts/0 (192.168.15.253) #### sudo systemctl disable firewalld
2017-09-25 14:27:56 ##### admin pts/0 (192.168.15.253) #### netstat -lntp
2017-09-25 14:35:15 ##### admin pts/0 (192.168.15.253) #### cd /usr/local/nginx/sbin
2017-09-25 14:35:17 ##### admin pts/0 (192.168.15.253) #### ls
2017-09-25 14:35:22 ##### admin pts/0 (192.168.15.253) #### cd nginx
2017-09-25 14:35:24 ##### admin pts/0 (192.168.15.253) #### cd
2017-09-25 14:35:49 ##### admin pts/0 (192.168.15.253) #### find / -name "*vhost"
2017-09-25 14:36:05 ##### admin pts/0 (192.168.15.253) #### sudo find / -name "vhost"
2017-09-25 14:36:15 ##### admin pts/0 (192.168.15.253) #### cd /usr/local/nginx/conf/vhost/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis 分布式集群架构配置

    老七Linux
  • set_uid,set_gid,stick_bit,软硬连接

    set_uid set uid 的意思是普通用户临时拥有该命令所有者的身份 授权的前提是必须是二进制文件,例如:ls passwd 等 给ls命令加s权限 rw...

    老七Linux
  • MongoDB 操作配置

    老七Linux
  • sql monitor的使用(一) (r2第30天)

    在sql调优中,对于sql语句的实时监控显得尤为重要,如果某条sql语句的性能比较差。可能从前端的直观感觉就是执行时间比较长。 对于dba来说,可能关注的相关因...

    jeanron100
  • Apache Kylin目录详解

    Kylin 会在 HDFS 上生成文件,根目录是 “/kylin” (可以在conf/kylin.properties中定制),然后会使用 Kylin 集群的元...

    create17
  • Nature | 细菌免疫系统中潜在的抗病毒天然化合物库

    大家好,今天跟大家分享一篇Nature上的文章,本文的通讯作者是威兹曼科学研究所分子遗传学系的Rotem Sorek教授,他们课题组的主要研究方向是细菌与噬菌体...

    DrugAI
  • html5- canvas可拖动的曲线“视频教程”

    重 点 bezierCurveTo()方法,即三次贝塞尔曲线方法 此方法需要三个点, 前两个点是用于三次贝塞尔计算中的控制点 第三个点是曲线的结束点。 bezi...

    web前端教室
  • ajax异步操作1

    ajaxTest.html <html> <head> <meta http-equiv="Content-Type" content="text/htm...

    闵开慧
  • Linux中inotify+unison实现数据双向(多向)实时同步

    楠楠
  • local sandbox html里的script tag是如何load到memory里的

    http://localhost:8090/cus.crm.mytasks/test-resources/sap/ushell/shells/sandbox/f...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券