讲师中心 微信公众号

工具推荐

视频效率加速
Laper
Laper

剧本策划到成片协作

AniShort
AniShort

AI短剧协同制作平台

Seko
Seko

AI短剧一键生成成片

updream

一键生成高质量推广成片

怎么在Linux利用Stat命令通过Inode信息定位异常变动的敏感文件

落雪君_7029

落雪君_7029

发布时间:2026-04-29 16:37:47

|

310人浏览过

|

来源于php中文网

原创

用stat可直接查看文件inode号、设备号及atime/mtime/ctime三个时间戳,其中ctime反映元数据变更,是检测异常改动的关键依据;单看inode号无法判断文件是否被替换,需结合(st_dev, st_ino)二元组与时间戳综合分析。

怎么在linux利用stat命令通过inode信息定位异常变动的敏感文件

stat 怎么查文件的 inode 和时间戳

直接用 stat 查单个文件,就能拿到完整的 inode 编号、设备号、三个关键时间(atime/mtime/ctime)和大小。这些字段组合起来,是判断文件是否被异常改动的核心依据。

比如执行 stat /etc/passwd,输出里 Inode: 后面的数字就是它的 inode 号,Change: 行对应的是 ctime——只要权限、属主、扩展属性等元数据变了,这个时间就更新,哪怕内容没动。攻击者改完属主或加了 setuid,ctime 一定跳变,但 mtime 可能纹丝不动。

  • mtime 异常滞后于 ctime:说明文件内容没改,但权限/属主被动过,常见于提权后隐藏痕迹
  • atime 突然频繁更新:可能是恶意脚本在批量读取配置或密钥文件
  • 同一目录下多个文件 ctime 在秒级内集中变更:大概率是自动化工具(如 Ansible、restorecon)批量操作,也可能是入侵者统一清理日志前的预处理

为什么不能只看 inode 号来判断文件是否被替换

inode 号本身不反映“变动”,它只是文件在该文件系统内的固定编号。一个文件被删再新建同名文件,新文件会拿到**全新 inode**;但如果只是 chown 或 chmod,inode 号完全不变——所以单看 inode 是否“相同”毫无意义。

真正要盯的是 (st_dev, st_ino) 这个二元组是否稳定,再叠加时间戳变化。比如你发现 /etc/shadow 的 st_ino 没变,但 ctime 比上次巡检快了 2 小时,就得立刻查 auditctl -w /etc/shadow -p wa 的审计日志,而不是怀疑文件被替换了。

  • 跨挂载点(如 /home 和 /mnt/usb)的 inode 号重复是正常现象,st_dev 才区分设备
  • NFS 挂载时 st_dev 常被映射成伪设备号,此时仅靠 stat 无法 100% 确认文件身份,需结合服务端日志
  • ext4 下 inode 号重用有延迟(通常要等几小时甚至重启后才复用),短时间内看到相同 inode 出现在不同路径,基本可断定是硬链接,不是覆盖

用 find + stat 批量扫描敏感路径并筛选异常 ctime

想快速扫一遍 /etc 下所有配置文件,找出最近 1 小时内被改过权限或属主的,别写循环,用 find 配合 -cmin 和 -exec stat 一行搞定:

Linux Omniscient
Linux Omniscient

>全知全能技能Linux版。

下载
find /etc -type f \( -name "*.conf" -o -name "*.yaml" -o -name "sshd_config" \) -cmin -60 -exec stat -c "%n | %Z | %U:%G | %a" {} \;

这条命令会列出文件名、ctime 时间戳(秒级)、当前属主/属组、八进制权限。重点看 %Z 是否集中在某个时间点,以及 %U:%G 是否变成 root:root 以外的值——很多后门会悄悄把自身配置文件属主改成普通用户来绕过 root-only 检查。

  • 避免用 -mtime 替代 -cmin:mtime 只管内容修改,漏掉 chmod/chown 类操作
  • -cmin -60 是精确到分钟的硬过滤,比 stat 后用 awk 算时间差更可靠,不受时区或夏令时干扰
  • 如果目标路径含大量子目录(如 /var/log),加 -maxdepth 2 控制深度,否则可能卡在滚动日志里

stat 输出怎么跟 auditd 日志对上号

当你用 stat 发现某个文件 ctime 异常,下一步必须关联到具体是谁、什么进程干的。这时得靠 auditd 的 ausearch,但注意字段对齐:

stat 输出的 Change: 时间是人类可读格式(如 2026-04-20 15:22:03.123456789 +0800),而 ausearch -ts 要求 ISO 8601 格式且不含纳秒。正确做法是先用 stat -c "%z" /path 拿到带时区的 UTC 时间字符串,再用 date -d 截断到秒:

ctime_sec=$(stat -c "%z" /etc/hosts | cut -d' ' -f1,2); ausearch -ts "$ctime_sec" -k file_owner_change

这里 %z 输出的是 UTC 时间(stat -c "%Z" 是 Unix 时间戳,更稳妥),cut 去掉纳秒部分,确保能命中 ausearch 的索引。

  • audit 规则必须用 -p wa(write + attribute),只写 -p w 会漏掉 chown/chmod
  • ausearch 默认查最近 24 小时,如果异常发生在更早时间,得加 -ts 2026-04-19 00:00:00 显式指定起始时间
  • 若没开 auditd,stat 就只剩推测价值——它告诉你“变了”,但永远答不上“谁变的”

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

5445

2025.10.13

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

455

2025.11.04

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4550

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3793

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

3133

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

7770

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

7382

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

4193

2023.07.20

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

20

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn