linux下面有好多shell,常见的有 /bin/bash、/bin/sh、/bin/csh、/bin/tcsh、/bin/ksh,而我们最常用bash,因为它提供了history功能,帮助我们更好的与系统交互。但本文主要讲解的是如何更加熟悉的了解别的用户包括黑客都在你的系统上做了什么操作,通常(bash)这些操作默认都会保存到~/.bash_history 文件中,但如果这些用户不想给你留下操作记录,就会想办法把自己的操作从history中删除,比如最后输入 history -c 操作,本文将从用户行为的操作记录来谈linux安全问题。

试验环境: redhat 5.4 32 位

shell  : bash

默认情况下,在用户操作完毕退出后,bash是把当前用户的操作以覆盖~/.bash_history 的形式写入到此文件中,所以此时,如果用户调用history -c 退出后,那么管理员则什么都看不到,所以这时我们就要想办法把用户的操作记录给保存下来。

方法一:

首先,执行下面命令给.bash_history文件加上只能追加的形式进行记录

chattr +a /home/peter/.bash_history

lsattr /home/peter/.bash_history

然后,执行下面指令,修改bash以追加的方式忘给.bash_history文件中写入内容

shopt -s histappend

最后,调用下面指令使操作命令实时写入到.bash_history 文件中

PROMPT_COMMAND =" history -a;$PROMPT_COMMAND "

注意:上面两条命令写到/etc/profile  和/etc/bashrc文件最后即可

关于shopt命令的介绍请看http://blog.csdn.net/chaofanwei/article/details/11991963

方法二:

利用 PROMPT_COMMAND 命令进行用户行为的记录

PROMPT_COMMAND命令就是在用户执行本指令前调用的命令,可以在set环境中查看改变量,如下

图1 PROMPT_COMMAND 命令

操作:修改/etc/profile  和/etc/bashrc文件,在文件的最后加上以下两句话

export HISTORY_FILE=/var/log/`date '+%Y%m'`.log

#export PROMPT_COMMAND=' date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") $PWD $(history 1 | sed "s/^[ 0-9]*//g" ) " >> /var/log/ht/ht'

export PROMPT_COMMAND=' date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") $PWD $(history 1 | sed "s/^[ 0-9]*//g" ) " >> $HISTORY_FILE'

注意:一定要给$HISTORY_FILE'设置相应的权限,要不一般用户无法正确记录命令,而是会提示权限不足的问题,所以一定要修改这个文件的权限,使一般用户也能够写入。

最后,确保历史变量设置合理、无法更改

 这些历史变量包括最重要的HISTFILE、HISTCOMMAND和HISTIGNORE。要做到这一点,使用shell的typeset命令,带-r选项,这使得指定的变量拥有只读属性。良好的操作规范是使所有历史环境变量都变为只读,比如:

export HISTCONTROL=

export HISTFILE=$HOME/.bash_history

export HISTFILESIZE=2000

export HISTIGNORE=

export HISTSIZE=1000

export HISTTIMEFORMAT="%a %b %Y %T %z "

typeset -r HISTCONTROL

typeset -r HISTFILE

typeset -r HISTFILESIZE

typeset -r HISTIGNORE

typeset -r HISTSIZE

typeset -r HISTTIMEFORMAT

HISTTIMEFORMAT是bash shell的扩展,将在历史文件中提供时间戳。

对于bash shell来说,你需要更改历史的一些标准选项:

shopt -s cmdhist  #设置cmdhist将把多行命令放入到单单一个历史行

shopt -s histappend  #设置histappend将确保被添加到历史文件,而不是像通常的做法那样覆盖历史文件。

另外对于bash shell来说,还要设置PROMPT_COMMAND:

PROMPT_COMMAND="history -a"

typeset -r PROMPT_COMMAND

这是由于bash shell实际上把历史写入到内存中,历史文件仅在shell会话结束时加以更新。这个命令会把上一个命令附加到磁盘上的历史文件。

 

最后,当然也可借助系统审计功能,具体请看我之前发表的文件http://blog.csdn.net/chaofanwei/article/details/11830543

