find -inum 是linux中定位同一inode下所有硬链接文件的核心方法,用于排查硬链接导致的权限绕过;需先用ls -i获取inode号,再用find -inum在易写目录中搜索,最后通过ls -li和stat验证真实性及权限风险。

在Linux中,find -inum 是定位同一 inode 下所有硬链接文件的核心方法,对排查因硬链接导致的权限绕过(如绕过目录访问控制、隐藏敏感路径)非常有效。关键在于:硬链接共享相同 inode 和数据块,但可存在于不同路径、不同用户可写目录中,从而被用于权限旁路。
确认目标文件的inode号
使用 ls -i 获取原始文件的 inode 号,这是后续查找的前提:
$ ls -i /etc/shadow
123456 /etc/shadow
注意:确保你有读取该文件的权限(或以 root 执行),否则无法获取 inode;若文件被删除但仍有硬链接存在,ls -i 会失败,此时需从其他已知硬链接入手。
用 find -inum 全局搜索同inode的所有硬链接
在可能被滥用的路径(如 world-writable 目录、用户主目录、临时目录)中搜索指定 inode 的所有路径:
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
$ find /home -xdev -inum 123456 2>/dev/null
/home/attacker/shadow_bk
/home/test/.hidden_shadow
-xdev 防止跨文件系统搜索(inode 在不同文件系统中不唯一);2>/dev/null 屏蔽无权限报错;建议优先搜索:/tmp、/var/tmp、/home/*、/opt 等易被写入的区域。
验证硬链接真实性与权限风险
仅路径匹配还不够,需确认是否为真实硬链接(而非符号链接或普通文件),并评估其权限隐患:
- 用
ls -li对每个结果检查:硬链接的 link count(第二列)应 ≥2,且所有结果的 inode、大小、修改时间一致 - 检查每个路径的父目录权限:若某硬链接位于
/tmp或drwxrwxrwx目录下,普通用户可重命名、删除甚至覆盖(若父目录可写) - 用
stat对比详细属性:stat /etc/shadow /home/attacker/shadow_bk,确认Inode、Links、Device字段完全一致
清理与加固建议
发现可疑硬链接后,不能只删链接——需判断原始文件是否合法,并阻断生成路径:
- 若原始文件本不该有硬链接(如
/etc/shadow),立即删除所有非预期链接,并审计创建者(ausearch -m chmod -i 123456配合 auditd) - 禁止普通用户对敏感目录(
/etc、/bin)创建硬链接:确保这些目录的 sticky bit 不影响,但更关键是限制link()系统调用(通过 SELinux policy 或 grsecurity) - 定期扫描高风险目录中的异常硬链接:例如检测
/tmp下指向/etc或/root的 inode










