Google Compute Engine Debian 11 WordPress虚拟机bash命令记录方法咨询
在GCE Debian 11虚拟机中记录bash命令及执行用户
方法一:全局bash日志记录(简单易用)
- 编辑全局bash配置文件
/etc/bash.bashrc,在文件末尾添加以下配置:
export HISTTIMEFORMAT="%F %T " export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]*[ ]*//") [$RETRN_VAL]"'
- 配置说明:
HISTTIMEFORMAT:为命令历史添加精确时间戳PROMPT_COMMAND:每次命令执行完成后,自动将用户名、进程ID、执行的命令内容、命令返回值通过logger写入系统日志
- 生效方式:所有用户重新登录后配置自动生效,当前会话可执行
source /etc/bash.bashrc临时生效 - 查看日志:直接查看系统日志文件
/var/log/syslog,里面会包含所有用户的bash命令记录
方法二:使用auditd审计系统(更全面严谨)
auditd是Linux原生的专业审计工具,能记录更完整的操作上下文信息:
- 安装auditd:
apt update && apt install auditd -y
- 启动并设置开机自启:
systemctl enable --now auditd
- 添加bash命令审计规则:
auditctl -a exit,always -F path=/bin/bash -F perm=x -F auid>=1000 -F auid!=4294967295 -k bash_commands
- 规则说明:记录所有普通用户(UID≥1000)执行bash的操作,用
bash_commands标记便于后续检索 - 查看审计日志:
- 使用检索命令快速筛选:
ausearch -k bash_commands - 直接查看原始日志文件:
/var/log/audit/audit.log
- 使用检索命令快速筛选:
将日志同步到GCE Logging
如果需要在GCE的Logging and Monitoring中查看记录,可通过google-fluentd实现日志上传:
- 确保google-fluentd已安装:
apt install google-fluentd -y
- 配置fluentd收集目标日志(比如syslog或audit.log):编辑
/etc/google-fluentd/config.d/syslog.conf,确认日志路径配置正确 - 重启fluentd服务:
systemctl restart google-fluentd
- 之后在GCE日志浏览器中,选择对应虚拟机实例,过滤
local6.debug(对应方法一的日志)或audit.log相关内容,即可查看命令记录
内容的提问来源于stack exchange,提问作者CuppaCoffee
相关产品推荐
相关产品推荐