linux安全-用户行为监控相关推荐

  1. linux远程用户登陆监控

    在linux系统的环境下,由于可以多用户进行登录,有时候会出现一些混乱,有时候会误删一些数据,如果想查出恶意进攻的用户及IP地址,这就需要我们对远程连接的用户进行监控.下面给出具体实现方法. 通过在/ ...

  2. 【转载】Linux系统与性能监控

    原文: Linux System and Performance Monitoring Darren Hoch 译:Roger 这是[叔度]给我的一篇非常不错的关于Linux性能监控的文档,可惜是英文 ...

  3. 系统进程管理及用户登陆监控

    1.图形中如何查看进程gnome-system-monitor2.如何用命令查看进程ps 进程查看工具 -a shell中运行的进程 -x 不在shell重运行的进程 -u 查看进程用户 -l 显示进 ...

  4. 关于Linux的用户管理的相关研究-------(一)

    Linux 用户相关操作 1.用户存在的意义 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账 ...

  5. Linux系统与性能监控

    原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...

  6. Linux 进程管理与监控(supervisor and monit)

    一.Supervisor 1.安装 宿主机环境:( Centos 6.5 ) pip2.7 install supervisor 2.创建配置文件 通过 echo_supervisord_conf 命 ...

  7. linux磁盘使用情况脚本,技术|用 Linux Shell 脚本来监控磁盘使用情况并发送邮件...

    市场上有很多用来监控 Linux 系统的监控工具,当系统到达阀值后它将发送一封邮件.它监控所有的东西例如 CPU 利用率.内存利用率.交换空间利用率.磁盘空间利用率等等.然而,它更适合小环境和大环境. ...

  8. linux 监控进程调度,linux进程启动调度监控和管理

    linux进程启动调度监控和管理 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 4.90 积分 实验一:Linux进程管理姓名韩师燕学号201109 ...

  9. linux服务篇-Nagios监控

    Nagios是一款开源免费的网路监视工具(不准确,它也收费),可以监控的设备:Windows,Linux,Unix,Router,Switch,具有报警功能,是一个网络监控系统.它可以监视你指定的主机 ...

  10. linux系统正常的运行状态是,一种用于监控Linux系统运行状态的监控系统及方法...

    一种用于监控Linux系统运行状态的监控系统及方法 [技术领域] [0001]本发明涉及Linux系统,尤其涉及对Linux系统进行实时监控的系统及方法. [背景技术] [0002]通常服务器领域.通 ...

最新文章

  1. 使用 SqlHelperParameterCache 类管理参数
  2. c#自动登录网页,浏览页面
  3. 可解释机器学习发展和常见方法!
  4. Linux用户查看系统有多少用户在登录
  5. 2.05亿美元!马斯克Neuralink获脑机接口领域史上最大融资,公司正急招软件工程师...
  6. pandas apply()函数参数 args
  7. mac ssh远程登录linux,MAC使用SSH远程登录
  8. android:自己实现能播放网络视频url的播放器
  9. JS每日一题:vue中keepalive怎么理解?
  10. 开发过程中的注意事项,想到哪写到哪
  11. 软件测试之缺陷报告的BUG状态
  12. STM32串口通信实验(学习笔记)
  13. c语言怎么写最小公倍数的函数,c语言最小公倍数怎么求
  14. 耗时一周尝试踩坑,整理了一些Python实用知识点!
  15. Tushare如何获取股票历史交易数据
  16. iptable中文学习文档
  17. 国产替代AM26LS31, AM26LS32A, AM26C31, AM26C32
  18. 云服务器端口和防火墙端口配置
  19. java中兴参与实参相同_java错题集
  20. asp.net CMS

热门文章

  1. 他在比亚迪30万变200亿,还是王传福的天使投资人
  2. 宠物动物有什么计算机专业岗位,宠物医院前台岗位职责
  3. 快速“美女找茬”(辅助工具)
  4. 2008年IT业十大预测:微软收购雅虎
  5. 凑算式(枚举与深度优先搜索)
  6. Gmail:如何跟踪邮件阅读状态
  7. 5G/NR SSB学习总结
  8. C语言50题之百度笔试题
  9. java长连接转短连接
  10. 如何在android lolipop中开启google now