linux系统 长久记录所有用户所有操作记录
在linux系统中想要记录所有登录过当前系统的用户操作,排查有人对当前系统做的何种操作导致系统问题,可以按照如下方法进行。
前言
在描述操作步骤之前,先说一下系统环境变量的相关配置文件
~/.bashrc
和~/.bash_file
,这两个文件是当前用户shell下生效的环境变量配置文件。修改完成之后需要source
一下对应的配置/etc/profile
和/etc/bashsrc
是全局变量。修改完成后所有的用户shell都会生效,这里我们改动的主要是/etc/profile
这个文件,它有一个文件夹/etc/profile.d
目录,其中也是对应的脚本,可以配置定制的环境变量脚本
查看/etc/profile
其中一段代码
关于交互脚本和非交互脚本的详细描述可以参考博文 https://blog.csdn.net/gui951753/article/details/79154496for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do #从/etc/profile.d目录下取出文件 if [ -r "$i" ]; then # 判断是否可执行if [ "${-#*i}" != "$-" ]; then #判断是否为交互式脚本,${-#*i}用来输出脚本类型,如果$-为交互式脚本类型(echo $-输出包含字母i). "$i" #是非交互脚本,不需要查看或者输入任何信息,即可直接执行else. "$i" >/dev/null #否则重定向到空,即不执行fi fi done
实现
针对/etc/profile.d中脚本的执行方式,可以自己编写实现记录所有用户操作记录的脚本get_all_user.sh
,将该脚本放入到/etc/profile.d
文件夹下,并source /etc/profile
即可生效
该脚本在用户退出之后会在/tmp/baron目录下生成用户名的文件夹,并在该文件夹下生成对应的登录ip以及时间为文件名的用户操作记录文件
#get the operation of users on the server#设置终端显示符
#root@[/tmp/baron/]#
user=`whoami`
if [ "$user" == "root" ];thenPS1="`whoami`@"'[$PWD]#'
elsePS1="`whoami`@"'[$PWD]$'
fi#HISTFILE的记录方式是在用户退出后将history中的缓存写入到HISTFILE中
history#获取登录用户ip
USER_IP=`who -u am i 2>/dev/null|awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" == " " ];thenUSER_IP=`hostname`
fi#创建文件夹并设置权限
if [ ! -d /tmp/baron ];thenmkdir /tmp/baronchmod 777 /tmp/baron
fi
if [ ! -d /tmp/baron/${LOGNAME} ];thenmkdir /tmp/baron/${LOGNAME}chmod 300 /tmp/baron/${LOGNAME}
fi#设置history可以记录命令的文件大小
export HISTSIZE=8192
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/baron/${LOGNAME}/${USER_IP}.baron.$DT"
export HISTTIMEFORMAT="%F %T "#只有root对该目录下所有文件有读写权限,防止其他用户改动
chmod 600 /tmp/baron/${LOGNAME}/*baron* 2>/dev/null
生成如下记录,可以看到有具体的登录设备ip以及对应的用户,文件中为用户的具体操作记录。非常直观
参考博文:
深入浅出理解交互式shell和非交互式shell、登录shell和非登录shell的区别 https://blog.csdn.net/gui951753/article/details/79154496
linux命令h—history https://blog.csdn.net/qq_23929673/article/details/97308965
相关文章:

jquery图片播放切换插件
点击这里查看效果可自定义数字样式和左右点击按钮这个更好:移入按钮切换版本更多图片轮播以下是HTML文件代码: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transiti…

安卓饼状图设置软件_话单及银行卡交易智能分析软件
一、产品概况: 思迈奥SMILE数据智能分析软件是由我司自主设计与研发的一款结合在公安和检察院的侦查业务经验而定制研发的数据智能分析系统,包含于话单、电子银行账单、及其它数据(个人出行数据、社会资源数据、微信数据及其它聊天数据)等的数据导入、检…

跨区域MPLS TE
拓扑: R1配置: mpls label range 100 199 mpls traffic-eng tunnels interface Loopback0 ip address 192.168.1.1 255.255.255.255 ! interface Tunnel1 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination 192.168.1.4 tunnel …

C++智能指针: shared_ptr 实现详解
文章目录shared_ptr描述声明作用原理实现函数使用关于shared_ptr循环引用问题shared_ptr描述 声明 shared_ptr属于C11特性中新加的一种智能指针,它的实现方式是模版类,头文件<memory> template <class T> class shared_ptr 所以使用shared…

linux文本处理常用命令
linux文本处理常用命令 linux文本处理命令:grep、sed、printf、awk 1.grep grep的作用是按行查找字符,输出包含字符的行。 #从文件查询 grep hello filename.txt #从管道的输入查询 cat filename.txt|grep hello grep使用示例: grep的查找主要…

arduino 控制无刷电机_智能控制轮椅来了,残疾人的福音!
传统的轮椅已被证明是非常宝贵的工具,为残疾人提供了很多便利,但其只能限制坐在一个位置。外国的一个研究团队通过开发一个功能强大的多功能轮椅,使用户能够通过手机应用程序轻松地在各种各样的位置之间进行切换。(图片来自 IC photo)这是一种…

python科学计算整理
网站: http://bokeh.pydata.org/gallery.html 转载于:https://www.cnblogs.com/gogly/p/3453341.html
TP-link 841N 刷DD-WRT固件
2012年4月20号 今天,笔者逛“太平洋”的时候,发现了一个关于TP-Link 840N刷DD-WRT的帖子,进去逛了一会,突然记得自己家中的那个路由好像也是这个型号的,二话不说,果断收录这条资料,并把所需要的…

网格的铺设问题——骨牌
Problem Description 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。 Input 输入的第一行包含一个正整数T(T<20),表示一共有 T…

C++智能指针:weak_ptr实现详解
文章目录weak_ptr描述声明作用原理实现函数成员使用总结weak_ptr描述 声明 头文件:<memory> 模版类:template <class T> class weak_ptr 声明方式:std::weak_ptr<type_id> statement 作用 根据boost库的官方描述&#…

在PHP中使用全局变量的几种方法
简介即使开发一个新的大型PHP程序,你也不可避免的要使用到全局数据,因为有些数据是需要用到你的代码的不同部分的。一些常见的全局数据有:程序设定类、数据库连接类、用户资料等等。有很多方法能够使这些数据成为全局数据,其中最常…

python处在哪个阶段_python 基础复习
1、简述cpu、内存、硬盘的作用cpu(1)cpu:处理逻辑运算、算术运算(2)cpu:接受指令传给电脑硬件,让其运行内存:(1)内存:从硬盘中读取数据,供其cpu调取指令运行,短暂的存贮数据;运行速度…

android用户界面之WebView教程实例汇总
一、WebView教程1.Android---UI篇---WebView(网络视图)http://www.apkbus.com/android-14259-1-1.html2.webview学习记录http://www.apkbus.com/android-44567-1-1.html3.Android中使用WebView, WebChromeClient和WebViewClient加载网页http://www.apkbu…

java下输出中文的一点研究
网上或者大部分书上都说Java中输出中文使用FileReader类就可以了,但是当你读取一个中文文档时,你会发现,除了乱码,还是乱码。究其原因,这其实是文件流读取时使用的编码方式和文件本身编码方式不同,造成读取出来文件乱码…

C++智能指针:unique_ptr详解
文章目录unique_ptr描述声明作用函数指针描述总结unique_ptr描述 声明 头文件:<memory> 模版类: 默认类型template <class T, class D default_delete<T>> class unique_ptr数组类型template <class T, class D> class uniq…

川崎机器人示教盒维修_专业维修丹阳市KUKA库卡KRC2库卡C4主板维修{苏州罗韦维修}...
发那科机器人故障分析 发那科伺服放大器上LED指示灯故障维修大全_发那科机器人维修,FANUC机器人保养,伺服电机示教器减速器维修,驱动器维修,苏州发那科机器人维修,本文主要介绍了发那科伺服放大器上因故障而出现的各种…

js 文本反向排列显示
一次面试遇到这样的题目 反向输出“how are you” 解决方法 <script language"JavaScript">var message1"how are you";var message2"";for (countmessage1.length; count > 0; count--)message2message1.substring(count,count-1);doc…

2012年12月4期手机网页开发
最近主要做手机上页面的开发,主要框架是,手机安装客户端,加载主站手机应用页面,手机客户端配合主站功能实现本地扫描或重力感应的效果。 针对安卓系统,在开发和调试时发现如下问题:1路径错误&#…

zabbix4.0构建实录
【Nginx】 #wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [rootcentos ~]# yum -y install zlib pcre pcre-devel openssl openssl-devel[rootcentos ~]# useradd -s /sbin/nologin nginx [rootzabbix-server ~]# yum install -y nginx 【M…

ceph-kvstore-tool 工具使用详解
文章目录简介使用总结简介 ceph-kvstore-tool工具是用来获取存放在leveldb或者rocksdb数据库中的键值元数据。并且该工具能够对kvstore中的数据进行配置,就像是对离线后的osd操作osd map一样 使用该工具,需要安装ceph-test-12.2.1.06-0.el7.centos.x86_…

springboot 订单重复提交_Spring Boot (一) 校验表单重复提交
一、前言在某些情况下,由于网速慢,用户操作有误(连续点击两下提交按钮),页面卡顿等原因,可能会出现表单数据重复提交造成数据库保存多条重复数据。存在如上问题可以交给前端解决,判断多长时间内不能再次点击保存按钮&a…

智能会议白板系统每日开发记录
智能会议白板系统,在开发过程中,整个项目期限内,每月,每周,每天要做的事情,作为组长的记录,多有不足之处,望指点。 转载于:https://www.cnblogs.com/mayijun/p/3458039.html

java.lang.OutOfMemoryError: PermGen space及其解决方法
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入Per…

ceph-dencoder工具使用详解
文章目录简介使用decode命令用法encode简介 ceph-dencoder工具是一个序列化编码、解码并且打印ceph数据结构的工具。它主要用来调试和测试ceph不同版本之间的兼容性问题 该工具是由 ceph-common-12.2.1.06-0.el7.centos.x86_64 rpm包生成 本文章是根据ceph-12.2.1版本来描述改…

EBS fnd_global.apps_initialize
原型:fnd_global.apps_initialize(user_ID, Responsibility_id,Responsibility_application_id);作用:在数据库的会话中设置全局变量,和用户概要信息。参数获得:参数一,用户ID select user_idfrom fnd_userwhere user_…

js判断鼠标靠近屏幕最侧面的监听_threejs按鼠标位置缩放场景
threejs的orbitcontrol,默认的缩放模式为整体以target为中心进行缩放。有时候,我们想让场景按照鼠标位置进行缩放,体验起来就和地图的缩放一样,最直观的感觉就是整个场景会越来越靠近鼠标点的位置,而不是整体的缩放大小…

hibernate中多对多分解成一对多,
1,参考:http://blog.csdn.net/yaerfeng/article/details/6969632

C++ 函数参数 值传递与引用传递
以前我们在C语言中函数参数传递过程中,如果我们想要让当A函数作用域中的变量经过B函数处理之后的数值仍然在A函数中生效,这个时候函数参数的传递时需要引用方式去传递,方式如下: #include <stdio.h> //函数参数为指针&…

SharePoint 2013 图文开发系列之代码定义列表
在SharePoint的开发中,用Visual Studio自定义列表是经常会用到的,因为很多时候,我们并不会手动创建列表,而手动创建列表在测试服务器和正式机之间同步字段,也很麻烦,所以我们经常用代码来定义列表或者文档库…

arduino下载库出错_【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用...
微信关注 “DLGG创客DIY”设为“星标”,重磅干货,第一时间送达。arduino特点库超多,想必大家都领教了,今天来分享一下之前玩过的TRMpcm库。这个库是干嘛用的?简单粗暴用arduino(这里特指arduino官方那几个板子uno、nan…