本文主要讲解如何使用linux shell的历史命令记录功能。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让主机频道带你学习如何使用linux shell的历史命令记录功能!
在linux下,可以使用history命令查看用户的所有历史操作,shell命令操作的记录保存在。默认情况下,bash_history文件位于用户目录中。通过该文件可以查询shell命令的执行历史,有助于运维人员进行系统审计和故障排除。同时,服务器被黑客攻击后,还可以查询黑客登录服务器的历史命令操作。但是入侵之后,黑客会删除。bash_history文件以便擦除痕迹,所以有必要合理地备份这个文件。
默认的历史命令只能查看用户的历史操作记录,无法区分每个用户操作该命令的时间。这对于故障排除是相当不方便的。解决方法是在/etc/bashrc文件中添加以下四行,使history命令自动记录所有shell命令的执行时间:
复制代码代码如下:
hist filesize = 4000 histsize = 4000 hist time format = & # 39;% f % t & # 39导出历史时间格式
Histfilesize指示保存命令的记录总数。bash_history文件,默认值为1000;Histsize定义history命令输出的记录总数;Histtimeformat定义时间显示格式,即“+”形式的日期% f % t & quot是一样的;Histtimeformat将该值作为历史的时间变量传递给history命令。
高级技能
上面那个虽然可以记录时间,但是不能用于审计用途,容易被黑客篡改或者丢失。下面的方法详细记录了登录过系统的用户、ip地址、shell命令以及详细的操作时间。并将这些信息以文件的形式保存在安全的地方,以便进行系统审计和故障排除。
将以下代码放入/etc/profile文件中,实现上述功能。
复制代码代码如下:
#记录历史操作user _ IP = ` who-u am I 2 & gt;/dev/null | awk & # 39;{ print $ nf } & # 39| sed-e & # 39;s/[()]//g & # 39;` logname= `我是谁| awk & # 39{ print $ 1 } & # 39` histdir=/user/share/。history if[-z $ user _ IP]then user _ IP = ` hostname ` fi
如果[!-d $ histdir]然后mkdir-p $ histdir chmod 777 $ histdirfi
如果[!-d $ histdir/$ { logname }]然后mkdir-p $ histdir/$ { logname } chmod 300 $ histdir/$ { logname } fi
导出历史大小=4000
dt = ` date+& quot;% y % m % d _ % h % m % s & quot`导出历史文件= & quot$histdir/${logname}/${user_ip},history,$ dt & quot导出历史时间格式= & quot[% y . % m . % d % h:% m:% s]& quot;chmod 600 $histdir/${logname}/*。历史* 2 & gt/dev/null
评论前必须登录!
注册