按照时间和登录ip地址来记录不同用户的历史命令的脚本——shell(1)
2013-01-16 16:52
651 查看
用途:linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了。以下方法可以实现通过记录登陆IP地址和所有用户登录所操作的历史命令来记录!
分析:首先要从命令的结果里得到用户名和登录该服务器的客户端ip地址,想想什么命令可以查到当前登录的用户呢。有好多,比如w;who等都可以实现。我们这里使用who,who的参数比较多,而且比较灵活。还涉及的系统自带的PWD和LOGNAME还有HISTORYSIZE等。
方法:在/etc/profile配置文件的末尾加入以下脚本代码就可以实现,因为profile是登录时执行的家环境。
用户从客户机登录这台机器的时候都会在/tmp/history/下面建立自己的用户名的目录,目录下面有每次登录这台机器的文件,名字格式为ip地址\history.登录日期_登录时间,如192.168.10.15\ history.20130116_184144。文件里记录着历史命令。
分析:首先要从命令的结果里得到用户名和登录该服务器的客户端ip地址,想想什么命令可以查到当前登录的用户呢。有好多,比如w;who等都可以实现。我们这里使用who,who的参数比较多,而且比较灵活。还涉及的系统自带的PWD和LOGNAME还有HISTORYSIZE等。
方法:在/etc/profile配置文件的末尾加入以下脚本代码就可以实现,因为profile是登录时执行的家环境。
PS1="`whoami`@`hostname`:"'[$PWD]' 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/history ] then mkdir /tmp/history chmod 777 /tmp/history fi if [ ! -d /tmp/history/${LOGNAME} ] then mkdir /tmp/history/${LOGNAME} chmod 300 /tmp/history/${LOGNAME} fi export HISTSIZE=4096 DT=`date +"%Y%m%d_%H%M%S"` export HISTFILE="/tmp/history/${LOGNAME}/${USER_IP} history.$DT" chmod 600 /tmp/history/${LOGNAME}/*history* 2>/dev/null
用户从客户机登录这台机器的时候都会在/tmp/history/下面建立自己的用户名的目录,目录下面有每次登录这台机器的文件,名字格式为ip地址\history.登录日期_登录时间,如192.168.10.15\ history.20130116_184144。文件里记录着历史命令。
相关文章推荐
- shell脚本自动记录登录用户ip和历史命令
- shell脚本记录登录到本机的用户,登录时间和登录位置
- CentOS清除用户登录记录和命令历史方法
- Linux清除用户登录记录和命令历史方法
- Linux清除用户登录记录和命令历史方法
- linux查看用户登录时间以及命令历史
- shell脚本自动记录登陆后的IP地址和某用户名所操作的历史记录
- centos清除用户登录记录和命令历史方法
- SQLSERVER记录登录用户的登录时间(自写脚本)
- 用来记录登录后使用命令的shell脚本
- 39.Linux清除用户登录记录和命令历史方法
- linux 用户管理(3)----查看用户登录时间以及命令历史
- Shell脚本自动记录登陆后 的IP地址和历史记录
- linux 命令执行历史记录history显示执行时间和用户
- shell脚本自动记录登陆后 的IP地址和历史记录
- Linux下清空用户登录记录和命令历史的方法
- Linux清除用户登录记录和命令历史方法
- 记录服务器登录用户的历史命令
- SQLSERVER记录登录用户的登录时间(自写脚本)
- 脚本实现记录所有登录用户的信息,包括用户名、登录时间和登录位置