find / -mtime 0 列出过去24小时内内容被修改的文件,实际指当前时刻往前推24小时区间内所有mtime变更的文件,仅检测内容修改不包括权限或访问;推荐结合-type、-name、-path、-perm等过滤,并用-mmin实现分钟级精确定位。

直接用 find / -mtime 0 就能列出过去24小时内被修改过的文件,这是排查入侵最基础也最关键的一步。
理解 -mtime 0 的真实含义
很多人误以为 -mtime 0 表示“恰好24小时前”,其实它代表“最近24小时内(含当前时刻)被修改过的所有文件”。
这是因为 find 把时间划分为整块的24小时段:当前时刻往前推24小时为界,落在这个区间内的文件都会被匹配到。
注意:它只检测 文件内容修改时间(mtime),不包括权限变更或访问行为。
推荐组合命令提升排查效率
单独用 find / -mtime 0 会输出海量系统文件(如日志轮转、临时缓存),建议加过滤条件缩小范围:
-
find / -mtime 0 -type f -name "*.php" -ls—— 查找最近24小时新增或改写的所有 PHP 文件 -
find / -mtime 0 -path "/tmp/*" -ls—— 重点检查临时目录下是否有可疑脚本或二进制文件 -
find / -mtime 0 -perm /4000 -ls—— 同时筛选出带 SUID 权限且刚被修改的程序(常见提权后门特征) -
find / -mtime 0 ! -user root -ls 2>/dev/null—— 排除 root 修改的文件,聚焦非授权用户操作痕迹
配合 -mmin 更精准定位(分钟级)
如果已知入侵发生的大致时间段(比如凌晨2:15左右),用分钟单位更可靠:
-
find / -mmin -30—— 查最近30分钟内修改的文件 -
find / -mmin +15 -mmin -45—— 查15~45分钟前修改的文件(需支持表达式运算的 find 版本) - 比
-mtime更灵敏,尤其适合应急响应中快速回溯攻击窗口
注意避开干扰和权限问题
执行时常见问题及应对:
- 大量 “Permission denied” 报错?加
2>/dev/null屏蔽,避免有效结果被淹没 - 想排除 /proc /sys /dev 这类虚拟文件系统?用
-prune:find / \( -path "/proc" -o -path "/sys" -o -path "/dev" \) -prune -o -mtime 0 -print - 发现可疑文件后,立刻用
stat 文件名查看详细时间戳(atime/ctime/mtime)、属主、inode 变更记录











