You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何追踪用户sudo切换到oracle等账号后执行的命令并统一存储日志

实现方案

方案1:修改sudo配置绑定原始用户标识+rsyslog统一落盘

这是最轻量化的实现方案,无需额外安装工具:

  • 首先编辑sudo配置文件,执行visudo,添加以下配置:
Defaults log_host, log_year, loglinelen=0
Defaults!/bin/su,!/bin/bash,!/bin/sh log_output
Cmnd_Alias SWITCH_TO_ORACLE = /bin/su - oracle, /bin/bash -u oracle, /bin/sh -u oracle, /usr/bin/su - oracle
%oracle_sudo_users ALL=(ALL) SWITCH_TO_ORACLE
Defaults:SWITCH_TO_ORACLE log_input, log_output, iolog_dir=/var/log/sudo-oracle/%{USER}/%{YEAR%m%d}/

配置里的%{USER}就是执行sudo的原始用户名,会自动记录在日志路径中。

  • 接下来配置rsyslog将所有sudo相关日志统一聚合到公共文件,新建/etc/rsyslog.d/10-sudo-oracle.conf,写入:
authpriv.* /var/log/oracle_operation_logs.log
  • 重启rsyslog服务生效:systemctl restart rsyslog

所有原始用户切换到oracle后执行的命令、输入输出都会被记录,同时日志会同步写入/var/log/oracle_operation_logs.log公共文件,每条日志自带原始执行用户、时间戳、操作内容字段。

方案2:配置Oracle用户的强制会话审计(无死角记录)

如果要确保即使用户手动清空history也能留存记录,用这个方案:

  • 编辑/home/oracle/.bashrc(如果使用其他shell就修改对应rc文件),末尾添加:
# 强制记录操作日志
REAL_USER=$(who am i | awk '{print $1}')
export PROMPT_COMMAND='{ echo "[$(date +%Y-%m-%d %H:%M:%S)] 原始用户: $REAL_USER 操作: $BASH_COMMAND" >> /var/log/oracle_operation_logs.log; }'
export HISTFILE=/dev/null # 禁用本地history文件,避免重复记录
  • 给公共日志文件设置不可删除权限,防止用户篡改:
chown root:root /var/log/oracle_operation_logs.log
chmod 600 /var/log/oracle_operation_logs.log
chattr +i /var/log/oracle_operation_logs.log

这个方案所有执行的命令都会实时追加到公共日志,且自带原始操作用户标识,普通用户无法修改或删除日志文件。

方案3:PAM TTY 审计(支持全量会话回放)

如果需要支持操作会话回放,使用PAM的tty_audit模块:

  • 编辑/etc/pam.d/su,添加配置:
session required pam_tty_audit.so disable=* enable=oracle log_passwd
  • 所有切换到oracle的会话操作都会被记录到系统审计日志,可以通过ausearch命令按原始用户筛选操作记录,也可以配置auditd将日志统一输出到指定的公共文件。

注意事项

  • 所有日志文件建议配置logrotate定期轮转,避免磁盘占满
  • 如果使用方案2,要确保用户无法修改oracle用户的rc文件,把/home/oracle/.bashrc的权限设置为root只读:chown root:root /home/oracle/.bashrc && chmod 644 /home/oracle/.bashrc

内容的提问来源于stack exchange,提问作者Buvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 09:15:02