可能的重复:
是否可以找出哪个程序或脚本创建了给定文件?
我可以在日志中的某个位置找到隐藏文件或目录的创建时间吗/主页/用户名/目录?
如果没有,我可以使用一些应用程序来记录这个吗?它应包含创建时间、文件或目录名称以及创建者(应用程序或用户),按时间和日期排序。
答案1
特定于 Linux,该auditd
软件包应该能够提供您正在寻找的信息。它使用 2.6 及更高版本内核提供的审计功能。这里有一个快速开始这是 SLES 特有的,但会让您了解它的auditd
工作原理以及如何配置它。
从auditctl
手册页:
-w path
Insert a watch for the file system object at path. You cannot insert
a watch to the top level directory. This is prohibited by the kernel.
Wildcards are not supported either and will generate a warning. The way
that watches work is by tracking the inode internally. If you place a
watch on a file, its the same as using the -F path option on a
syscall rule. If you place a watch on a directory, its the same as using
the -F dir option on a syscall rule. The -w form of writing watches
is for backwards compatibility and the syscall based form is more
expressive. Unlike most syscall auditing rules, watches do not impact
performance based on the number of rules sent to the kernel. The only
valid options when using a watch are the -p and -k. If you need to
anything fancy like audit a specific user accessing a file, then use
the syscall auditing form with the path or dir fields.
答案2
没有日志文件包含有关主目录中隐藏文件或目录的信息。但是您可以使用例如ls -l -c
或 来查看文件/目录的创建时间stat <file>
。
除了auditd
在他的回答中提到的之外,还有 inotifywait
来自inotify-tools
包来监视 Linux 中目录中的任何更改。
要监视主目录中的任何文件/目录创建,请运行
inotifywait -m -e create $HOME
要观察子目录中的更改,请添加该-r
标志。
inotifywait 不显示实际进行更改的程序。