无属主文件的来历与风险
文件的 UID/GID 在 /etc/passwd、/etc/group 中找不到对应名字时,ls 会直接显示数字,这类文件叫无属主(-nouser/-nogroup)文件。常见成因是删除账号时只清了家目录,或从别的机器恢复归档时 UID 对不上。风险有两处:新账号一旦复用同一 UID,就会顺带接管这些文件;攻击者留下的工具与后门也常表现为无属主,所以它同时是入侵排查项。
基本信息
| 加固项 | 消除无属主文件与目录 |
|---|---|
| 适用平台 | Linux(RHEL/CentOS、Debian/Ubuntu) |
| 权限要求 | root(普通用户读不到全网文件) |
| 达标判据 | 全盘扫描结果为空或均已确认归类 |
| 基线对应 | CIS Linux Benchmark:no unowned files or directories |
典型使用场景
- userdel 删号之后立刻做一次收尾核查
- 主机基线巡检,与全局可写、SUID 异常文件一起排查
- 从备份或镜像恢复数据后确认 UID 映射是否一致
- 应急响应中寻找攻击者上传的工具与计划任务脚本
- 更换集中认证(LDAP/SSSD)后排查本地 UID 缺失带来的悬空文件
核查:全盘找无属主
核查:全盘找无属主
find / -xdev \( -nouser -o -nogroup \) -print 2>/dev/null | head -50 # 本文件系统内扫描,先看前 50 条
find / -xdev \( -nouser -o -nogroup \) -print 2>/dev/null | wc -l # 统计总量,便于跟踪收敛进度
ls -ln /path/to/orphan # -n 直接显示数字 UID/GID,确认真实归属数字处置:核实后归位
处置:核实后归位
getent passwd 1001 # 反查:该 UID 现在是否有账号
chown -R root:root /path/to/orphan # 确认是废弃文件后收归 root
tar czf /root/orphan-$(date +%F).tar.gz /path/to/orphan # 可疑文件先打包留证再动来源判断与对策
| 现象 | 常见来源 | 建议动作 |
|---|---|---|
| /home 下数字属主目录 | 删号未清家目录 | 备份后删除或重新归属 |
| /var/spool、/var/log 下残留 | 邮件池、日志遗留 | 核实后归属对应服务账号 |
| web 目录数字属主文件 | 攻击者上传或部署脚本 | 按应急流程取证,不要直接删 |
| 挂载点内大量数字属主 | NFS/SMB 侧 UID 无映射 | 先排除网络挂载误报 |
NFS 挂载里远端 UID 在本地没有映射时会整片报无属主,属于误报。判断前先看 findmnt、排除网络挂载,或对单机本地文件系统(-xdev)分别扫描,避免把正常共享目录当成风险处置掉。
userdel -r 只清家目录与邮件池,散落在 /opt、/srv、/var/www 等位置的文件会就此悬空。规范做法是删号流程里固定带上这条核查命令,把“删号”和“清理悬空文件”绑成一步。