通过登入IP记录Linux所有用户登录所操作的日志

本文介绍了一种在Linux系统中记录用户操作历史的方法,通过在profile文件中添加特定脚本,可以详细记录每次登录用户的操作记录,并按用户和登录IP进行分类保存。

对于Linux用户操作记录一般通过命令history来查看历史记录,但是如果在由于误操作而删除了重要的数据的情况下,history命令就不会有什么作用了。那么依然要存有历史操作记录应该如何来实现呢?其实我们可以通过登陆IP地址来记录所有用户登录所操作的历史操作!

具体操作就是在/etc/profile.d/里添加配置文件的末尾加入以下脚本代码来实现:

#sudo vi /etc/profile.d/user_all_history.sh

粘贴:

# 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 /usr/local/history ]; then
mkdir /usr/local/history
chmod 777 /usr/local/history
fi

if [ ! -d /usr/local/history/${LOGNAME} ]; then
mkdir /usr/local/history/${LOGNAME}
chmod 300 /usr/local/history/${LOGNAME}
fi

export HISTSIZE=10000
DT=`date +"%Y-%m-%d_%H:%M:%S"`

export HISTFILE="/usr/local/history/${LOGNAME}/${USER}@${USER_IP}_history.$DT"
chmod 600 /usr/local/history/${LOGNAME}/*history* 2>/dev/null
[root@server ~]# source /etc/profile.d/user_all_history.sh
[root@server ~]# logout

此时需要退出系统再重新登录,在/usr/local/history/目录下才有记录

[root@server ~]# ll /usr/local/history/root/

总用量 12

-rw------- 1 root root  77 1011 09:09 root@192.168.1.23_history.2012-10-11_09:09:12

-rw------- 1 root root 529 1011 09:11 root@192.168.1.23_history.2012-10-11_09:09:16

-rw------- 1 root root 187 1011 09:12 root@192.168.1.23_history.2012-10-11_09:11:26

如果想只有root可见可以:

#sudo chmod 400 /etc/profile.d/user_all_history.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值