我们知道可以使用history命令,查看自己的操作记录,但如果你是root用户,如何查看其它用户的操作记录呢?
其实history命令只是把当前用户目录下的~/.bash_History文件内容列出来而已。
1.第一种:配置/etc/bashrc
一般而言,history展示的操作记录是没有时间的,可以在/etc/bashrc文件中加入下列代码:
HISTFILESIZE=2000 # #设置保存历史命令的文件大小 HISTSIZE=2000 ##保存历史命令条数 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S:" ###记录每条历史命令的执行时间 export HISTTIMEFORMAT
注意:
其中:
%Y:4位数的年份;
%m:2位数的月份数;
%d:2位数的一个月中的日期数;
%H:2位数的小时数(24小时制);
%M:2位数的分钟数;
%S:2位数的秒数
2.第二种:配置脚本,放入/etc/profile
#history USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` HISTDIR=/usr/share/.history if [ -z $USER_IP ] then USER_IP=`hostname` fi if [ ! -d $HISTDIR ] then mkdir -p $HISTDIR chmod 777 $HISTDIR fi if [ ! -d $HISTDIR/${LOGNAME} ] then mkdir -p $HISTDIR/${LOGNAME} chmod 300 $HISTDIR/${LOGNAME} fi export HISTSIZE=4000 DT=`date +%Y-%m-%d_%H:%M:%S` export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT" HISTTIMEFORMAT="`whoami`: | %F | %T: |${USER_IP}:" chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/nul
脚本的作用是记录用户登陆后的操作,如果这个用户是root用户,会在/usr/share/.history/下创建用户名的文件夹,里面存放用户相关的历史命令记录。
下面看下一个文件中的内容
[root@iZ2ze2db4rp7b7weknjhneZ root]# cat 49.4.151.23.history.2018-03-08_12:25:10 #1520483137 cd /usr/share/.history/ #1520483138 ###记录命令执行的时间戳,可通过相关软件转换 ls #1520483139 cd xin/ #1520483140 ls #1520483150 cd .. #1520483151 ls
3.第三种:配置/etc/profile
这种方法最简单,只需要在/etc/profile中加入下面一句话即可。
#history USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` HISTTIMEFORMAT="`whoami`: | %F | %T: |${USER_IP}:"
配置完,需要使用source /etc/profile使其生效。
效果图如下: