Linux下查看用户登陆后的操作记录

运维 系统运维
在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/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

其实通过上面的代码不能看出来,在系统的/tmp新建个dbasky目录,在目录中记录了所有的登陆过系统的用户和IP地址,是不是觉得很方便呢?我们还可以用这个方法来监测系统的安全性。

【编辑推荐】

  1. Linux系统下配置Netware服务器方法
  2. 嵌入式设备上的 Linux 系统开发
  3. 深度介绍Linux内核是如何工作的(1)
责任编辑:赵宁宁 来源: 中原硅谷网
相关推荐

2009-06-17 12:59:32

Linux

2010-03-08 11:21:40

Linux用户操作记录

2010-05-12 11:43:31

MYSQL远程登陆用户

2010-03-22 17:52:13

2010-06-07 10:44:01

MySQL远程登陆

2009-07-16 15:14:27

WebWork用户登陆

2010-05-28 15:08:09

MySQL远程登陆

2011-02-25 17:07:25

2009-02-18 22:19:24

AD用户登陆实现限制

2010-05-14 18:08:35

MySQL创建

2010-06-13 14:49:02

MySQL创建远程登陆

2011-08-03 16:01:24

iPhone应用开发 自动登陆

2009-12-25 12:58:52

GoogleChrome OS

2009-08-16 20:24:59

linux命令行登陆linux命令行linux命令

2015-05-28 15:32:14

Linuxssh

2009-02-25 09:22:03

2010-01-26 08:56:57

Windows 7屏蔽多用户登录

2012-02-28 09:41:20

AD病毒微软

2011-07-21 14:24:25

组策略

2011-07-20 09:27:37

Scala
点赞
收藏

51CTO技术栈公众号