Linux下监控用户操作轨迹
在实际工作当中,都会碰到误删除、误修改配置文件等事件。如果没有堡垒机,要在linux系统上查看到底谁对配置文件做了误操作,特别是遇到删库跑路的事件,当然可以通过history来查看历史命令记录,但如果把history记录涂抹掉了,照样啥也看不到了。
不要担心。
linux script命令可以满足我们的需求,script可以记录终端会话,只要是linux6.3以上的系统,都会自带script命令,下面我用centos 7.4系统来测试一下。
1 查看系统版本
[root@aliyun ~]# cat /etc/redhat-release
CentOS Linux release 7.4. (Core)
2 验证script命令
[root@aliyun ~]# which script
/usr/bin/script
3 创建目录、赋予权限
[root@aliyun ~]# mkdir /var/log/script
[root@aliyun ~]# chmod /var/log/script/
4 配置profile文件
在末尾添加如下内容:
[root@aliyun ~]# vim /etc/profile
if [ $UID -ge ]; then
exec /usr/bin/script -t >/var/log/script/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /var/log/script/$USER-$UID-`date +%Y%m%d%H%M`.log
fi

用户登录执行的操作都会记录到/var/log/script/*.log里,可以通过more、vi等命令查看目录里的日志。
参数说明:
-t
指明输出录制的时间数据;
-f
在输出到日志文件的同时,也可以查看日志文件的内容;
-a
输出录制的文件,在现有内容上追加新的内容;
-q
可以使script命令以静默模式运行;
5 使配置生效
[root@aliyun ~]# source /etc/profile
6 验证
[root@aliyun ~]# exit
exit 连接断开
连接成功 Last login: Thu Aug :: from 122.97.179.119 Welcome to Alibaba Cloud Elastic Compute Service ! [root@aliyun ~]# date
Thu Aug :: CST
[root@aliyun ~]# cd /var/log/script/
[root@aliyun script]# ll -h
total 412K
-rw-r--r-- root root Aug : root--.date
-rw-r--r-- root root Aug : root--.log
-rw-r--r-- root root Aug : root--.date
-rw-r--r-- root root 404K Aug : root--.log
(.log)操作历史;
(.data)回放操作;
在/var/log/script目录中,已经产生了log和data为后缀的文件,并且还看到了root用户和UID号。
可以用scriptreplay命令回放操作:
先指定时间文件(.data),再指定命令文件(.log)。
[root@aliyun script]# scriptreplay root--.date root--.log
可以随时查看,定位问题好找原因。
Linux下监控用户操作轨迹的更多相关文章
- Linux 下监控用户最大进程数参数(nproc)是否到达上限
Linux 下监控用户最大进程数参数(nproc)是否到达上限的步骤: 1.查看各系统用户的进程(LWP)数: 注意:默认情况下采用 ps 命令并不能显示出所有的进程.因为 Linux 环境下执行多线 ...
- linux下监控用户的操作记录---录像播放性质
想知道用户登陆系统后都操作了什么,怎么办? 别急,linux下有一个script工具,专门记录终端会话中所有输入输出结果,并存放到指定文件中. 先看看怎么录制吧! 1.创建日志存放目录 # mkdir ...
- Linux 下监控用户最大进程数参数(nproc)是否到达上限的步骤:
https://www.cnblogs.com/autopenguin/p/6184886.html 1.查看各系统用户的进程(LWP)数: 注意:默认情况下采用 ps 命令并不能显示出所有的进程.因 ...
- linux下监控jvm 使用的方法
之前一直用jconsole监控jvm,图形界面简单易用,最近因为需要在纯linux下进行操作,所以总结了一下 linux下监控jvm的例子,这次主要用到了jstat工具, 各个参数意义: jstat ...
- linux下监控进程需掌握的四个命令
linux下监控进程需掌握的四个命令 在LInux系统下,最困难的工作之一就是跟踪正在系统中运行的程序,尤其是现在,图形桌面使用很多的程序,只是为了生成一个桌面环境,系统中运行了太多的进程,幸运的 ...
- linux下的shell操作mysql
(1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...
- linux下添加用户并赋予root权限
1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy //修改密码Changing pass ...
- 【Hadoop系列】linux下 root用户免密码登录远程主机 ssh
SSH原理:[Hadoop系列]linux SSH原理解析 操作环境: CentOS 6.5 操作对象: 用户A主机和远程主机B 正文部分:斜体加粗代表linux指令. linux下 非root用户免 ...
- Linux下常用的操作
Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...
随机推荐
- d3.js 地铁轨道交通项目实战
上一章说了如何制作一个线路图,当然上一章是手写的JSON数据,当然手写的json数据有非常多的好处,例如可以应对客户的各种BT需求,但是大多数情况下我们都是使用地铁公司现成的JSON文件,话不多说我们 ...
- PHP中16个高危函数
php中内置了许许多多的函数,在它们的帮助下可以使我们更加快速的进行开发和维护,但是这个函数中依然有许多的函数伴有高风险的,比如说一下的16个函数不到万不得已不尽量不要使用,因为许多“高手”可以通过这 ...
- Spring中的事务回滚机制
初学者笔记 问题:在Java项目汇中,添加@Transactional注解,报错之后,事务回滚未生效,数据仍插入数据库中.经查看报错位置位于新增成功之后.空指针异常. 一.特性 先了解一下@Trans ...
- C#Windows Forms 使MessageBox顶层显示--xdd
方法1. MessageBox.Show("Text", "Caption", MessageBoxButtons.OK, MessageBoxIcon.Inf ...
- PV、UV、IP、TPS、QPS、RPS等网络度量术语
PV:(访问量)即Page View --页面浏览量或单击量.用户每一次对网站中的任何页面进行访问后,被记录为一次PV,用户对同一页面的多次刷新,访问量将进行累计: UV:(独立访客)即Unique ...
- 查找节点(getAttribute())
getAttribute():方法将返回一个给定元素的一个给定属性节点的值: attributeValue = element.getAttribute(attributeName); 给定属性的名字 ...
- 5、Docker 核心原理-资源隔离和限制
Docker 资源隔离 Docker 是利用linux的LXC技术,内核的Kernel namespace Namespace: PID - 通过PID的namespace隔离,可以嵌套 NET - ...
- Coroutines in Android - One Shot and Multiple Values
Coroutines in Android - One Shot and Multiple Values 在Android中, 我们用到的数据有可能是一次性的, 也有可能是需要多个值的. 本文介绍An ...
- GitHub 上值得参考的完整的 iOS-App 源码
转自:https://www.zhihu.com/question/28518265 作者:wjh2005链接:https://www.zhihu.com/question/28518265/answ ...
- git 使用详解(10)-- 远程分支
远程分支 远程分支(remote branch)是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在Git 进行网络交互时才会更新.远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支 ...