有没有办法知道哪些文件受到终端中输入的任何命令的影响?例如,我们都知道passwd
命令的作用以及它影响哪个文件。但是有没有一种明确的方法可以知道任何命令影响的确切文件名?
我有一个将用户添加到文件的命令,该命令对这些用户实施一些策略。但我不确定它添加到哪个文件。
答案1
您可以通过执行以下操作来基本做到这一点strace -e open <cmd>
:还可以-f
选择跟踪子进程;该strace
方法不是很用户友好(您需要基本上了解一些 C、系统调用等)并且不能长期工作。还有其他类似的工具sysdig
可能会起作用(尚未将其用于此目的)。您可以运行auditd
基于文件的 IDS(例如 AIDE)并让它检测某些文件何时被更改。
在您的问题中,我无法判断您是在询问如何确定程序访问哪些文件(即审核),还是在尝试根据正在访问的某些文件发出警报(IDS)。如果您想找出程序访问哪些文件,最好的方法是阅读源代码;像这样的工具strace
都是低水平的。