auditctl
是 Linux 审计系统(audit system)的一部分,它允许管理员配置审计规则,以跟踪和记录系统活动。这些规则可以帮助你监控对特定文件的访问、追踪特定用户的活动或记录系统调用。以下是 auditctl
的一些常用用法及其示例:
1. 添加新规则
- 命令:
auditctl -a [规则列表], [动作]
- 用途: 添加一条新的审计规则。
- 示例:
auditctl -a always,exit -F arch=b64 -S open,close -F exit=-EACCES
- 解释: 对于所有64位架构的系统调用(如
open
和close
),如果返回EACCES
(拒绝访问错误),则总是记录。
- 解释: 对于所有64位架构的系统调用(如
2. 列出当前规则
-
命令:
auditctl -l
-
用途: 显示当前所有的审计规则。
-
示例: 执行
auditctl -l
可能显示:-a always,exit -F arch=b64 -S open,close -F exit=-EACCES
3. 删除规则
- 命令:
auditctl -d [规则列表], [动作]
- 用途: 删除一条已存在的审计规则。
- 示例:
auditctl -d always,exit -F arch=b64 -S open,close -F exit=-EACCES
- 解释: 删除之前添加的用于跟踪
open
和close
系统调用的规则。
- 解释: 删除之前添加的用于跟踪
4. 设置审计参数
-
命令:
auditctl -s
-
用途: 查看或设置审计系统的状态。
-
示例: 执行
auditctl -s
可能显示:enabled 1 failure 1 pid 1234 rate_limit 0 backlog_limit 320 lost 0 backlog 0
5. 监控特定文件
- 命令:
auditctl -w [文件路径] -p [权限] -k [关键字]
- 用途: 监控对特定文件的访问。
- 示例:
auditctl -w /etc/passwd -p wa -k password-file
- 解释: 监控对
/etc/passwd
文件的写入和属性更改操作,并将这些事件标记为 “password-file”。
- 解释: 监控对
每个命令执行后的结果会根据您的系统配置和当时的系统状态而有所不同。这些命令通常不会在控制台上显示详细的执行结果,但会影响审计日志中记录的数据。您可以使用 ausearch
或 aureport
命令查看这些日志。