-xdev 对权限审计很关键,因为它强制 find 仅在当前文件系统内搜索,避免跨挂载点误入 NAS、容器卷、/proc、/sys 或 /mnt 外部设备,防止卡顿、误报及越权风险;其基于内核 st_dev 字段判断,安全轻量,且自动跳过虚拟文件系统。

在 Linux 中做权限审计时,跨挂载点查找不仅效率低、耗时长,还可能误扫 NAS、容器卷、/proc、/sys 或 /mnt 下的外部设备,带来误报或权限越界风险。-xdev 是 find 命令中专用于限制搜索范围仅限当前文件系统的关键选项,它能可靠阻止递归进入其他挂载点。
为什么 -xdev 对权限审计很关键
-
/根目录下默认包含多个挂载点(如/boot、/home、/var/lib/docker、/mnt/data),它们往往属于不同文件系统; - 若不加限制,
find / -perm -4000这类 SUID 审计命令会遍历所有挂载点,可能卡在 NFS 卷、加密盘或已断开设备上; -
-xdev在内核级判断st_dev字段,只保留与起始路径相同设备号的条目,安全且轻量。
实用权限审计命令示例
直接在目标分区根路径启动查找,并强制绑定单一分区:
-
查找当前根分区所有 SUID 文件(跳过 /boot、/home 等独立挂载):
find / -xdev -type f -perm -4000 -print
-
查找
/usr所在分区中所有 world-writable 目录(避免误入/usr/local若它单独挂载):find /usr -xdev -type d -perm -002 -print
-
结合
-user和-group审计特定账户拥有的高危文件(如 root 拥有但组可写):find /etc -xdev -type f -user root -group root ! -perm -g-w -print
注意事项与搭配建议
-
-xdev必须放在路径之后、其他条件之前,位置错误会被忽略; - 它自动跳过
/proc、/sys、/dev等虚拟文件系统(因无真实st_dev),无需额外排除; - 若需同时限定深度和类型,顺序推荐为:路径 →
-xdev→-maxdepth N→ 其他测试项(如-type f、-perm); - 配合
-printf可结构化输出,便于后续分析:find /var -xdev -type f -perm -2000 -printf "%M %p\n"
不复杂但容易忽略


















