linux 实现通过记录登陆后的IP地址和某用户名所操作的历史记录
2010-12-15 15:08
946 查看
在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
通过在/etc/profile里面加入以下代码就可以实现:
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
if [ ! -d /tmp/dbasky/${LOGNAME}/SIP=${USER_IP}.txt ]
then
touch /tmp/dbasky/${LOGNAME}/SIP=${USER_IP}.txt
chmod 600 /tmp/dbasky/${LOGNAME}/SIP=${USER_IP}.txt
fi
export HISTSIZE=4096
#DT=`date "+%Y%m%d_%H%M%S"`
export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky 2>/dev/null
if [ -a "/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky" ]
then
cat "/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky" | perl -pe 's/(\d+)/localtime($1)/e' >> /tmp/dbasky/${LOGNAME}/SIP=${USER_IP}.txt
fi
其实通过上面的代码不能看出来,在系统的/tmp新建个dbasky目录,在目录中记录了所有的登陆过系统的用户和IP地址,是不是觉得很方便呢?我们还可以用这个方法来监测系统的安全性。
perl -pe 's/(\d+)/localtime($1)/e' .bash_history 修改UNIX time显示为UTC
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ydt619/archive/2010/09/17/5890750.aspx
通过在/etc/profile里面加入以下代码就可以实现:
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
if [ ! -d /tmp/dbasky/${LOGNAME}/SIP=${USER_IP}.txt ]
then
touch /tmp/dbasky/${LOGNAME}/SIP=${USER_IP}.txt
chmod 600 /tmp/dbasky/${LOGNAME}/SIP=${USER_IP}.txt
fi
export HISTSIZE=4096
#DT=`date "+%Y%m%d_%H%M%S"`
export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky 2>/dev/null
if [ -a "/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky" ]
then
cat "/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky" | perl -pe 's/(\d+)/localtime($1)/e' >> /tmp/dbasky/${LOGNAME}/SIP=${USER_IP}.txt
fi
其实通过上面的代码不能看出来,在系统的/tmp新建个dbasky目录,在目录中记录了所有的登陆过系统的用户和IP地址,是不是觉得很方便呢?我们还可以用这个方法来监测系统的安全性。
perl -pe 's/(\d+)/localtime($1)/e' .bash_history 修改UNIX time显示为UTC
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ydt619/archive/2010/09/17/5890750.aspx
相关文章推荐
- shell脚本自动记录登陆后的IP地址和某用户名所操作的历史记录
- shell脚本自动记录登陆后的IP地址和某用户名所操作的历史记录
- shell脚本自动记录登陆后的IP地址和某用户名所操作的历史记录
- 通过登陆IP记录Linux所有用户登录所操作的日志
- 通过登陆IP记录Linux所有用户登录所操作的日志
- 通过登陆IP记录Linux所有用户登录所操作的日志
- 通过登陆IP记录Linux所有用户登录所操作日志的方法
- 制作login.jsp页面,要求实现提供用户登陆的界面, 用户通过该界面输入用户名(控件名userName)和密码(控件名password), 然后点击“登录”按钮实现登陆操作.
- 通过登陆IP记录Linux所有用户登录所操作的日志
- Linux下查看用户登陆后的操作记录
- Linux下C编程-----IO/文件操作/内存映射 实现简单记录存储(3)
- git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树,请实现一个算法,计算git树上任意两点的最近分割点。 (假设git树节点数为n,用邻接矩阵的形式表示git树:字符串数组matrix包含n个字符串,每个字符串由字符'0
- 通过批处理实现删除运行、查找等处的历史记录的代码
- 如何通过组策略修改IE的安全级别,记录帐户密码,实现moss的单点登陆
- Linux 实现rsyslog日志里面的IP地址记录 未测试
- 通过登入IP记录Linux所有用户登录所操作的日志
- 通过制定SQL计划和系统计划实现]SQL Server 2005数据库定期备份和删除历史备份记录
- 在linux的ORACLE中实现sqlplus可以回退及记录历史命令