您当前位置:知识库 >云服务器 >服务器教程 >浏览文章

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

来源:不详 日期:2023/12/11 13:46:49 阅读量:(0)

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 是为了防止原变量干扰。


关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线提交留言告知,我们会第一时间屏蔽删除。
有价值
0% (0)
无价值
0% (10)

分享转发:

发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。