增强history命令:精准记录时间、IP及用户
本方法适用于CentOS和Ubuntu系统。请注意,此配置仅记录配置生效后的命令信息,之前的命令记录无法追溯。
Linux系统原生history命令信息有限,缺乏时间戳和IP等关键细节。通过修改shell配置文件,可以实现更详细的命令记录。
若需查看所有用户的完整历史记录,请在全局配置文件/etc/profile或/etc/bash.bashrc中进行如下修改:
1. 编辑配置文件:
vim /etc/profile
登录后复制
2. 添加以下内容至文件末尾:
#add###### history property ######USER_IP=$(who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g')export HISTTIMEFORMAT="[%F %T] [%u] [%s]"export HISTSIZE=10000export HISTFILESIZE=10000#export HISTIGNORE='ls*:ll' #建议不使用忽略功能export PROMPT_COMMAND='{ whoami; } 2>&1 | awk "{print $1}" >> /var/log/my_history_command; history 1 >> /var/log/my_history_command'
登录后复制USER_IP 获取当前用户的IP地址(可能需要root权限)。HISTTIMEFORMAT 设置时间戳格式,%F %T 表示年月日 时分秒,%u 为用户名,%s 为获取到的 USER_IP 变量。HISTSIZE 和 HISTFILESIZE 分别设置内存和文件历史记录条数。PROMPT_COMMAND 在每次提示符显示前执行命令,将用户名和IP写入日志文件,并追加当前命令到日志文件。
3. 使配置生效:
source /etc/profile
登录后复制
4. 创建并设置日志文件权限:
touch /var/log/my_history_commandchmod 666 /var/log/my_history_command
登录后复制
此方法将命令记录写入/var/log/my_history_command文件。 直接使用history命令显示IP地址不够准确,因为history仅记录当前用户登录时的IP。 此方法将所有用户的命令历史,连同时间、用户名和IP地址,完整记录在日志文件中。
再次强调:此配置仅记录配置生效后的命令。
以上就是history命令内容格式优化,显示IP,操作时间的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2189905.html