一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整;所以误操作而造成重要的数据丢失,就很难查到是谁操作的。
 
在这里我们通过脚本代码来实现记录所以用户的登录操作日志:
 
编辑/etc/profile文件,在文件末尾加入下面代码:

首先加上一行,来记录实时的 export HISTTIMEFORMAT="%F %T `who am i|awk '{print $1}'` as `whoami` : "

实时的有缺点 一些root的日志 记录不到位,所以我们在加入下述
[root@telecom225 /]# 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下会以每个用户为名新建一个文件夹,
[root@telecom225 /]# cd /var/log/history/

[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

原文地址 http://www.heminjie.com/system/linux/412.html

最新文章

  1. Git版本控制管理学习笔记3-基本的Git概念
  2. 使用IntelliJ IDEA 配置Maven(入门)
  3. Struts2 文件上传和文件下载
  4. Masonry的使用
  5. Spring+hibernate+struts
  6. linux 的useradd 命令的p选项
  7. 解决uploadify多图片上传部分图片丢失,且不提示任何错误的问题
  8. Java 权限修饰符
  9. leetcode problem 33 -- Search in Rotated Sorted Array
  10. iOS开发之性能优化
  11. android混淆打包配置(忽略第三方jar)
  12. javascript倒置再次被否定作用
  13. java伪代码《大道至简》
  14. colly源码学习
  15. java类中使用quartz,设置自动任务Demo
  16. java-Integer类
  17. zabbix 监控报警详细邮件内容
  18. C# 根据Excel生成树
  19. spark快速上手
  20. Android 的开源项目的网址

热门文章

  1. 软件安装失败,导致ubuntu软件中心软件消失
  2. ASP.NET Web API与Owin OAuth:调用与用户相关的Web API(非第三方登录)
  3. nodejs开发指南读后感
  4. 2015年12月02日 GitHub入门学习(四)Git操作
  5. 网站SEO优化之添加Sitemap文件。
  6. web性能调优
  7. Ruby注意事项
  8. CSS 补充
  9. 第26天 swift reflect
  10. js 区分数据类型