按特定日期递归查找所有文件

按特定日期递归查找所有文件

我的网站遭到了 FTP 暴力攻击,攻击者在我的主目录中修改/创建了一些文件。

假设恶意创建/修改的日期是 2011-4-5 21:38:09。我如何才能找到 public_html 中在那段时间左右修改/创建的其他文件?

尝试通过 Google 搜索,但没有找到任何有用的信息。你能给我举几个例子吗?比如 ls 或 find?谢谢!

答案1

你可以:

touch -m -t 201104052138.08 /tmp/timestamp

find /dir -newer /tmp/timestamp

初始触摸会创建一个文件,其修改时间为所需时间戳之前一秒,然后查找会使用该文件查找该时间之后修改的文件(就内容而言)。

您还需要检查权限和组所有权。您不能使用上述技术来做到这一点,因为 touch 只能更改 atime 和 mtime。因此,您最好确定正确的权限是什么,然后重置它们。例如,如果您的 Web 文件通常由 root 拥有,组为 www-pub,并且目录的权限为 0755,文件的权限为 0644,则您可以使用

find /dir \! -user root 

查找不属于 root 的文件和目录,以及

find /dir \! -group www-pub 

查找不属于 www-pub 的文件和目录

find 的 -perm 标志也可用于根据权限查找文件,但最好只是将其设置为应有的值。

find /dir -exec chown root:www-pub {} \;
find /dir -type f -exec chmod 0644 {} \;
find /dir -type d -exec chmod 0755 {} \;

答案2

使用find

# find /home -ctime -2

这意味着“查找 /home 上过去 48 小时内更改的文件”。2 乘以 24 小时,因此如果您需要 72 小时,则使用 3,依此类推。如果您需要查找超过 X 天更改的文件,请使用 + 而不是 -。

您可能希望列出以下文件:

# find /home -ctime -2 -exec ls -l {} \;

请记住,其中ctime包括在过去 X 小时内创建或更改的文件。

答案3

find /dir -newerma "2011-xx-xx"

或者你可以看看这里

答案4

您可以使用开关mtime来完成此任务。

相关内容