FreeBSD权限恢复:修复登录失败与系统目录归属异常问题
恢复FreeBSD系统权限:修复归属为nobody:nogroup的系统目录
遇到这种系统目录全变成nobody:nogroup、连chown都没法正常用的情况,别慌——单用户模式就是用来救这种场的。我之前帮好几个用户搞定过类似的问题,给你一步步来:
第一步:确保根文件系统可读写
单用户模式下默认根分区是只读挂载的,先把它改成可读写,不然没法修改任何权限:
mount -u /
第二步:先修复关键工具的权限(如果需要)
如果chown或者mtree这些命令本身的权限也被篡改了,先手动把它们改回root归属——毕竟root在单用户模式下拥有最高权限,哪怕文件当前是nobody的,也能直接修改:
# 修复chown的权限 chown root:wheel /bin/chown chmod 555 /bin/chown # 修复mtree的权限(如果mtree也没法运行的话) chown root:wheel /usr/sbin/mtree chmod 555 /usr/sbin/mtree
第三步:用mtree批量恢复系统目录权限
FreeBSD自带的mtree工具就是专门用来维护文件系统权限和归属的,系统默认在/etc/mtree/下存了标准的权限配置文件,我们直接用它来恢复:
- 恢复根目录下的核心系统目录(/boot、/lib等):
mtree -e -f /etc/mtree/BSD.root.dist -p /
-e:忽略已存在的文件,只修复权限和归属,不会删除或修改文件内容-f:指定系统自带的标准权限配置文件-p:指定要操作的根路径
- 恢复/usr目录的权限:
mtree -e -f /etc/mtree/BSD.usrs.dist -p /usr
- 恢复/var目录的权限:
mtree -e -f /etc/mtree/BSD.var.dist -p /var
第四步:验证并重启
执行完上面的命令后,可以用ls -ld /boot /lib检查一下目录归属,应该已经变回root:wheel了。
最后执行exit退出单用户模式,系统会继续正常启动,这时候应该就能正常登录,不会再出现openpam_check_desc_owner_perms()的报错了。
额外提醒
- 仔细看
mtree的输出,如果有个别文件没修复成功,可以手动用chown root:wheel [路径]修改 - 之后一定要排查权限被篡改的原因:是不是运行了错误的脚本?有没有被恶意程序攻击?避免下次再出现这种问题
内容的提问来源于stack exchange,提问作者Oļegs Veramejs
相关产品推荐
相关产品推荐

