我正在尝试编写一个系统实用程序脚本,该脚本将作为 cron 作业运行并捕获文件系统统计信息和环境设置,以便跟踪尽可能多的更改。
考虑以下时间表
T0: there is a file /dir/fileX.txt
T1: job runs and captures every file and its stats (permissions, size, checksum etc), including /dir/fileX.txt
T2: mv /dir/fileX.txt /dir/fileY.txt
T3: job runs again and recaptures the file system. But all it can tell is that fileX.txt was deleted and fileY.txt created
如果我重命名可以用来键入所有文件而不是名称的文件,是否有一些文件 ID 不会更改?这样,在 T1 处我将键入文件,但 ID 而不是名称和文件名将只是另一个属性。在 T3,我将能够分辨出这是同一个文件,但名称已更改,因为 ID 保持不变。
答案1
听起来您正在寻找使用索引节点。基于 inode 引用文件是解决一些常见文件名问题的好方法(例如尝试删除名为“test*”的文件,这通常会使 rm 犹豫不决),并且在您的特定情况下应该允许您引用该对象。
答案2
答案3
您的问题听起来像是您需要一个基于定制主机的入侵检测系统。
查看其中一些,检查您是否可以按照您喜欢的行为方式编译或配置它。
一些名字:samhain
tripwire
aide