本文主要是介绍openEuler 2203 中利用ebpf实现文件变更监控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在利用ebpf监控文件变更操作中,记录一些内核参数获取的过程。
1.环境信息
openeuler 2203
2.常用的修改文件的方式或者命令
1).直接使用文件系统的操作接口,比如write等;
2.)系统命令,比如vim/vi,sed,echo,cp,mv
涉及到的系统调用主要有:
sys_enter_write
sys_enter_renameat2
sys_enter_rename
sys_enter_copy_file_range
sys_enter_unlinkat
3.监控中参数获取遇到问题
1).根据fd获取文件的名称
在ebpf中函数sys_enter_write函数的参数,可以通过命令bpftrace:
# bpftrace -vl tracepoint:syscalls:sys_enter_write
tracepoint:syscalls:sys_enter_write
int __syscall_nr
unsigned int fd
const char * buf
size_t count
如果需要在sys_entrer_write中获取fd对应文件名称,通过以下方式:
unsigned int fd;
struct task_struct* t;
struct task_struct* p;
struct files_struct* f;
struct fdtable* fdt;
struct file** fdd;
struct file* file;
struct path path;
struct dent
这篇关于openEuler 2203 中利用ebpf实现文件变更监控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!