咨询热线:4006-75-4006

售前:9:00-23:30    备案:9:00-18:00    技术:7*24h

Linux修改history命令显示记录操作用户,命令执行时间及登陆IP信息

2023-12-11 13:46:49 2942次

Linux修改history命令显示记录操作用户,命令执行时间及登陆IP信息

Linux默认的history命令是一个常用的系统内置命令,该命令用来记录在某一个的所有使用过的命令的历史,但默认实在是十分简略,只记录有所执行的命令并没有记录在什么时间,什么人(哪个用户),通过何种方式登录系统(是远程连接系统还是本地登陆所执行的命令)这些比较重要的信息,这些重要的信息是日后运维审计的一部分,那么,我们可以通过改动这个命令来实现 history命令增加记录重要信息。

第一,who am i 命令

这个命令是相对于当前终端的命令,也就是只显示当前终端的登陆信息,如果是远程登陆,比如xshell,ssh这样的登陆方式,示例如下:

本机本地登陆:

image.png

xshell 方式登陆:

image.png

可以看到,本地登陆和远程登陆 执行who am i 的差别是本地没有IP,登陆方式为tty1, 远程登陆显示IP,登陆方式为pts/0 。

第二,历史命令 history的默认形式和优化后的形式

默认形式:

image.png

优化后的形式:

image.png

第三,如何优化

编辑/etc/profile文件,这个文件是全局的,或者编辑用户的环境变量配置文件  ~/.bash_profile,推荐使用全局环境变量文件  也就是/etc/profile, 在该文件末尾添加如下内容:

if [ `who am i| awk '{print $NF}'|awk -F'(' '{print NF}'` -eq 2 ];then
unset HISTTIMEFORMAT
export HISTTIMEFORMAT="[%F %T]-[`whoami`]- at [`who am i| awk '{print $NF}'`] "
else
unset HISTTIMEFORMAT
export HISTTIMEFORMAT="[%F %T]-[`whoami`]- at [`hostname`] "
fi

以上脚本大意为 判断是否远程登陆,如果是远程,显示IP,如果不是远程而是本地登陆,历史命令记录终端所在机器的hostname,unset 是为了防止原变量干扰。


首页
最新活动
个人中心