记录每个登陆用户的操作记录
在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
编辑 /etc/profile,在最后添加:
- PS1="`whoami`@`hostname`:"'[$PWD]'
- history
- USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
- if [ "$USER_IP" = "" ]
- then
- USER_IP=`hostname`
- fi
- if [ ! -d /tmp/history ]
- then
- mkdir /tmp/history
- chmod 777 /tmp/history
- fi
- if [ ! -d /tmp/history/${LOGNAME} ]
- then
- mkdir /tmp/history/${LOGNAME}
- chmod 300 /tmp/history/${LOGNAME}
- fi
- export HISTSIZE=4096
- DT=`date "+%Y%m%d_%H%M%S"`
- export HISTFILE="/tmp/history/${LOGNAME}/${USER_IP} history.$DT"
- chmod 600 /tmp/history/${LOGNAME}/*history* 2>/dev/null
其实通过上面的代码不能看出来,在系统的/tmp新建个history目录,在目录中记录了所有的登陆过系统的用户和IP地址,是不是觉得很方便呢?我们还可以用这个方法来监测系统的安全性。
方法二、
========================================================
- 一、如果你的系统有多个用户,你想知道每个用户登录系统做了哪些操作,从那里登录的,登录时间等待一系列信息,那么请按我的做吧。
- 二、编辑脚本
- vi /etc/profile.d/accountlog.sh
- historyLog(){
- logDir=/data/accountlog
- dateStamp=`date +"[%F %T]"`
- dateDir="`date +%Y`/`date +%m`/`date +%d`"
- curHistory=`history 1`
- user=`/usr/bin/whoami`
- realUserInfor=`/usr/bin/who -u am i|awk '{print $1,$2,$3"~"$4,$7}'`
- if [ ! -e $logDir ];then
- mkdir -p $logDir
- chmod 777 $logDir
- fi
- logDateDir=$logDir/$dateDir
- if [ ! -e $logDateDir ];then
- mkdir -p $logDateDir
- chmod -R 777 $logDir 2>/dev/null
- fi
- accountLogDir=$logDateDir/${user:=`hostname`}
- if [ ! -e $accountLogDir ];then
- mkdir -p $accountLogDir
- #chmod 777 $accountLogDir
- fi
- accountLogName=${user:=`hostname`}.his
- accountLog=$accountLogDir/$accountLogName
- if [ ! -e "$accountLog" ];then
- touch $accountLog
- #chmod 777 $accountLog
- fi
- echo "$realUserInfor $dateStamp =>$curHistory" >>$accountLog
- }
- export PROMPT_COMMAND=historyLog
- [root@localhost ~]# chmod +x /etc/profile.d/accountlog.sh
- 三、以后每个用户登录的操作都会在/data/accountlog记录
- [root@localhost data]# cd accountlog/
- [root@localhost accountlog]# ls
- 2012
- [root@localhost accountlog]# cd 2012/
- [root@localhost 2012]# ls
- 01 02 03 04 05 06 07
- [root@localhost 2012]# cd 07/
- [root@localhost 07]# ls
- 09 10 12 13 14 15 16 19 20 21
- [root@localhost 07]# cd 21
- [root@localhost 21]# ls
- root
转载于:https://blog.51cto.com/xlogin/1022159
记录每个登陆用户的操作记录相关推荐
- linux查看用户的操作记录,Linux下查看用户登陆后的操作记录
Linux下查看用户登陆后的操作记录 在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台 服务器多人登陆, ...
- Linux下查看用户登陆后的操作记录
Linux下查看用户登陆后的操作记录 在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台 服务器多人登陆,一 ...
- linux下监控用户的操作记录
想知道用户登陆系统后都操作了什么,怎么办? 别急,linux下有一个script工具,专门记录终端会话中所有输入输出结果,并存放到指定文件中. 先看看怎么录制吧! 1.创建日志存放目录 1 2 # m ...
- 在linux用户下查看当前用户或者历史用户的操作记录
一.查看及管理当前登录用户 1.使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事.该命令所使用的信息来源于/var/run/utmp文件.w命令输出 ...
- linux系统 长久记录所有用户所有操作记录
在linux系统中想要记录所有登录过当前系统的用户操作,排查有人对当前系统做的何种操作导致系统问题,可以按照如下方法进行. 前言 在描述操作步骤之前,先说一下系统环境变量的相关配置文件 ~/.bash ...
- 计算机维护记录软件,Take-1 Recorder(电脑操作记录软件)
Take-1Recorder是一款非常好用的电脑操作记录软件,本质上Take-1Recorder是一款屏幕录制软件,但其最强大的功能就是在录制时每次操作键盘和鼠标还有软件时都会有特殊标识,非常适合用来 ...
- 记录每个用户的操作记录(命令)
通过设置日志文件可以对每个用户的每一条命令进行记录,这一功能默认是不开放的,为了打开它, 需要安装pacct工具, 并执行以下命令: #touch /var/log/pacct #accton /va ...
- 文件服务器文件删除记录查询,Windows server2008r2共享文件操作记录、查询服务器日志方法...
在单位里面,我们经常共享文件让局域网用户访问使用,虽然可以设置共享文件访问权限,但是经常还是有一些不安分的人,在访问共享文件时不小心或恶意删除共享文件的行为,或者复制共享文件的内容等.但有时候为了工作 ...
- 【工作记录】android手势事件操作记录
/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float vel ...
最新文章
- 【 Makefile 编程基础之三】详解 Makefile 变量的定义规则使用!
- 线性时间排序--桶排
- L1-008. 求整数段和
- [转]Qtopia2.2.0移植
- 历届试题 大臣的旅费(深搜 树的直径)
- 无聊的一天_一人互联网公司背后的无聊技术
- 化妆品包装新趋势|视觉模型样机包装模板,让你茅塞顿开
- python填充颜色规则_Python填充任意颜色,不同算法时间差异分析说明
- python一般的基础代码-Python:模块代码编写基础
- java中的四个指令_JAVA命令学习系列(四) ---- jstat
- dart 获取手机信息_flutter+dart仿微信App界面聊天实例
- uni-app开发微信小程序上传提示以下文件没有被打包上传
- 人工智能学习思维导图
- socket.io实现多人聊天
- OWASP十大漏洞之一
- 往事的回忆:木星如何抓获小彗星
- DebugView工具使用方法
- 15.6课后习题(Java Web程序设计)
- QML Repeater
- 基于Uniapp开发的MIPCMS小程序