在 CentOS 系统中,readdir 是一个用于读取目录内容的系统调用。要记录 readdir 的操作,你可以使用 Linux 的审计子系统(auditd)来实现。以下是如何配置 auditd 以记录 readdir 操作的步骤:
sudo yum install audit
sudo systemctl start auditd
sudo systemctl enable auditd
/etc/audit/rules.d/readdir.rules,并添加以下内容:-a exit,always -F arch=b32 -S readdir -k readdir_audit
-a exit,always -F arch=b64 -S readdir -k readdir_audit
这里,-a exit,always 表示在系统调用退出时总是应用规则;-F arch=b32 和 -F arch=b64 分别表示 32 位和 64 位架构;-S readdir 表示要监控的系统调用;-k readdir_audit 是一个自定义的关键字,用于过滤和查找相关的日志记录。
sudo augenrules --load
readdir 操作。要查看这些记录,可以使用 ausearch 命令:sudo ausearch -k readdir_audit
这将显示所有与 readdir_audit 关键字相关的日志记录。
注意:根据你的需求,你可能需要调整审计规则以监控特定的目录或文件。你可以通过在规则中添加路径来实现这一点。例如,要监控 /var/log 目录下的所有 readdir 操作,可以将规则更改为:
-a exit,always -F arch=b32 -S readdir -F path=/var/log -k readdir_audit
-a exit,always -F arch=b64 -S readdir -F path=/var/log -k readdir_audit