V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
brucewsl
V2EX  ›  Linux

Linux 中监视删除操作,有什么好的方案?

  •  
  •   brucewsl · 169 天前 · 1953 次点击
    这是一个创建于 169 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需要显示:操作时间、删除的文件名、用户名等? 对比了几个工具: inotifywait (无法显示用户名) auditctl ( 1.无法只监视 delete 操作,写操作也会记录、2.显示不够直观)

    8 条回复    2024-05-21 15:30:27 +08:00
    InkStone
        1
    InkStone  
       169 天前
    结合一下咯,用 inotify 检测到删除文件,就去 auditctl 中拉取删除信息。想展示成什么样自己拼接一下就好。
    debuggeeker
        2
    debuggeeker  
       169 天前
    eBPF
    ZXiangQAQ
        3
    ZXiangQAQ  
       169 天前
    inotify 只能拿到事件吧,想拿到用户名之类的信息,还是得审计日志

    写个小工具监听审计日志,过滤到 nametype=DELETE 的条目,然后根据 key 拿文件名、用户名等信息
    codehz
        4
    codehz  
       169 天前
    用 bpftrace
    监听 kprobe:vfs_unlink
    guanzhangzhang
        5
    guanzhangzhang  
       169 天前
    audid 部分版本会有问题,看过一个国外大佬分享视频,什么 perf 和 dtrace 和 system-tap 都没 bpftrace 快,找下 bpftrace 的对应 probe 和 tracepoint 监听下
    PTLin
        6
    PTLin  
       169 天前   ❤️ 1
    下个 bpftrace ,然后运行
    sudo bpftrace -e 't:syscalls:sys_enter_unlink* {time("%H:%M:%S");printf(" pid=%d, uid=%d, comm=%s, path=%s\n",pid,uid,comm,str(args->pathname));}'
    JoeJasper
        7
    JoeJasper  
       168 天前
    ```
    sudo apt-get install bpftrace

    sudo bpftrace -e 't:syscalls:sys_enter_unlinkat {time("%H:%M:%S");printf(" pid=%d, uid=%d, comm=%s, path=%s\n",pid,uid,comm,str(args->pathname));}'
    ```
    brucewsl
        8
    brucewsl  
    OP
       163 天前
    最后使用了 Auditbeat ,基本可以满足需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1231 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:10 · PVG 07:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.