码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 记录所有用户登录和操作的详细日志

时间:2016-11-18 00:28:37      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:进程   后退   tor   val   user   for   操作记录   服务   目录   

 

 

 

1、起因

 

最近linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录。

 

一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile将1000修改成1000000行,但是这只是比较笼统的做法,看不到详细的用户来源已经操作记录,比如来源ip地址、操作时间、操作用户等。

 

所以我们不得不自己写代码来实现这样的功能。

 

2、自动记录脚本

编写脚本如下:

history

USER=`whoami`

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 /var/log/history ]; then

mkdir /var/log/history

chmod 777 /var/log/history

fi

if [ ! -d /var/log/history/${LOGNAME} ]; then

mkdir /var/log/history/${LOGNAME}

chmod 300 /var/log/history/${LOGNAME}

fi

export HISTSIZE=4096

DT=`date +"%Y%m%d_%H:%M:%S"`

export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"

chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null

 

这个脚本需要放在/etc/profile文件的末尾。这里默认写了记录日志文件的根目录是:/var/log/history,这个目录需要初始化建立,然后通过“exportHISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"

”可以看到记录日志的路径是/var/log/history/${LOGNAME},所以这个目录也需要事先建立,有多少个用户,就要建立多少个目录,而且要把目录的使用权限赋予相对应的用户。

 

而每次用户登录到退出都会产生以用户名、登录ip地址、操作时间为文件名的文件,文件里面包含本次用户的所有操作记录。

 

3、建立初始化目录

先去/home查看有多少个用户

[root@azure_test_static1_11_35 history]# ll

total 28

drwxr-xr-x 2 adminuser adminuser 4096 Nov 17 21:53 adminuser

drwxr-xr-x 2 fastdfs   fastdfs   4096 Nov 17 21:53 fastdfs

drwxr-xr-x 2 loguser   loguser   4096 Nov 17 19:43 loguser

drwxr-xr-x 2 nginx     nginx     4096 Nov 17 20:54 nginx

d-wx------ 2 root      root      4096 Nov 17 21:53 root

drwxr-xr-x 2 tomcat    tomcat    4096 Nov 17 19:42 tomcat

drwxr-xr-x 2 zabbix    zabbix    4096 Nov 17 19:42 zabbix

[root@azure_test_static1_11_35 history]#

 

 

然后开始建立初始化目录

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/fastdfs

[root@azure_test_static1_11_35 history]# chown fastdfs:fastdfs fastdfs -R

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/tomcat

[root@azure_test_static1_11_35 log]# chown -R tomcat:tomcat /var/log/history/tomcat

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/zabbix

[root@azure_test_static1_11_35 log]# chown -R zabbix:zabbix /var/log/history/zabbix

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/loguser

[root@azure_test_static1_11_35 log]# chown -R loguser:loguser /var/log/history/loguser

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/adminuser

[root@azure_test_static1_11_35 log]# chown -R adminuser:adminuser /var/log/history/adminuser    

 

 

 

 

4、用户登录验证

用其中一个用户fastdfs登录进程操作

[adminuser@azure_test_static1_11_35 ~]$ sudo -i

[sudo] password for adminuser:

[root@azure_test_static1_11_35 ~]# su - fastdfs

[fastdfs@azure_test_static1_11_35 ~]$ cp test1.log test3.log

[fastdfs@azure_test_static1_11_35 ~]$ echo "test 1"> test3.log

[fastdfs@azure_test_static1_11_35 ~]$ echo "1" >> test3.log

[fastdfs@azure_test_static1_11_35 ~]$ echo "2" >> test3.log

[fastdfs@azure_test_static1_11_35 ~]$ echo "3" >> test3.log

[fastdfs@azure_test_static1_11_35 ~]$ more test3.log

test 1

1

2

3

[fastdfs@azure_test_static1_11_35 ~]$

 

然后退出用户,重新登录进去日志目录/var/log/history/fastdfs/查看有最新的记录,一次用户登录到退出就会保存成一个日志文件记录:

# 进入日志目录

[root@azure_test_static1_11_35 fastdfs]# cd /var/log/history/fastdfs/

# 查看有2个操作日志记录

[root@azure_test_static1_11_35 fastdfs]# ll

total 8

-rw------- 1 fastdfs fastdfs  83 Nov 17 21:53 fastdfs@192.168.120.103_20161117_21:53:16

-rw------- 1 fastdfs fastdfs 139 Nov 17 21:59 fastdfs@192.168.120.103_20161117_21:56:47

# 打开当前的操作记录日志

[root@azure_test_static1_11_35 fastdfs]# more fastdfs@192.168.120.103_20161117_21:56:47

cp test1.log test3.log

echo "test 1"> test3.log

echo "1" >> test3.log

echo "2" >> test3.log

echo "3" >> test3.log

more test3.log

exit

[root@azure_test_static1_11_35 fastdfs]#

 

 

PS:可以看到记录的日志和我们的实际操作保持一致。证明我们要的功能实现了。

 

参考文章:http://www.heminjie.com/system/linux/412.html

Linux 记录所有用户登录和操作的详细日志

标签:进程   后退   tor   val   user   for   操作记录   服务   目录   

原文地址:http://blog.csdn.net/mchdba/article/details/53207597

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!