一个轻量级的 eBPF 程序,用于监控 Linux 上的文件创建和修改事件。该工具利用 eBPF(扩展的伯克利数据包过滤器)直接从内核跟踪文件操作,以极低的开销提供高性能监控。
touch、nano 等)。/tmp)中访问的任何文件都会被跟踪。cd /tmp; touch file)。您可以从 发布页面 下载最新的二进制文件。
要自行构建项目,您需要安装 Go。
# Clone the repository
git clone https://github.com/harshavmb/fim-ebpf.git
cd fim-ebpf
# Build the binary
go build -o fim-ebpf .
在与二进制文件相同的目录中创建一个 config.yaml 文件(或修改现有文件)。
monitored_files:
- /tmp/testfile
- /etc/passwd
- /etc/shadow
- /tmp ## monitor the entire directory
ignore_actions:
- read
- stat
ignore_users:
- root
使用 root 权限运行二进制文件:
sudo ./fim-ebpf
2025/08/18 07:22:09 Monitoring started. Ctrl+C to exit.
2025/08/18 07:22:37 Event: PID=1745080 UID=6087179 (6087179 (harsha)) CMD=touch FILE=/tmp/testfile FLAGS=00000941 ## actual user
2025/08/18 07:22:54 Event: PID=1745108 UID=0 (0 (root) [Login: 6087179 (harsha)]) CMD=touch FILE=/tmp/testfile FLAGS=00000941 ## even after sudo
2026/01/03 18:55:56 Event: PID=3718310 UID=1002 (1002 (harsha)) CMD=touch FILE=/tmp/testfile ACTION=OPEN FLAGS=00000941 ## monitoring files in a dir
该项目使用 cilium/ebpf 来加载 eBPF 程序并与之交互。eBPF 代码在内核中运行,并通过环形缓冲区将事件发送到用户空间的 Go 程序。