【Linux】Linux下跟踪记录每个用户对主机服务器进行的操作
linux中跟踪每个用户对主机的操作,看有人之前已经写过如此shell,可直接参考,参考如下:
1.记录操作信息
这个脚本需添加至/etc/profile
脚本如下:
# file name record1. history
USER_IP=`who -u am i >/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi if [ ! -d /tmp/operation ]
then
mkdir /tmp/operation
chmod /tmp/operation
fi if [ ! -d /tmp/operation/${LOGNAME} ]
then
mkdir /tmp/operation/${LOGNAME}
chmod /tmp/operation/${LOGNAME}
fi export HISTSIZE= DT=`date +%Y%m%d` # file=`find /tmp/operation/${LOGNAME}/ |awk '/'$DT'$/'`
file=/tmp/operation/${LOGNAME}/${USER_IP}-susworld.$DT
if [ -e "$file" ]
then
export HISTFILE="/tmp/operation/${LOGNAME}/${USER_IP}-susworld.$DT.tmp"
tmpfile=/tmp/operation/${LOGNAME}/${USER_IP}-susworld.$DT.tmp
if [ -e "$tmpfile" ]
then
cat /tmp/operation/${LOGNAME}/${USER_IP}-susworld.$DT.tmp >> $file
fi
else
export HISTFILE="/tmp/operation/${LOGNAME}/${USER_IP}-susworld.$DT"
fi
rm -f /tmp/operation/${LOGNAME}/${USER_IP}-susworld.$DT.tmp
chmod /tmp/operation/${LOGNAME}/*susworld* 2>/dev/null
该脚本将记录凡用户登陆后进行的任何操作,并生成对应用户当日的操作日志共日后查询。
2.查询操作信息
配合下面这个shell,进行查询,使用起来更加方便。
#!/bin/sh -
# filename getrecord user=
time= while [ $# -gt ]
do
case $ in
-u|--user) user=$
shift
;;
-t|--time) time=$
shift
;;
-*) echo "$0:$1 Wrong Options!" >&
shift
exit
;;
--) break
;;
*) break
;;
esac
done if [ -z "$user" ]
then
user=${LOGNAME}
fi if [ -z "$time" ]
then
time=`date +%Y%m%d`
fi file=`find /tmp/operation/$user/ |awk '/'$time'$/'`
cat $file
此段shell通过接收用户及时间参数来查看某用户的历史操作记录,如:
# getrecord -u root -t 20101223 --查看root在12月23号对服务器做的记录
如果不给定参数,shell将提取当前登陆用户及当日时间来进行查询.
也可以将此shell添加到bin中,直接使用命令来查询:
# mv getrecord ~/bin
# getrecord
3.其他查询操作命令
参考这个:
一些异常用户试图移去系统上的所有活动记录(比如 ~/.bash_history), 不过我们可以使用专门的工具来监视所有用户执行的命令. 推荐你使用进程记帐来记录用户的活动, 你可以通过进程记帐查看每一个用户执行的命令, 包括CPU时间和内存占用.
psacct程序提供了几个进程活动监视工具: ac, lastcomm, accton和sa.
.ac命令显示用户连接时间的统计.
.lastcomm命令显示系统执行的命令.
.accton命令用于打开或关闭进程记帐功能.
.sa命令统计系统进程记帐的情况.
【Linux】Linux下跟踪记录每个用户对主机服务器进行的操作的更多相关文章
- Linux系统下给非root用户添加sudo权限
Linux系统下给非root用户添加sudo权限 有时,在linux系统中非root用户运行sudo命令,会提示类似信息: xxx is not in the sudoers file. This ...
- Linux系统下授权MySQL账户访问指定数据库和数据库操作
Linux系统下授权MySQL账户访问指定数据库 需求: 1.在MySQL中创建数据库mydata 2.新建MySQL账户admin密码123456 3.赋予账户admin对数据库mydata具有完全 ...
- Linux系统下查看已经登录用户并踢出的方法
LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务. 查看用户的操作 查看当前用户: [ROOT@LOCALHOST ROOT] # W ...
- [Linux]Ubuntu下如何将普通用户提升到root权限
转至:http://jingyan.baidu.com/album/6181c3e0780131152ef153ff.html?picindex=0&qq-pf-to=pcqq.c2c 在u ...
- linux 记录所有用户bash操作日志
记录所有用户登录系统的任何操作日志,以便有据可查. 1.编辑 /etc/profile文件. 1 # vim /etc/profil 2. 在其后添加如下内容 1 2 3 4 5 6 7 8 ...
- 在Linux下记录所有用户的登录和操作日志
一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的数据丢失,就很难查到是谁操作的. 在这里我们通 ...
- Linux下记录所有用户的登录和操作日志
Linux下记录所有用户的登录和操作日志 一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的 ...
- Linux下记录登录用户历史操作
前言:众所周知Linux是一个可以同时让多个用户登录的操作系统,每个用户的操作都影响着Linux运行,除了要做好安全工作以外,防止人为恶意损坏也是很关键的,比如有人恶意执行危险命令,要查找就得记录所有 ...
- Linux 记录所有用户登录和操作的详细日志
1.起因 最近Linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录. 一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行 ...
随机推荐
- 分布式系统和CAP
帽子理论(CAP): C:Consistency,一致性, 数据一致更新,所有数据变动都是同步的 A:Availability,可用性, 好的响应性能,完全的可用性指的是在任何故障模型下,服务都会在有 ...
- ie height
苦恼我许久了,为啥在IE中设置div的height属性无效呢... 在网上查了,常用解决是设置line-height或者设置overflow:hidden,不过我这个div用来定位的,一是里面没文字, ...
- 聊聊PROFINET与PROFIBUS
1.PROFINET与PROFIBUS从狭义上比,没有可比性,因为他们的物理接口不同,电气特性,不同,波特率不同,电气介质特性不同等等.这样两者的协议是完全没有关联性的,唯一的关联性就是两者都是PI组 ...
- 一句话的设计模式(JAVA版)
·结构型模式: o适配器:用来把一个接口转化成另一个接口,如 java.util.Arrays#asList(). o桥接模式:这个模式将抽象和抽象操作的实现进行了解耦,这样使得抽象和实现可以独立地变 ...
- C# 异步和多线程
C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿! 说起异步,Thread,Task,async/await,IAsyncResult 这些东西肯定是绕不开 ...
- 在asp.net core中使用cookie认证
以admin控制器为要认证的控制器举例 1.对控制器设置权限特性 //a 认证命名空间 using Microsoft.AspNetCore.Authorization; using Microsof ...
- ImageNet 数据集
1. top-5 error rate ImageNet 图像通常有 1000 个可能的类别,对每幅图像你可以猜 5 次结果(即同时预测5个类别标签),当其中有任何一次预测对了,结果都算对(事实上一个 ...
- python两个整数和浮点的方法来获取值
/********************************************************************* * Author : Samson * Date ...
- matlab 稀疏矩阵(sparse matrix)
参数的设置:spparms() spparms('spumoni', 3);:Set sparse monitor flag to obtain diagnostic output 1. 创建稀疏矩阵 ...
- .net core使用ef 6
需要是core(with full .net framework)的项目,因为core本身不支持ef 6 注意新建的项目是.net framework+.net core的 有空来填坑,参考资料写的很 ...