Linux 查看所有登录用户的操作历史

在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的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/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky.$DT"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null

source /etc/profile 使用脚本生效

退出用户,重新登录

上面脚本在系统的/tmp新建个dbasky目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个方法来监测系统的安全性。

[email protected]:[/tmp/dbasky/root]ls 
10.1.80.47 dbasky.2013-10-24_12:53:08 
[email protected]:[/tmp/dbasky/root]cat 10.1.80.47 dbasky.2013-10-24_12:53:08查看所有登录用户的操作历史
时间: 2024-08-27 14:41:36

Linux 查看所有登录用户的操作历史的相关文章

Linux系统下如何查看已经登录用户

Linux系统下如何查看已经登录用户 虽然前面介绍了用户管理,但是那部分主要是管理用户的帐号,也就静态的用户列表.而LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务.系统管理员可以随时了解系统中有那些用户,用户都在进行什么操作. 查看用户的操作 系统管理员若想知道某一时刻用户的行为,只需要输入命令W 即可,在SHELL终端中输入如下命令: [[email protected] ROOT] # W2:31PM UP 11 DAY ,21:18 4 USERS, LODE

Linux系统下查看已经登录用户并踢出的方法

LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务. 查看用户的操作 查看当前用户: [[email protected] ROOT] # W                        2:31PM UP 11 DAY ,21:18 4 USERS, LODE AVERAGE : 0.12, 0.09 , 0.08                        USER TTY FROM [email protected] IDLE JCPU PCPU WHAT  

linux系统:查看当前登录用户的信息,本文介绍3种方法

作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事.该命令所使用的信息来源于/var/run/utmp文件.w命令输出的信息包括: 用户名称 用户的机器名称或tty号 远程主机地址 用户登录系统的时间 空闲时间(作用不大) 附加到tty(终端)的进程所用的

Win下服务程序以当前登录用户执行操作

我们新建了一个网络映射,现在需要在我们的服务进程中访问这个远程磁盘,结果发现QueryDosDevice.NetUseEnum.GetLogicalDriveStrings均不可用.怎么办? 因为磁盘映射是和当前账户关联的,当账户登录之后才会存在这个盘符.(可以试试在同一个系统上建立两个账户,它们可以将不同的网络位置映射成同一个盘符.当然盘符只是一个逻辑符号,系统正真的符号是\Device\Mup和\Device\LanmanRedirector 的UNC形式标识,这样系统内部是不会重复的).

Linux查看和注销用户

Linux如何注销其他用户?_Linux教程_Linux公社-Linux系统门户网站https://www.linuxidc.com/Linux/2012-07/64939.htm linux注销指定用户 - hualei_c的博客 - CSDN博客https://blog.csdn.net/hualei_c/article/details/51867477 Linux下用于查看系统当前登录用户信息的4种方法 - 翼紫珊 - CSDN博客https://blog.csdn.net/wudiyi8

linux 查看、修改用户及密码过期时间

WARNING: Your password has expired. Password change required but no TTY available. 提示密码过期, 设置新用户密码的过期时间 如下实例: [[email protected] /]# passwd -x 90 euser -> 执行操作后,euser用户的密码时间改为90天有效期 2.查看该euser用户过期信息使用chage命令 chage的参数包括-m 密码可更改的最小天数.为零时代表任何时候都可以更改密码.-

【linux操作系统】linux查看有哪些用户

linux系统如何查看有哪些用户? 命令:cat /etc/passwd(不是password) 原文地址:https://www.cnblogs.com/xphdbky/p/8137223.html

linux 查看ip、用户、时间对应执行的命令

这个需要使用到history命令.可以加数字,返回最近执行的几条命令.如果不加数字会返回所有的历史命令. [[email protected] ~]# history 20 1015 rm stdin.log 1016 ll 1017 rm yy 1018 ll 1019 echo 'hello' 1>> echo.log 1020 ll 1021 cat echo.log 1022 echo 'world' 1>> echo.log 1023 cat echo.log 1024

linux关闭在线登录用户

在使用电脑的时候,发现自己的电脑上有其他的用户登陆.如果其他用户用的是自己的名字,那么就能通过who去查询出来,但是如果登陆的都是root用户,那么肯定不知道是谁,所以需要我们清除他们:另外呢,如果登陆的用户突然断掉,那么肯定会有过期的登陆信息需要清除 1,查明登陆端口: # who root pts/1 Apr 8 00:06 (172.29.0.29) root pts/2 Apr 8 04:15 (172.29.0.21) 2,通知该用户将要关闭他: # echo "I will clos