假设用户运行以下命令:
zcat file.gz | grep something | gzip > grepped.gz
我正在寻找一个内核功能(也许是 BPF 过滤器?),它会记录所有的execve
s,将它们的 stdins/stdouts 链接在一起,并以类似的形式重建它,将其放入系统日志中。有没有办法在不与外壳交互的情况下做到这一点?
答案1
使用流程会计
包通常被命名为psacct
或acct
安装需要的包
sudo apt install acct
启动守护进程自动启用进程记帐
sudo systemctl enable --now acct.service
检查上次运行命令执行lastcomm
使用auditd
安装auditd守护进程
在启动时启用它
sudo systemctl enable auditd
添加以下规则
sudo auditctl -a always,exit -F arch=b64 -S execve -k search_comment
现在查看所有用户记录的消息
sudo ausearch -k search_comment
或通过特定UID搜索
sudo ausearch -k search_comment -ui 1000