我继承了一堆 Linux(Ubuntu Precise)服务器,目前经常遇到文件夹所有权更改为“root”的问题。我们运行 puppet,它将所有权更改为应为的用户,但稍后会发生其他更改。
我目前每 30 秒记录一次文件的权限,以尝试缩小时间以查看日志中是否有任何内容等。这是一个繁忙的大型服务器,因此如果没有更多信息,很难在日志中找到任何内容。
Linux 中是否有办法捕捉文件/文件夹所有权何时发生变化并检测负责的进程?
我继承了一堆 Linux(Ubuntu Precise)服务器,目前经常遇到文件夹所有权更改为“root”的问题。我们运行 puppet,它将所有权更改为应为的用户,但稍后会发生其他更改。
我目前每 30 秒记录一次文件的权限,以尝试缩小时间以查看日志中是否有任何内容等。这是一个繁忙的大型服务器,因此如果没有更多信息,很难在日志中找到任何内容。
Linux 中是否有办法捕捉文件/文件夹所有权何时发生变化并检测负责的进程?
我认为您可以对特定文件/目录使用审核,也可以根据您的要求编写自定义规则
然后你可以使用搜索它
例如我用这个,创建这个文件 /tmp/test 然后写一些随机数据
然后执行这个命令
所以这个的输出
因此,如果您检查输出的最后一行,它将显示执行的命令是 vim 并且 uid=0 是 root
如果您想让这些更改在重新启动后保持不变,请在 /etc/audit/audit.rules 中添加这样的条目
并确保 auditd 服务已启动并正在运行
有关更多信息,您可以参考http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html
一个快速的谷歌揭示了 Linux 内核中的 inotify api。
我找不到任何允许您直接使用 inotify 观看文件的应用程序。但是有inotify-tools包,它允许您访问脚本中的 api。
它本身并不能告诉您谁更改了什么,但您可以使用此 api 构建一个脚本来缩小范围。例如,通过将其与 lsof 和 ps
抱歉,标准 Linux 系统中没有任何东西可以进行这种级别的日志记录。但是,您可能必须编写一个脚本,即使这是一个成功或失败的提议。
嗯....您也许可以在文件上设置不可变位来保护它,看看谁抱怨它无法更改: