商城首页欢迎来到中国正版软件门户

您的位置:首页 >Linux怎么查看权限审计历史记录

Linux怎么查看权限审计历史记录

  发布于2026-08-11 阅读(0)

扫一扫,手机访问

要让auditd真正把权限变更操作记下来,前提少不了这几步:先把服务启用起来,再配置足够精准的规则,比如针对chown、fchown、fchownat这类系统调用进行监控,接着完成规则加载并确认已经生效。少了其中任何一步,/var/log/audit/audit.log里通常都看不到这类权限变更记录。

Linux怎么查看权限审计历史记录

没有现成的“权限审计历史记录”可直接查看,必须先启用 auditd 并配置对应规则,否则 /var/log/audit/audit.log 里根本不会存属主变更、chmod 等操作。

auditd 是否已运行并记录了权限变更

先确认基础状态,避免白查日志:

  • 运行 sudo systemctl status auditd,检查服务是否 active (running)
  • 执行 sudo auditctl -s | grep enabled,输出应为 enabled 1
  • 查当前加载的规则:sudo auditctl -l | grep -E "(chown|chmod|setfacl|fchmodat)",没结果说明没监控权限类系统调用
  • 若规则为空,/var/log/audit/audit.log 里自然不会有权限变更记录——它只记你明确告诉它要记的东西

查 chown / chmod 类操作必须匹配系统调用名

权限变更不是靠文件路径模糊匹配,而是捕获内核级系统调用。常见错误是只监听 path=/etc/passwd 却漏掉调用名:

  • chown 触发的是 chownfchownfchownat 三个系统调用
  • chmod 对应 chmodfchmodfchmodat
  • ACL 变更走 setxattrsetfacl(后者本质是调用 setxattr
  • 正确检索示例:ausearch -m chown,fchown,fchownat -i | grep "uid="-i 是关键,否则字段全是数字

从 audit.log 里人工识别权限变更事件

直接读原始日志容易漏关键字段,但有时必须这么做(比如 ausearch 不可用或规则未加 -k 标签):

  • 打开 /var/log/audit/audit.log,找含 syscall=90(chown)、syscall=91(fchown)、syscall=280(fchownat)的行
  • 关键字段含义:uid= 是操作者 UID,comm="chown" 是命令名,exe="/usr/bin/chown" 是绝对路径,cwd= 是执行目录
  • 注意:同一操作可能拆成多行(如 SYSCALL + CWD + PATH),需连起来看;PATH 行里的 nametype= 若为 UNKNOWN,说明目标文件当时不存在或路径解析失败

为什么 grep /var/log/secure 永远找不到真正的 chown 执行者

/var/log/secure 只记录 sudo、ssh、su 等特权进程的日志,它不捕获内核行为:

  • root 直接执行 chown/var/log/secure 不记
  • systemd service 启动脚本里调用 chown?不记
  • crontab 里跑的 chown?不记
  • 它只记 “用户通过 sudo 运行了什么命令”,而不是 “谁改了哪个文件的属主”——这是两个不同层级的事

说到底,auditd 才是唯一能够把真实 UID 和进程上下文一并还原出来的机制;至于其他办法,比如 find -cmininotifywaitstat,顶多只能告诉你“这里发生了变化”,却回答不了更关键的几个问题:到底是谁改的、在哪个上下文里改的、又是因为什么改的。

本文转载于:https://www.php.cn/faq/2972130.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注