Root 操作审计——谁在什么时候执行了什么命令
什么是 Root 操作审计
每次有 APP 通过 su 请求 root 权限并执行 shell 命令时,KsuWebUI 可以记录下这次操作:
- 哪个 APP 发的请求
- 执行了什么命令
- 什么时候执行的
- 执行结果如何
这些记录就是「操作审计日志」——在安全敏感场景下特别有用。
审计日志和模块日志的区别
- 模块日志:模块脚本自身的输出(模块里 echo 出来的内容)
- 操作审计:root 框架层面对所有 su 调用的记录(谁、什么命令、结果)
审计日志的粒度更细,覆盖范围更广——任何 root 操作都会被记录,包括 APP 直接 su 执行的单行命令。
审计日志页面
在 KsuWebUI 的「日志」分组下找到「Root 审计」或「操作历史」。每条记录包含:
| 字段 | 含义 |
|---|---|
| 时间戳 | 操作发生的精确时间 |
| 发起者 | 请求 root 的 APP 包名 |
| 命令内容 | 执行的 shell 命令 |
| 结果 | 成功 / 失败 / 被拒绝 |
| 退出码 | 命令的 exit code |
审计日志的价值
安全检查
你怀疑某个 APP 偷偷用 root 做了什么?打开审计日志看一眼,所有操作都记录在案。
排查故障
如果系统突然出问题(某个模块失效、某个功能消失),审计日志可能记录下了谁在什么时候执行了什么命令导致了问题。
开发者调试
如果你在开发 root 模块,审计日志可以帮你验证模块执行的命令是否符合预期。
审计日志能看到什么
su -c "rm -rf /data/app/xxx"→ 删除 APP 数据su -c "mount -o remount,rw /system"→ 重挂载 system 分区su -c "chmod 777 /etc/passwd"→ 修改文件权限
几乎所有通过 su 发起的 shell 操作都会被记录。
审计日志看不到什么
- 内核态的操作(KPM 模块在内核里做的事)
- 模块在 system 分区直接写文件的操作(通过 Magic Mount 替换文件不会产生独立的 su 调用)
- 框架内部的管理操作
日志保留时间
审计日志会持续累积,建议定期清理或导出:
- 清理方式:在审计日志页面点击「清空」或「Clear」
- 导出方式:导出为 JSON 或 CSV 文件备份
启用 / 禁用审计
默认情况下审计日志是启用的。如果非常在意存储占用,可以关闭——但关闭后就失去了安全追踪能力。建议保持启用,定期清理即可。