Linux下记录全部用户的登陆和操做日志

 

通常咱们能够用history命令来查看用户的操做记录,可是这个命令不能记录是哪一个用户登陆操做的,也不能记录详细的操做时间,且不完整;因此误操做而形成重要的数据丢失,就很难查到是谁操做的。
 
在这里咱们经过脚本代码来实现记录因此用户的登陆操做日志:
 
编辑/etc/profile文件,在文件末尾加入下面代码:
[root@telecom225 /]# vi /etc/profileide

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下会以每一个用户为名新建一个文件夹,
[root@telecom225 /]# cd /var/log/history/post

[root@telecom225 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、时间的文件,里面包含此用户本次的因此操做日志

[root@telecom225 history]# cd jerryhe/
[root@telecom225 jerryhe]# ls
jerryhe@180.173.188.252_20130626_14:59:51
jerryhe@180.173.188.252_20130628_14:40:26
jerryhe@180.173.188.252_20130703_09:44:21
jerryhe@180.173.188.252_20130703_11:18:40
jerryhe@180.173.188.252_20130703_11:21:11
jerryhe@180.173.188.252_20130703_14:21:49
jerryhe@180.173.188.252_20130703_14:30:48
jerryhe@180.173.188.252_20130704_13:37:19
 

 

通常咱们能够用history命令来查看用户的操做记录,可是这个命令不能记录是哪一个用户登陆操做的,也不能记录详细的操做时间,且不完整;因此误操做而形成重要的数据丢失,就很难查到是谁操做的。
 
在这里咱们经过脚本代码来实现记录因此用户的登陆操做日志:
 
编辑/etc/profile文件,在文件末尾加入下面代码:
[root@telecom225 /]# vi /etc/profilehtm

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下会以每一个用户为名新建一个文件夹,
[root@telecom225 /]# cd /var/log/history/blog

[root@telecom225 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、时间的文件,里面包含此用户本次的因此操做get

[root@telecom225 history]# cd jerryhe/
[root@telecom225 jerryhe]# ls
jerryhe@180.173.188.252_20130626_14:59:51
jerryhe@180.173.188.252_20130628_14:40:26
jerryhe@180.173.188.252_20130703_09:44:21
jerryhe@180.173.188.252_20130703_11:18:40
jerryhe@180.173.188.252_20130703_11:21:11
jerryhe@180.173.188.252_20130703_14:21:49
jerryhe@180.173.188.252_20130703_14:30:48
jerryhe@180.173.188.252_20130704_13:37:19
相关文章
相关标签/搜索