有时我们会遇到无法弄清楚是什么原因导致磁盘被填满的问题。因此,如果我们有一个 BASH 单行代码/脚本,可以随时间捕获用户的 uid 和 pid,那么我们就可以直接接近这些用户。监控工具会告诉您 I/O 峰值的时间,但您不知道是什么原因造成的。因此,这样的一句话将会很有用。这适用于所有基于 Linux 的系统。
一种方法可能是检测系统调用。这个问题适用于所有 Linux 系统。我不知道我在这里缺少什么。
答案1
这给出了下面 20 个最大的文件的/opt
大小和用户名
find /opt/ -type f -printf "%s\t%u\t%p\n" | sort -k1,1n | tail -n 20
答案2
如果相关文件的所有权/组未提供您所需的信息(即通过丁克的回答),事后您将无法轻松确定谁做了什么。
也许您可以根据当时登录的人员抓取系统日志,并结合提升权限的日志来拼凑证据——此类日志的可用性取决于您的设置,特别是用户如何切换到另一个帐户来创建数据。这不太可能是您正在寻找的“一线”。
否则,您正在考虑启用auditd
并使用它来主动监视/opt
目录/文件系统的更改。有了这个,你的“一个衬垫”就是审计日志的事后过滤器。
参见示例:如何监控文件/目录变化
但是,审核日志可能很大,因此这会给您带来新的考虑。