在Linux下记录所有用户的登录和操作日志
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux下记录所有用户的登录和操作日志相关的知识,希望对你有一定的参考价值。
一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整;所以误操作而造成重要的数据丢失,就很难查到是谁操作的。
在这里我们通过脚本代码来实现记录所以用户的登录操作日志:
编辑/etc/profile文件,在文件末尾加入下面代码:
首先加上一行,来记录实时的 export HISTTIMEFORMAT="%F %T `who am i|awk ‘{print $1}‘` as `whoami` : "
实时的有缺点 一些root的日志 记录不到位,所以我们在加入下述
[[email protected] /]# vi /etc/profile
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
注释: /var/log/history这是记录日志的存放位置,可以自定义。
在/var/log/history下会以每个用户为名新建一个文件夹,
[[email protected] /]# cd /var/log/history/
[[email protected] history]# ll total 20 d-wx------ 2 test dennishan 4096 Jul 4 12:06 test d-wx------ 2 jerryhe jerryhe 4096 Jul 4 14:12 jerryhe
每次用户退出后都会产生以用户名、登录IP、时间的文件,里面包含此用户本次的所以操作
[[email protected] history]# cd jerryhe/
[[email protected] jerryhe]# ls
[email protected]_20130626_14:59:51
[email protected]_20130628_14:40:26
[email protected]_20130703_09:44:21
[email protected]_20130703_11:18:40
[email protected]_20130703_11:21:11
[email protected]_20130703_14:21:49
[email protected]_20130703_14:30:48
[email protected]_20130704_13:37:19
原文地址 http://www.heminjie.com/system/linux/412.html
!--more-->
以上是关于在Linux下记录所有用户的登录和操作日志的主要内容,如果未能解决你的问题,请参考以下文章